90trust / 100

Email

by primitive.dev in Email & messaging

MCP serverPassing, checked 5 h ago

Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.

https://www.primitive.dev/mcp

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
297 ms typical, 297 ms slowest 5%
Last check
5 h ago
Next check
in 48 min

How to call it

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "email": {
      "type": "http",
      "url": "https://www.primitive.dev/mcp"
    }
  }
}

14 tools

  • getAccount

    Use 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 sender_address, such as [email protected]

  • getInboxStatus

    Use 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 at /mcp/full.

  • getOutboundStatus

    What 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. Call this before sending to an address outsi

  • listEmails

    Browse 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 domain, status, date range and a simple search

  • searchEmails

    Find 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 the sent email they reply to. Results can be

  • getEmail

    Use 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 is the words of the email in reading order

  • replyToEmail

    Use this when the user has selected a specific inbound email and confirmed a reply. Sends real outbound email with threading handled server-side. When you expect an answer back, pass await_reply: true and it is returned in this same result.

  • sendEmail

    Use this when the user has confirmed a new outbound email. Sends real email through Primitive's relay, or schedules it for a future time with scheduled_at. `from` is optional and defaults to your account's managed inbox address. When you expect an answer, pass await_reply: true a

  • listSentEmails

    List 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 getSentEmail to read the body of one. Useful

  • getSentEmail

    Read 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 response on a bounced row or the gate denial

  • awaitReply

    Wait 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 nobody replied or ask the user to check late

  • getConversation

    Read 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, outbound→assistant). This is the tool for

  • getEmailAttachment

    Read 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 image; any other file comes back as base64

  • createEmailAddress

    Get 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 send or receive email, instead of telling

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTime
5 h agoPassed200297 ms