MCP server
Primitive Email Official
dev.primitive/email
Checked 25 Oct 2026, 20:29 UTC · Connected to it and listed its tools
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Working at last checkVerified publisher: primitive.devAbout 7,804 tokens per request once connected14 tools
https://www.primitive.dev/mcp
At a glance
- Type
- MCP server
- Publisher
- primitive.dev (verified by the MCP Registry)
- Status
- Working at last check
- Tools
- 14
- Token cost
- About 7,804 tokens per request
- Sets up in
- Claude Code, Claude Desktop, Codex, Gemini CLI, Cursor, VS Code, Antigravity, ChatGPT, OpenAI API, Grok
- Last checked
- 25 Oct 2026, 20:29 UTC
Connect it to your agent
Opens the app, which shows the server and asks you to confirm. For other apps, copy the setup below.
Claude Code
claude mcp add --transport http email https://www.primitive.dev/mcp
Claude Desktop
Settings → Connectors → Add custom connector, and paste the URL.
Codex (config.toml)
[mcp_servers.email] url = "https://www.primitive.dev/mcp"
Gemini CLI
{"mcpServers":{"email":{"httpUrl":"https://www.primitive.dev/mcp"}}}
Cursor
{"mcpServers":{"email":{"url":"https://www.primitive.dev/mcp"}}}
VS Code
{"servers":{"email":{"type":"http","url":"https://www.primitive.dev/mcp"}}}
Antigravity
agy mcp add email https://www.primitive.dev/mcp
ChatGPT
Settings → Apps & Connectors → Advanced settings: turn on Developer mode, then Create a connector and paste the URL. Which plans can do this varies.
OpenAI API (Responses tools)
{"type":"mcp","server_label":"email","server_url":"https://www.primitive.dev/mcp","require_approval":"always"}
Grok (xAI API tools)
{"type":"mcp","server_label":"email","server_url":"https://www.primitive.dev/mcp"}
Tools
awaitReplySends messages · ~351 tokens
Wait for the threaded reply to a sent email (an id sendEmail or replyToEmail returned) when that send's own wait got none. Do not tell the user nobody replied unless this returns reply null with timed_out true. Threading is not proof of who wrote the reply: trust it only when reply.sender_verified icreateEmailAddress~407 tokens
Create an email account with no signup and get its api_key; call this first when you have no Primitive API key and the user wants to send or receive email. Pass api_key as the `api_key` argument on every later Primitive call, exactly as returned. address is a domain, not a mailbox; sender_address (sgetAccount~174 tokens
The authenticated Primitive account. managed_inbox_address is a domain, not a mailbox; sender_address (such as agent@pink-ram.primitive.email) is the mailbox sendEmail sends from by default. Result: id, email, plan, managed_inbox_address, created_at, limits, entitlements, onboarding_completed, and sgetConversation~317 tokens
Read a whole conversation with message bodies: the tool for finding out what was said. Pass the id of any inbound email in the thread. Each message has a direction and a role (inbound→user, outbound→assistant). Texts have links as [link] and quoted history removed; full: true returns them as stored,getEmail~559 tokens
Read one inbound email by id; read its attachments with getEmailAttachment. By default body_text leaves out quoted history and shows each link as an [n] marker; the links argument returns their targets. When body_next_offset is not null, call again with offset set to it. If parse_status is pending ogetEmailAttachment~574 tokens
Read ONE attachment of an email. A text file (plain text, CSV, JSON, XML, Markdown, calendar and similar) comes back as text, HTML reduced to text; a PNG, JPEG, GIF or WebP image up to 1 MB as an image; any other file as base64 up to 256 KB, and larger ones only described. PDF and office documents agetInboxStatus~144 tokens
Check whether inbound email is ready. Domains are added and verified with the domain management tools at /mcp/full. Result: ready, receiving_ready, processing_ready, summary, next_actions, domains, endpoints, functions and recent_emails.getOutboundStatus~147 tokens
What this account can send from, and to whom. Call it before sending outside Primitive or from a domain other than the managed inbox. Result: ready, summary, sendable_domains, domains, next_actions, and can_send_to, the recipients it may email.getSentEmail~286 tokens
Read a single sent email by id, to inspect its delivery, such as the SMTP response on a bounced send or the gate denial on a gate_denied one. Pass full: true for the stored record. Result: id, thread_id, created_at, status, from, to, subject, body_text and attachments; when set, scheduled_at, cancellistEmails~676 tokens
Page through inbound email newest first, or tail new mail with since and wait. Filters by domain, status, date and sender, recipient or subject words; for body text, attachments or replies to a send, use searchEmails. Rows carry id, thread_id, received_at, from, to, subject, status and snippet; openlistSentEmails~504 tokens
List sent emails to audit delivery. Rows carry id, thread_id, created_at, status, from, to, subject and snippet, plus error_code, smtp_response_code or gates when a send did not deliver. Read one with getSentEmail. Result: sent_emails, cursor for the next page (null at the end), and total, total_capreplyToEmailSends messages · ~877 tokens
Reply to one inbound email, threaded server-side. This sends a real email immediately and it cannot be undone or recalled, so call it only after the user has confirmed the reply. Expecting an answer? Pass await_reply: true to wait for it in this call. Result: the sent email's id, status, from, accepsearchEmails~1069 tokens
Find particular inbound emails: a full-text query (q) over subject, body, sender and recipient, or filters on sender, recipient, subject, body, attachments, spam score, or the sent email they reply to, ranked by relevance or date. To page through the inbox newest first, or to wait for mail that hassendEmailSends messages · ~1719 tokens
Send a new email. It goes out immediately (or at scheduled_at) and cannot be recalled, so confirm the message with the user first. Leave `from` out to send from your managed inbox. To send later, set scheduled_at, at most 30 days ahead and without wait or attachments. Expecting an answer? Pass await
Browse
Related MCP servers
- Sendraven
Email infrastructure for AI agents: send, read replies as threads, campaigns, per-key limits. - Volanea
Email infrastructure on Volanea: build templates, segments and workflows, send and check email. - Cooper Email
Email inboxes for AI agents: send, receive, search, drafts with owner approval, and webhooks. - Gemalli B2B Trade
Global B2B trade: verified manufacturers, product search, sanctions screening, HS codes. - DropTheHassle
Your AI publishes your site: free HTTPS link, or a .com for €19 that goes live with no DNS. - Outreach2day
Cold email infrastructure: domains, mailboxes, warm-up and campaigns. Never charges a card. - Infrabase
Hand-verified AI infrastructure directory: tools, alternatives, EU providers, LLM API prices. - Human Pages
Hire real humans for tasks agents can't do alone. 36 tools for the full hiring lifecycle.
Badge for your README
[](https://aptlynx.net/servers/dev.primitive/email)
Listing text is written by the maker; AptLynx lists tools and does not vouch for them. Find another tool · Browse by topic · For agents