Model Context Protocol
for email automation
An AI-native email interface. No polling, no parsing, no wiring. Give your agent an intent — get back an OTP in under 3 seconds.
Plugs into your stack
Any MCP-compatible agent — Claude Desktop, Cursor, Windsurf, n8n, Make, and moreClaude
AI Agent
Cursor
IDE
LangChain
Framework
OpenAI
LLM
n8n
Workflow
Windsurf
IDE
LangGraph
Agents
AutoGen
MS Agents
Make
Automation
CrewAI
Multi-agent
Llama
LLM
Gemini
LLM
Claude
AI Agent
Cursor
IDE
LangChain
Framework
OpenAI
LLM
n8n
Workflow
Windsurf
IDE
LangGraph
Agents
AutoGen
MS Agents
Make
Automation
CrewAI
Multi-agent
Llama
LLM
Gemini
LLM
Claude
AI Agent
Cursor
IDE
LangChain
Framework
OpenAI
LLM
n8n
Workflow
Windsurf
IDE
LangGraph
Agents
AutoGen
MS Agents
Make
Automation
CrewAI
Multi-agent
Llama
LLM
Gemini
LLM
Grok
LLM
AutoGen
Multi-agent
Claude
Sonnet
Cursor
Composer
LangChain
Framework
OpenAI
GPT
n8n
Workflow
Windsurf
Code AI
LangGraph
Agents
Make
iPaaS
CrewAI
Multi-agent
Llama
Meta
Grok
LLM
AutoGen
Multi-agent
Claude
Sonnet
Cursor
Composer
LangChain
Framework
OpenAI
GPT
n8n
Workflow
Windsurf
Code AI
LangGraph
Agents
Make
iPaaS
CrewAI
Multi-agent
Llama
Meta
Grok
LLM
AutoGen
Multi-agent
Claude
Sonnet
Cursor
Composer
LangChain
Framework
OpenAI
GPT
n8n
Workflow
Windsurf
Code AI
LangGraph
Agents
Make
iPaaS
CrewAI
Multi-agent
Llama
Meta
Gemini
Grok
xAI
AutoGen
Microsoft
Ollama
Local LLM
Vercel
Deploy
Netlify
Edge
Railway
hosting
Render
hosting
Supabase
Database
MongoDB
Database
PostgreSQL
Database
Redis
Cache
Gemini
Grok
xAI
AutoGen
Microsoft
Ollama
Local LLM
Vercel
Deploy
Netlify
Edge
Railway
hosting
Render
hosting
Supabase
Database
MongoDB
Database
PostgreSQL
Database
Redis
Cache
Gemini
Grok
xAI
AutoGen
Microsoft
Ollama
Local LLM
Vercel
Deploy
Netlify
Edge
Railway
hosting
Render
hosting
Supabase
Database
MongoDB
Database
PostgreSQL
Database
Redis
Cache
From intent to OTP
in a single tool call
Your AI agent calls create_and_wait_for_otp(). The MCP server holds a long-poll connection, watches for incoming email via Redis pub/sub, extracts the verification code, and returns it — no callbacks, no webhooks, no polling loops.
0+
API Calls / Day
0+
Emails / Day
0+
Developers
Built for real workflows
Step-by-step guides for the most common disposable email patterns.
Eleven tools.
Every workflow covered.
MCP tools expose email operations as first-class primitives. No REST endpoints, no webhook glue code — just intent-driven function calls that your agent can use directly.
Agent-native signup testing
Tell Claude to register on any site and extract the OTP. No boilerplate — just intent. The agent handles the entire flow from form submission to email verification.
await claude.runTask( "Register on acme.com and verify email" )
CI / CD pipeline auth
Your test suite needs a fresh inbox per run. One MCP call provisions it and waits for the verification email. No more flaky tests from race conditions.
const { otp } = await mcp.create_and_wait_for_otp({
timeout: 30
})Multi-agent orchestration
Nest MCP calls inside larger agent graphs (LangGraph, AutoGen). Each sub-agent gets its own isolated inbox for parallel operations.
// LangGraph node export const verifyEmail = tool( mcp.extract_otp )
Eleven tools.
Infinite workflows.
MCP tools expose email operations as first-class primitives. Each tool is designed for specific email automation tasks — from quick checks to complete signup flows.
get_latest_emailFetch the latest message from an inbox. Returns sender, subject, body text, OTP, and verification link.
Args
inboxstringextract_otpDirectly retrieves the latest 4–6 digit code or verification link from the most recent email.
Args
inboxstringcreate_and_wait_for_otp🔥 GOLDGenerates a random inbox and holds the connection open until an OTP arrives — complete signup flow in a single tool call.
Args
domainstringoptionaltimeoutnumber (10–60)optionalwatch_emailLong-polling wait for new emails on an existing inbox. Use when you've already created an inbox and want to wait for the next incoming email.
Args
inboxstringtimeoutnumber (10–60)optionalsincestringoptionalget_messagesFetches multiple messages from an inbox with pagination support.
Args
inboxstringlimitnumber (1–100)optionalunread_onlybooleanoptionaldelete_emailDeletes a specific email from an inbox.
Args
inboxstringmessage_idstringlist_inboxesLists all inboxes owned by the API key's account.
Args
list_custom_domainsLists all custom domains associated with the account.
Args
add_custom_domainAdds a new custom domain to the account.
Args
domainstringverify_custom_domainInitiates DNS verification for a custom domain.
Args
domainstringdelete_custom_domainDeletes a custom domain from the account.
Args
domainstringCredit multipliers
get_latest_email2×extract_otp3×create_and_wait_for_otp5×watch_email10×* (other tools)1×| Plan | MCP Access | Ops / min | Concurrent sessions |
|---|---|---|---|
| Free | ✗ Blocked | — | — |
| Developer | ✗ Blocked | — | — |
| Startup | ✗ Blocked | — | — |
| Growth | ✓ Included | 60 | 5 |
| Enterprise | ✓ Included | 200 | 10 |
See it in action
Watch create_and_wait_for_otp() run end-to-end. The demo simulates an AI agent calling the MCP tool, waiting for email delivery, extracting the OTP, and returning the result.
Press run demo to simulate the agent flow
Attach to any MCP client
Add the server to Claude Desktop, Cursor, or any MCP-compatible agent framework via npx. Takes less than 30 seconds to configure.
{
"mcpServers": {
"fce-mcp": {
"command": "npx",
"args": ["-y", "fce-mcp-server"],
"env": {
"FCE_API_KEY": "your_growth_or_enterprise_api_key"
}
}
}
}Claude Desktop
Paste the config into claude_desktop_config.json. Restart Claude.
Cursor & Windsurf
Add the npx command in the MCP Servers UI or mcp_config.json.
Kilo CLI
Add to your kilo.json under the mcp section.
Custom Agent
Use any SDK (Python mcp, JS @modelcontextprotocol/sdk) to connect.
Cloud-based AI agents? No problem.
For cloud-based AI platforms that cannot run local commands (Claude Web, Claude Desktop, Cursor), we provide hosted MCP endpoints. We support two transport protocols: Streamable HTTP (recommended) and SSE (legacy).
Base URL
https://mcp.freecustom.emailNew MCP standard, better for modern clients
Legacy support for older clients
| Endpoint | Method | Transport |
|---|---|---|
| /mcp | POST | Streamable HTTP |
| /mcp | GET | Streamable HTTP |
| /sse | GET | SSE |
| /messages | POST | SSE |
| /authorize | GET | OAuth |
| /token | POST | OAuth |
Two Auth Methods
- Direct API Key: Pass via
Authorizationheader oraccess_tokenquery param - OAuth 2.0: For clients like Claude Web — use your API key as
client_id
Quick Start for Claude Web
- Open Claude Web (claude.ai) → Settings → Integrations → Add Custom Connector
- Name:
FreeCustom.Email MCP - URL:
https://mcp.freecustom.email/sse - Auth: Your FreeCustom.Email API key as OAuth Client ID