Skip to main content

MCP server for UnCorreoTemporal — programmable temporary email for AI agents

Project description

uncorreotemporal-mcp

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

Architecture Demo

AI Agent
   |
   | MCP
   v
Temporary Email MCP Server
   |
   v
UnCorreoTemporal API

Quickstart (30 seconds)

uvx uncorreotemporal-mcp

Or run local project version:

UCT_API_KEY=uct_your_key_here \
uv run uncorreotemporal-mcp

Minimal Workflow Example

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:

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

Tool I/O summary

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"]
}

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:

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

Docker

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

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

uv run pytest
uv run uncorreotemporal-mcp

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uncorreotemporal_mcp-0.1.0.tar.gz (53.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uncorreotemporal_mcp-0.1.0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file uncorreotemporal_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: uncorreotemporal_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 53.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uncorreotemporal_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c9db119779c49ffff0e904ad494620aa94744e9a7a6f1fb33307a4a3c7f900b5
MD5 041b67484b528018bd94b42f4962397d
BLAKE2b-256 14b9cb5e9474c43d3037514c2a1abcf26132c2dd23a95e78864c5204be786453

See more details on using hashes here.

Provenance

The following attestation bundles were made for uncorreotemporal_mcp-0.1.0.tar.gz:

Publisher: publish.yml on francofuji/uncorreotemporal-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uncorreotemporal_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for uncorreotemporal_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2224f0b6b03bbc4fbbe8cf1e178f179014f64a984564cfcd132b97293cc97702
MD5 ac0f3f4ddb52ffc3666428d314e7bb34
BLAKE2b-256 89291675cb90f93a07bb1235422ba34b5b924d30ed05ef4d466402bb08903735

See more details on using hashes here.

Provenance

The following attestation bundles were made for uncorreotemporal_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on francofuji/uncorreotemporal-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page