UnCorreoTemporal

by francofuji

243 downloads
Not rated
GitHub

About

Native MCP email server for AI agents — create temporary inboxes, wait for emails, extract OTPs, and automate email verification flows.

Details

Author
francofuji
Downloads
243
Categories
Other, AI, Automation

- Create temporary signup inboxes for any service
- Wait for and receive verification emails
- Extract OTP codes from email messages
- Extract verification links from email bodies
- Complete full signup flow with a single tool call
- Support for stdio, streamable-http, and SSE transports

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name UnCorreoTemporal
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Connect via the public remote endpoint (https://uncorreotemporal.com/mcp) with no local installation, or install locally using uvx uncorreotemporal-mcp with a UCT_API_KEY. Configure the server in claude_desktop_config.json or run directly with uvx uncorreotemporal-mcp.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

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

McpServers

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

uncorreotemporal-mcp

MCP Badge

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

Glama

Architecture Demo

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

Remote Connection (No Installation)

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.

Installation

Claude Code

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

Claude Desktop (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.

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

<!-- mcp-name: io.github.francofuji/uncorreotemporal-mcp-server -->

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.