Give your AI agent an email inbox with MCP
To let an AI agent sign up for a service, confirm an email or test a sign-up flow, it needs an inbox it can read. saci.cc has an MCP server at https://saci.cc/api/mcp with tools to create a disposable address, wait for an email and read the verification code. You connect it once to Claude Code, Cursor or VS Code with a free API key, and from then on you can ask for it in plain language.
What MCP is
The Model Context Protocol (MCP) is an open standard for connecting AI apps to outside tools. A server publishes a list of tools, each with a name, a description and its parameters. The client, such as Claude Code, Cursor or VS Code, shows that list to the model, and the model decides when to call each tool. You don't write any glue code: once the server is connected, the agent can use it in any conversation.
Get a key
The MCP server uses the same keys as the API. Sign in with GitHub on your account page and create a key. The GitHub account must be at least 30 days old. The key starts with saci_ and is shown only once, so copy it right away. Each account can have up to 5 keys, so it's easy to give the agent its own and revoke it later without touching your other scripts.
Connect Claude Code
In your terminal, replacing saci_... with your key:
claude mcp add --transport http saci https://saci.cc/api/mcp \ --header "Authorization: Bearer saci_..."
Then run /mcp inside Claude Code to check that saci is connected.
Connect Cursor or VS Code
Cursor reads ~/.cursor/mcp.json, or .cursor/mcp.json inside the project:
{
"mcpServers": {
"saci": {
"url": "https://saci.cc/api/mcp",
"headers": {
"Authorization": "Bearer saci_..."
}
}
}
}VS Code reads .vscode/mcp.json:
{
"servers": {
"saci": {
"type": "http",
"url": "https://saci.cc/api/mcp",
"headers": {
"Authorization": "Bearer saci_..."
}
}
}
}Other clients that take a JSON config usually accept the Cursor format with "type": "http" added next to url. Whatever the client, the server needs the key in the Authorization header. If the file lives in a repository, don't commit it with the key inside.
The tools
create_inbox: creates an address. It's random unless you passname(3 to 32 letters, numbers, dots, dashes or underscores).wait_for_email: waits for an email and returns its sender, subject, date andmessage_id, without the body. It can filter withfrom_contains,subject_containsandafter, andtimeout_secondsgoes up to 25.get_verification_code: returns just the code, like482913, waiting for the email if it hasn't arrived yet.get_email: reads one email as text, or HTML withformat, with its links, attachments and verification code.list_emails: lists the emails in the inbox, newest first.get_attachment: returns an attachment. Text files come back as text, images as images, and anything else as a download link that works for a few minutes.delete_emailanddelete_all_emails: delete one email or every email in the inbox. They're marked as destructive, so your client may ask you before running them.
An example
A prompt like this:
Create a temporary email, sign up at https://example.com with it and tell me the verification code you get.
Here's what the agent does:
- It calls
create_inboxand gets an address likea1b2c3d4e5f60718@saci.cc. - It fills in the sign-up form with that address. For that it needs a browser tool of its own, such as a Playwright MCP server; saci.cc only takes care of the email side.
- It calls
get_verification_codewith the address. If no code arrives within 25 seconds, the tool says so and the agent calls it again. - It types the code into the form, or just tells you what it is.
When the email has a confirmation link instead of a code, the agent calls wait_for_email and then get_email to read the links.
You don't need a browser for every task. You can ask the agent to check that your staging server sends the welcome email and that its link points to the right domain, or to write an end-to-end test that uses saci.cc and run it. For tests that run in CI without an agent, the Playwright guide shows the same flow with the npm package.
Limits
- Each wait lasts 25 seconds at most. The agent calls again to keep waiting, and the server's instructions tell it to.
- 120 requests per minute per account, shared with the API and all of the account's keys.
- Inboxes created through MCP are private to your account for 7 days: only your keys can read them, and nobody else can create the same name.
- Emails are deleted about a day after they arrive. Don't use these inboxes for accounts you need to keep, or for anything sensitive.
- Addresses only receive email. The agent can't send or reply from saci.cc.
- Claude's custom connectors, in the Claude app and on claude.ai, can't send headers, so they can't pass the key and don't work with saci.cc. Use Claude Code or another client that supports headers.
Every tool and parameter is listed on the MCP page. If something doesn't work, or you need a higher limit, write to oi@saci.cc.