Primitive MCP server
Which servers in the official MCP registry are Primitive's own, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-20
- Registry namedev.primitive/emailverified in the MCP registry
The registry name sits under primitive.dev. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-20
- Tools14
- Server calls itselfprimitive
- Server version0.2.0
- Protocol version2025-06-18
On 2026-10-20 the server answered initialize and tools/list without a sign-in. First answer in 207 ms.
- Whether its tools do the product's job has not been judged yet.
- Checked on 2 of the 7 days it takes to judge reliability.
Once connected
- sendEmail, createEmailAddress change data without a sign-in: anyone with the address can call them.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP scoreafter a weeka score needs 7 daily checks: 2 so far
- Answeredmeasuring2 of the 7 daily checks it takes to print a share
- Median first answer276 ms
- Space in an agent's context≈ 7,193 tokensthe definitions of all its tools (14), which an agent carries on every turn
- Tool definitionsA · 100 of 100
- Typed results14 of 14 toolsdeclared outputSchema: results come typed, read once
- Every tool passes all six checks.
Worth a look
- Tools that change data, on a server that answers without a sign-in: sendEmail, createEmailAddress
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (30%), doing the product's job (25%), definitions (20%), context (10%) and use (15%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
getAccountUse this when you need the authenticated Primitive account summary, including plan, onboarding state, and managed inbox domain. managed_inbox_address is a domain, not a complete mailbox. When it is non-null, this MCP result also includes…
getInboxStatusUse this when the user asks whether inbound email is ready or needs setup. Returns domains, routes, deployed Functions, and recent inbound activity. Adding or verifying a domain is done with the domain management tools, which are served…
getOutboundStatusWhat can I send FROM? Lists this account's verified outbound (sendable) domains plus any domains still pending DNS verification, with next actions. The result also carries can_send_to: the recipients this account is allowed to send to…
listEmailsBrowse the inbox in arrival order. Use this for "what arrived most recently" (newest first, a page at a time with cursor) and for waiting on new mail (pass since, plus wait to hold the request until something arrives). It filters by…
searchEmailsFind particular inbound emails. Use this when you are looking for specific messages: a full-text query (q) over subject, body, sender and recipient, or structured filters on sender, recipient, subject, body, attachments, spam score, or…
getEmailUse this when you need to read one inbound email. Returns id, thread_id, received_at, from, to, subject, preheader, body_text and each attachment's filename, content type, size and part_index (read one with getEmailAttachment). body_text…
replyToEmailReply 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. When you expect an answer back, pass await_reply: true and…
sendEmailSend a new email. This sends a real email immediately (or at scheduled_at) and it cannot be undone or recalled, so call it only after the user has confirmed the message. `from` is optional and defaults to your account's managed inbox…
listSentEmailsList outbound emails sent by this org, with cursor pagination and filters. Each row is id, thread_id, created_at, status, from, to, subject and a snippet, plus the error, SMTP response or gate denial when the send did not deliver. Use…
getSentEmailRead a single sent email by id: status, from, to, subject, body_text and its attachments, plus the error, SMTP response or gate denial when the send did not deliver. Use to inspect delivery details for a specific send, such as the SMTP…
awaitReplyWait for the threaded reply to a sent email. Use it when a send was made without await_reply, or returned reply_wait.status "no_reply_yet". With only the sent email's id it long-polls for up to 30 seconds by default. Do not report that…
getConversationRead a whole conversation, with message bodies. Pass the id of any inbound email and get every message of its thread, inbound and outbound, oldest first, each with its text, a direction (inbound/outbound) and a derived role (inbound→user…
getEmailAttachmentRead ONE attachment of an email. A text attachment (plain text, CSV, JSON, XML, Markdown, calendar and similar) comes back as text; an HTML attachment comes back reduced to text; a PNG, JPEG, GIF or WebP image up to 1 MB comes back as an…
createEmailAddressGet this user's Primitive managed inbox domain, creating the account on first use: no signup form, no password, no email verification, no browser. CALL THIS FIRST whenever you do not already have a Primitive API key and the user wants to…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"email": {
"type": "http",
"url": "https://www.primitive.dev/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http primitive https://www.primitive.dev/mcpclaude.ai, ChatGPT and other clients: add https://www.primitive.dev/mcp as a custom connector in the settings.
OpenAPI spec
151 paths, read 2026-10-20. Open the spec ↗
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.