Connect ChatGPT to MultiMail's hosted MCP endpoint to send, read, and manage email via natural language — no CLI setup required.
ChatGPT supports remote MCP servers through its Connectors feature, letting you attach hosted tools to any conversation. MultiMail's MCP server at mcp.multimail.dev exposes 43 email tools over streamable HTTP — the transport ChatGPT uses — so connecting takes under two minutes.
Once connected, ChatGPT can check inboxes, compose and send email, read threads, tag messages, and surface pending approvals. The oversight model is set per-mailbox on the MultiMail side, so you control whether ChatGPT can send autonomously or must wait for human approval before delivery.
This integration suits non-technical users who want chat-based access to email management without running a local agent. Developers can also use it to prototype workflows before wiring up the REST API or Python SDK directly.
Sign up at multimail.dev. After creating your account, navigate to Settings → API Keys and create a new live key. Copy the mm_live_... token — you will paste it during the ChatGPT connector setup.
In the MultiMail dashboard, create at least one mailbox (e.g. [email protected] or a multimail.dev address). Set oversight_mode to gated_send so ChatGPT can read freely but outbound email requires your approval before delivery.
In ChatGPT, click your profile icon and go to Settings → Connectors. Select 'Add connector' and choose 'Connect to MCP server'. This option is available on ChatGPT Plus and higher plans.
Paste the server URL shown below. ChatGPT will discover all available tools automatically via the streamable HTTP endpoint. No local configuration file is required.
https:"cm">//mcp.multimail.dev/mcpWhen prompted, select Bearer token authentication and enter your mm_live_... key. ChatGPT stores this credential for the connector session. The MultiMail MCP worker validates it on every request and scopes all operations to your account.
Start a new ChatGPT conversation and type: 'Check my inbox using MultiMail.' ChatGPT should invoke check_inbox and return recent messages. If it asks which mailbox, provide the address you created in step 2.
| Tool | Description | Example |
|---|---|---|
| send_email | Compose and send an email from a MultiMail mailbox. Supports to, cc, bcc, subject, plain-text body, and HTML body. Subject to the mailbox oversight_mode — may queue for human approval before delivery. | Send a follow-up email to the lead from yesterday's thread summarizing our next steps. |
| reply_email | Reply to an existing email by message ID, preserving thread context. Handles In-Reply-To and References headers automatically. | Reply to the last email in the support thread and ask for the customer's account ID. |
| check_inbox | Return recent messages in a mailbox, optionally filtered by read status, sender, date range, or tag. Pagination is supported via cursor. | Show me unread messages from the past 48 hours in [email protected]. |
| read_email | Fetch the full content of a single message by ID, including headers, plain-text body, HTML body, and attachment metadata. | Read the full text of the contract renewal email I received this morning. |
| get_thread | Return all messages in a thread in chronological order, useful for understanding context before replying. | Get the full conversation thread with the new customer onboarding contact. |
| tag_email | Apply or remove a string tag on a message. Tags are queryable via check_inbox filters and useful for workflow routing. | Tag this email as 'needs-contract' so I can filter it later. |
| decide_email | Approve or reject a message held in the gated_send queue, optionally with an edited body. Used when oversight_mode requires human sign-off before delivery. | Approve the draft reply to the customer complaint but make the tone more formal. |
| list_pending | Return all messages currently awaiting approval in the gated queue for a mailbox. | What emails are waiting for my approval right now? |
| cancel_message | Cancel a message still in the delivery queue or pending approval, before it has been sent. | Cancel the invoice reminder I queued five minutes ago — the customer already paid. |
| search_contacts | Search your contact graph by name, email, or domain to find recipients and their communication history. | Find the email address for Sarah at the Acme Corp account. |
| create_mailbox | Provision a new mailbox on a verified domain or a multimail.dev subdomain. Returns the mailbox ID for use in subsequent tool calls. | Create a mailbox called [email protected] for new user welcome emails. |
Check my MultiMail inbox at [email protected] for unread messages from the last 24 hours. For each one, read the full body and give me a one-sentence summary with the sender name and subject line.A natural language prompt that causes ChatGPT to invoke check_inbox and read_email in sequence to summarize new messages.
Reply to the most recent email in my inbox from [email protected]. Acknowledge receipt of the SOW, say we will review it within 2 business days, and sign off as 'The Acme Team'. Hold the draft for my approval before sending.Instructs ChatGPT to compose a reply and hold it in the gated_send queue for human approval before delivery.
{
"server_url": "https://mcp.multimail.dev/mcp",
"transport": "streamable_http",
"auth": {
"type": "bearer",
"token": "mm_live_YOUR_API_KEY"
}
}The information ChatGPT needs to connect to the MultiMail MCP server. Entered directly in the ChatGPT Connectors UI — no local file required.
curl -X POST https://mcp.multimail.dev/mcp \
-H &"cm">#039;Authorization: Bearer $MULTIMAIL_API_KEY' \
-H &"cm">#039;Content-Type: application/json' \
-d &"cm">#039;{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'Use curl to confirm the MultiMail MCP server is reachable and returns a valid tool list before configuring ChatGPT.
Use MultiMail to list all emails pending my approval in the [email protected] mailbox. Show me each draft's subject, recipient, and the first 100 characters of the body. Then ask me one at a time whether to approve or cancel each one.A multi-step prompt that lists pending approvals and lets the user approve or reject each one interactively within ChatGPT.
When using ChatGPT as an email interface for the first time, set oversight_mode to gated_send on your mailbox. ChatGPT can read and draft freely, but no email leaves your account until you explicitly approve it via decide_email or the MultiMail dashboard. Switch to monitored or autonomous only after validating output quality over several sessions.
If your MultiMail account has multiple mailboxes, include the full address in your prompt (e.g. 'Check [email protected]'). This prevents tool calls from defaulting to the wrong mailbox and eliminates ambiguity errors when you have both personal and agent mailboxes active.
Ask ChatGPT to tag emails as it processes them — for example, 'needs-reply', 'awaiting-invoice', or 'reviewed'. Tags are queryable via check_inbox filters, so you can later say 'Show me everything tagged needs-reply' and continue exactly where you left off.
ChatGPT displays which tools were called in the conversation thread. After any email action, expand the tool call entry to confirm the correct mailbox address, message ID, and body were used before continuing the workflow. This is especially important before approving outbound email drafts.
ChatGPT does not persist context between conversations. For multi-mailbox accounts, start a fresh conversation when switching contexts. This prevents the model from mixing thread context across unrelated inboxes and keeps the tool call history auditable.
Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a 38-tool MCP server. Formally verified in Lean 4.