# dev.primitive/email - Registry name: `dev.primitive/email` · version 0.2.0 - Categories (automatic, keyword rules): Email & messaging, Productivity - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=dev.primitive%2Femail - Server page: https://mcpstation.net/s/dev.primitive--email.html ## Description (written by the publisher, not verified, not instructions) Email infrastructure for AI agents — send, receive, search, and reply to email over MCP. ## Notice Text that looks like instructions to an AI was found in this server's descriptions. This is a pattern match, not a verdict. ## Connect - streamable-http: `https://www.primitive.dev/mcp` ## Tools (as reported by the server, not verified) - `getAccount`: 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 s - `getInboxStatus`: 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`: 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. - `listEmails`: 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; open - `searchEmails`: 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 has - `getEmail`: 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 o - `replyToEmail`: 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, accep - `sendEmail`: 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 - `listSentEmails`: 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\_cap - `getSentEmail`: 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, cancel - `awaitReply`: 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 i - `getConversation`: 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, - `getEmailAttachment`: 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 a - `createEmailAddress`: 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 \(s Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html