UnCorreoTemporal

io.github.francofujiPublished by GitHub account francofujiv0.1.1Updated Oct 24, 2026

Temporary email for AI agents: create inboxes, wait for emails, extract OTPs, verify signups.

Overview

AI-generated overview

Temporary email server for AI agents: create inboxes, wait for verification emails, and extract OTP codes or verification links.

What you can do
  • Create temporary signup inboxes with a service name and optional lifetime
  • Wait for and fetch incoming verification emails, with subject and sender filters
  • Extract OTP codes or verification links from a message or an inbox message
  • Run the whole signup flow in one call: create inbox, wait for the email, extract link and OTP
When to use it
Useful when an assistant has to complete an email-verification signup on a service and needs a disposable inbox plus automated OTP or link extraction, instead of a human reading the mailbox.
Requirements
Runs locally as a Python package via uvx (or Docker), or can be pointed at a public remote endpoint. A UnCorreoTemporal API key in UCT_API_KEY is required for local installs; UCT_API_BASE optionally overrides the API base URL. Network access to the UnCorreoTemporal API is needed.
Before you install
The API key in UCT_API_KEY is a secret and is passed in plain environment variables in the documented setups. Inbox addresses and received email contents are handled by the UnCorreoTemporal service, so verification emails and any codes in them pass through that third party. Creating accounts on services may violate their terms, and the server can mark messages as read.

Installation

In SourceWeft

  1. Open UnCorreoTemporal in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[UCT Demo]

uncorreotemporal-mcp

[MCP Badge]

MCP server for UnCorreoTemporal, focused on autonomous signup and email verification workflows.

[Glama]

Architecture Demo

text
AI Agent   |   | MCP   vTemporary Email MCP Server   |   vUnCorreoTemporal API

Remote Connection (No Installation)

Connect directly to the public endpoint — no local install needed:

json
{  "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.

Installation

Claude Code

bash
claude mcp add uncorreotemporal -e UCT_API_KEY=uct_your_key_here -- uvx uncorreotemporal-mcp

Claude Desktop (claude_desktop_config.json)

json
{  "mcpServers": {    "uncorreotemporal": {      "command": "uvx",      "args": ["uncorreotemporal-mcp"],      "env": {        "UCT_API_KEY": "uct_your_key_here"      }    }  }}

Get your API key at uncorreotemporal.com.

Quickstart (30 seconds)

bash
uvx uncorreotemporal-mcp

Or run local project version:

bash
UCT_API_KEY=uct_your_key_here \uv run uncorreotemporal-mcp

Minimal Workflow Example

python
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"],)

Public Tools

  • create_signup_inbox
  • wait_for_verification_email
  • get_latest_email
  • extract_otp_code
  • extract_verification_link
  • complete_signup_flow

New v1 tool: complete_signup_flow

Runs:

  1. create inbox
  2. wait verification email
  3. extract verification link + OTP

Input:

json
{  "service_name": "github",  "timeout_seconds": 90,  "poll_interval_seconds": 3,  "subject_contains": "verify",  "from_contains": "noreply",  "preferred_domains": ["github.com"],  "ttl_minutes": 30}

Output:

json
{  "status": "success",  "inbox_id": "[email protected]",  "email": "[email protected]",  "verification_message": {    "message_id": "msg-1",    "subject": "Verify your email",    "from_address": "[email protected]",    "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.

Tool I/O summary

create_signup_inbox(service_name, ttl_minutes?)

Returns:

json
{  "inbox_id": "[email protected]",  "email": "[email protected]",  "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:

json
{  "status": "received",  "message_id": "msg-1",  "received_at": "2026-03-08T11:30:00Z",  "subject": "Verify your account",  "from_address": "[email protected]",  "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:

json
{  "otp_code": "483920",  "candidates": ["483920"]}

extract_verification_link(message_text? | inbox_id+message_id, preferred_domains?)

Returns:

json
{  "verification_link": "https://example.com/confirm?t=abc",  "candidates": ["https://example.com/confirm?t=abc"]}

Configuration

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.

Examples

See /examples:

  • simple_workflow.py
  • openai_agent_signup.py
  • langchain_agent_signup.py
  • agent_creates_account.py

Run dry-run:

bash
uv run python examples/simple_workflow.py --dry-run

Docker

Build:

bash
docker build -t uncorreotemporal-mcp .

Run stdio mode:

bash
docker run --rm -i \  -e UCT_API_KEY=uct_your_key_here \  uncorreotemporal-mcp

Run streamable-http mode:

bash
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

Breaking Changes

Removed legacy low-level tools:

  • create_mailbox
  • list_mailboxes
  • get_messages
  • read_message
  • delete_mailbox

Migration map:

  • create_mailbox -> create_signup_inbox
  • get_messages + read_message -> wait_for_verification_email + get_latest_email
  • multi-step signup orchestration -> complete_signup_flow

Directory listing assets

Prepared listing payloads are in /directory-listings for:

  • modelcontextprotocol/servers
  • mcp.so
  • awesome-mcp

Public endpoint deployment

Deployment templates for https://uncorreotemporal.com/mcp are in /deploy.

Development

bash
uv run pytestuv run uncorreotemporal-mcp

Source: README.md at commit 8f10a68

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts