MCP Email Server
Native MCP server exposing 5 tools for AI agents. Compatible with Claude Desktop, Cursor, Continue, and any client implementing the Model Context Protocol .
What is MCP?
The Model Context Protocol (MCP) is an open standard created by Anthropic that lets AI agents access external tools natively. Instead of writing prompts to simulate actions, the agent directly calls typed functions with parameters and structured responses.
Native, not simulated
The agent calls real functions with typed parameters. It does not rely on the LLM interpreting free text.
No shared state
Each call is independent. The MCP server handles authentication once at startup.
Compatible with any LLM
Claude, GPT-4, Gemini — any model with MCP support can use these tools.
Installation
1 Get an API Key
The MCP server requires a Pro or higher plan. Create your account, activate a Pro or Team plan, and generate an API key with the uct_ prefix.
2 Configure Claude Desktop
Add the following entry to claude_desktop_config.json (located at ~/Library/Application Support/Claude/ on macOS):
{ "mcpServers": { "uncorreotemporal": { "url": "https://uncorreotemporal.com/mcp", "headers": { "Authorization": "Bearer uct_xxxxx" } } } }
No local installation. The server runs at https://uncorreotemporal.com/mcp and authenticates each session with your API key. Restart Claude Desktop after saving to see the 5 tools.
create_signup_inboxtoolCreates a temporary inbox labeled with the name of the service where the agent will sign up. Returns the email address ready to use.
Parameters
service_namerequired · stringttl_minutesoptional · integer ≥ 1Returns
{ inbox_id: "uuid", email: "slug@uncorreotemporal.com", expires_at: "ISO8601", service_name: "github" }
wait_for_verification_emailtoolWaits until an email arrives in the inbox, with internal polling and configurable timeout. Returns immediately when the message is detected — no manual polling needed.
Parameters
inbox_idrequired · stringtimeout_secondsoptional · default 90subject_containsoptional · subject filterfrom_containsoptional · sender filterReturns
{ status: "received" | "timeout", message_id, subject, from_address, body_text, body_html }
get_latest_emailtoolReads the latest email received in the inbox, including the full body. Useful when the email has already arrived and you do not need to wait.
Parameters
inbox_idrequired · stringmark_as_readoptional · boolean, default falseReturns
message_id, subject, from_address, body_text, body_html, has_attachments, marked_as_read
extract_otp_codetoolExtracts the OTP code (4–8 digits) from a message. Can receive the text directly or look up the message by inbox_id + message_id.
Parameters (at least one required)
message_textoptional · stringinbox_idoptional · stringmessage_idoptional · stringotp_length_min / maxoptional · default 4/8Returns
{ otp_code: "847291", candidates: ["847291"] }
extract_verification_linktoolExtracts the verification link from the message. Supports filtering by preferred domain when the email contains multiple links.
Parameters (at least one required)
message_textoptional · stringinbox_idoptional · stringmessage_idoptional · stringpreferred_domainsoptional · string[]Returns
{ verification_link: "https://...", candidates: [...] }
Full Flow — Autonomous Sign-up
The following example shows how a Claude agent uses all 5 tools to sign up for a web service without human intervention:
"Sign up on example.com with a temporary email, confirm the account, and tell me the generated username."
Limits by Plan
| Plan | MCP | Req/day |
|---|---|---|
| Free | — | — |
| Builder | — | — |
| Pro | ✓ Included | 2,000/day |
| Team | ✓ Included | 10,000/day |
When the call limit is exceeded, the tool returns {"error": "quota_exceeded"}. The agent should handle this case and notify the user.