This server wires Claude into UnCorreoTemporal's disposable email API, letting agents autonomously handle signup and verification flows. It exposes high-level tools like create_signup_inbox, wait_for_verification_email, and extract_otp_code, plus a complete_signup_flow orchestrator that handles the full create-wait-extract cycle. You can connect to a public endpoint with no local install, or run it via uvx with your own API key for production workloads. Designed for testing signup flows, scraping verified accounts, or any workflow where your agent needs to receive and parse verification emails without manual intervention. Supports stdio, SSE, and streamable-http transports.
Public tool metadata for what this MCP can expose to an agent.
create_signup_inboxCreates a labeled temporary inbox for a given service. Returns an email address and inbox_id ready to use.2 paramsCreates a labeled temporary inbox for a given service. Returns an email address and inbox_id ready to use.
ttl_minutesintegerservice_namestringwait_for_verification_emailPolls the inbox until a verification email arrives or the timeout is reached. Returns the email content when found.5 paramsPolls the inbox until a verification email arrives or the timeout is reached. Returns the email content when found.
inbox_idstringfrom_containsstringtimeout_secondsintegersubject_containsstringpoll_interval_secondsintegerget_latest_emailReads the latest email received in the inbox, including full body (text and HTML).2 paramsReads the latest email received in the inbox, including full body (text and HTML).
inbox_idstringmark_as_readbooleanextract_otp_codeExtracts an OTP code (4-8 digits) from an email message. Can receive the message text directly or look up a message by inbox_id + message_id.5 paramsExtracts an OTP code (4-8 digits) from an email message. Can receive the message text directly or look up a message by inbox_id + message_id.
inbox_idstringmessage_idstringmessage_textstringotp_length_maxintegerotp_length_minintegerextract_verification_linkExtracts a verification link from an email message. Supports filtering by preferred domains when the email contains multiple links.4 paramsExtracts a verification link from an email message. Supports filtering by preferred domains when the email contains multiple links.
inbox_idstringmessage_idstringmessage_textstringpreferred_domainsarray
MCP server for UnCorreoTemporal, focused on autonomous signup and email verification workflows.
AI Agent
|
| MCP
v
Temporary Email MCP Server
|
v
UnCorreoTemporal API
Connect directly to the public endpoint — no local install needed:
{
"mcpServers": {
"uncorreotemporal-mcp": {
"url": "https://uncorreotemporal.com/mcp"
}
}
}
The public endpoint is free to use for testing. For production workloads, set your own UCT_API_KEY via local install.
claude mcp add uncorreotemporal -e UCT_API_KEY=uct_your_key_here -- uvx uncorreotemporal-mcp
claude_desktop_config.json){
"mcpServers": {
"uncorreotemporal": {
"command": "uvx",
"args": ["uncorreotemporal-mcp"],
"env": {
"UCT_API_KEY": "uct_your_key_here"
}
}
}
}
Get your API key at uncorreotemporal.com.
uvx uncorreotemporal-mcp
Or run local project version:
UCT_API_KEY=uct_your_key_here \
uv run uncorreotemporal-mcp
inbox = await create_signup_inbox("github")
email = await wait_for_verification_email(inbox["inbox_id"])
link = await extract_verification_link(
inbox_id=inbox["inbox_id"],
message_id=email["message_id"],
)
create_signup_inboxwait_for_verification_emailget_latest_emailextract_otp_codeextract_verification_linkcomplete_signup_flowcomplete_signup_flowRuns:
Input:
{
"service_name": "github",
"timeout_seconds": 90,
"poll_interval_seconds": 3,
"subject_contains": "verify",
"from_contains": "noreply",
"preferred_domains": ["github.com"],
"ttl_minutes": 30
}
Output:
{
"status": "success",
"inbox_id": "agent42@uncorreotemporal.com",
"email": "agent42@uncorreotemporal.com",
"verification_message": {
"message_id": "msg-1",
"subject": "Verify your email",
"from_address": "noreply@example.com",
"received_at": "2026-03-08T11:30:00Z"
},
"verification_link": "https://example.com/confirm?t=abc",
"otp_code": "483920",
"link_candidates": ["https://example.com/confirm?t=abc"],
"otp_candidates": ["483920"]
}
status can be success, partial_success, or timeout.
create_signup_inbox(service_name, ttl_minutes?)Returns:
{
"inbox_id": "agent42@uncorreotemporal.com",
"email": "agent42@uncorreotemporal.com",
"expires_at": "2026-03-08T12:00:00Z",
"service_name": "github"
}
wait_for_verification_email(inbox_id, timeout_seconds?, poll_interval_seconds?, subject_contains?, from_contains?)Returns:
{
"status": "received",
"message_id": "msg-1",
"received_at": "2026-03-08T11:30:00Z",
"subject": "Verify your account",
"from_address": "noreply@example.com",
"timeout_seconds": 90
}
get_latest_email(inbox_id, mark_as_read?)Returns full message body and metadata.
extract_otp_code(message_text? | inbox_id+message_id, otp_length_min?, otp_length_max?)Returns:
{
"otp_code": "483920",
"candidates": ["483920"]
}
extract_verification_link(message_text? | inbox_id+message_id, preferred_domains?)Returns:
{
"verification_link": "https://example.com/confirm?t=abc",
"candidates": ["https://example.com/confirm?t=abc"]
}
Environment variables:
UCT_API_KEY (required)UCT_API_BASE (optional, default: https://uncorreotemporal.com)UCT_HTTP_TIMEOUT_SECONDS (optional, default: 20)UCT_MCP_TRANSPORT (optional, stdio by default; also supports streamable-http and sse)UCT_MCP_HOST (optional, default: 0.0.0.0)UCT_MCP_PORT (optional, default: 8000)UCT_MCP_PATH (optional, default: /mcp)Important: inbox_id == email address.
See /examples:
simple_workflow.pyopenai_agent_signup.pylangchain_agent_signup.pyagent_creates_account.pyRun dry-run:
uv run python examples/simple_workflow.py --dry-run
Build:
docker build -t uncorreotemporal-mcp .
Run stdio mode:
docker run --rm -i \
-e UCT_API_KEY=uct_your_key_here \
uncorreotemporal-mcp
Run streamable-http mode:
docker run --rm -p 8000:8000 \
-e UCT_API_KEY=uct_your_key_here \
-e UCT_MCP_TRANSPORT=streamable-http \
-e UCT_MCP_PATH=/mcp \
uncorreotemporal-mcp
Removed legacy low-level tools:
create_mailboxlist_mailboxesget_messagesread_messagedelete_mailboxMigration map:
create_mailbox -> create_signup_inboxget_messages + read_message -> wait_for_verification_email + get_latest_emailcomplete_signup_flowPrepared listing payloads are in /directory-listings for:
Deployment templates for https://uncorreotemporal.com/mcp are in /deploy.
uv run pytest
uv run uncorreotemporal-mcp
UCT_API_KEY*secretYour UnCorreoTemporal API key (get one at https://uncorreotemporal.com). Format: uct_...
UCT_API_BASEAPI base URL. Defaults to https://uncorreotemporal.com
UCT_MCP_TRANSPORTTransport mode: stdio (default), streamable-http, or sse
io.github.mindstone/mcp-server-microsoft-teams
com.mintmcp/outlook-email
helbertparanhos/resend-email-mcp
marlinjai/email-mcp
io.github.mindstone/mcp-server-email-imap
io.github.osamahassouna/email-playbook-mcp