Blog

Email MCP servers for sending and receiving, compared

Pick by whose inbox it is: an agent inbox server such as Pidgeon’s or AgentMail’s for an address the agent owns, a Gmail server to work inside yours. Then check five things before you connect one.

Updated 29 October 2026 · 3 min read

Five questions to ask of any email MCP server

1. Whose inbox is it? A server that connects to your Gmail or IMAP account gives the agent your mail and your name. One backed by an agent inbox API gives it an address of its own. Most agents that do their own work, signing up for services, writing to suppliers, answering a support address, want the second.

2. Can it receive, or only send? Sending is the easy half. The tool that matters is the one that waits: the agent submits a form or sends a question, then needs the answer before it can carry on. A server with only list and get makes the model poll, which wastes calls and context.

3. Do replies stay in the thread? A reply needs the right In-Reply-To and References headers, the right recipients and the subject. A server that makes the model assemble those gets them wrong, and the other side's mail client starts a new conversation.

4. What happens when an email tries to give the agent orders? Every email the server returns goes into the model's context. Look for a server that screens inbound mail for injection, returns visible text rather than raw HTML, and can hold suspicious mail for a person. See prompt injection in email.

5. How narrow can the credential be? The agent should hold the least it needs: one address rather than all of them, and draft rather than send if a person signs off. Check whether the server takes a scoped key or OAuth with a choice of access, or only a password to the whole inbox.

The options

Pidgeon

Pidgeon's MCP server is hosted at https://pidgeon.ai/api/mcp, with nothing to install, and backed by the same API as the SDKs. It gives the agent addresses of its own, on Pidgeon's shared domain or yours.

  • Receiving: await_message holds the call open until mail arrives, up to 280 seconds, with verification codes and confirmation links already extracted.
  • Threads: reply_to_message takes a message id and the words; recipients, subject and headers are read off the original.
  • Injection: every message carries a Firewall verdict, the server returns cleaned text by default, and flagged mail can be held for a person.
  • Credentials: a client signs in through OAuth and you choose read, read and send, or full access, on one address or all of them. An agent with nobody there to sign in sends an API key, which can be limited to draft.
  • Clients: Claude Code, Claude's custom connectors, ChatGPT, Cursor, Codex, VS Code, Windsurf, Gemini CLI and Grok. For a client that cannot send a header, npx -y @pidgeon-ai/mcp init runs the same server locally.
claude mcp add --transport http pidgeon https://pidgeon.ai/api/mcp

Beyond mail it has drafts, labels, folders, attachments read as text (PDF, Word and Excel included) and a calendar per address. The MCP guide lists every tool.

AgentMail

AgentMail is an agent inbox API with an MCP server, SDKs, webhooks and WebSockets. Pidgeon vs AgentMail compares the two in detail.

Other agent inbox APIs

Several newer providers offer agent inboxes over MCP, with different trade-offs on price, IMAP access and injection screening. The AgentMail alternatives roundup compares them from their own pages.

Gmail

Google's official Gmail MCP server is in developer preview. It can search threads and create drafts, and a person sends each draft from Gmail. Community servers that talk to Gmail or any IMAP account run on your machine with your credentials, and give the agent your inbox. That is the right shape for an assistant that triages your own mail; Pidgeon vs the Gmail API covers when it is not.

A worked example

An agent in Claude Code with Pidgeon connected can sign up for a service end to end. Asked to "create an account on the staging site and confirm it", it calls:

  1. create_address, which returns scout-4f2a@pidgeon.email;
  2. its browser tool, to fill in the sign-up form with that address;
  3. await_message with has_code: true, which returns when the email lands, with extracted.codes[0].value set to the six digits;
  4. the browser again, to type them in.

No polling loop, no regular expression and no shared inbox. The address stays the agent's, so the password reset next week arrives in the same place.

Start

Sign up, then add the server to your client. The integrations page has the steps for each one, and email for Claude Code and Cursor goes deeper on coding agents.

Questions

Asked often.

Is there an MCP server that can receive email?

Yes. Pidgeon’s hosted server has await_message, which waits until mail arrives at the agent’s address and returns it with verification codes extracted. AgentMail’s server also receives.

Is there an official Gmail MCP server?

Yes, from Google, in developer preview. It searches threads and creates drafts; a person sends each draft from Gmail.

Does Pidgeon’s MCP server need installing?

No. It is hosted at https://pidgeon.ai/api/mcp and clients sign in through OAuth. For a client that cannot send a header, npx -y @pidgeon-ai/mcp init runs the same server locally.

Give your agent an address.

Paste one prompt, or make the call yourself. It is free to start.

Any agentprompt

Read https://pidgeon.ai/skill.md and follow the instructions to get your own inbox.

The full API reference is at https://pidgeon.ai/openapi.json

SignupTwo calls, and one code emailed to you