Mails.ai — Agent Email
A real inbox for AI agents: send, receive and thread email, behind a prompt-injection firewall.
Connector by mails.aiOfficial · Domain verified by the MCP Registry
Install
Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/mails-ai-agent-email
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://api.mails.ai/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: email
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 36 read · 20 write · 14 delete · 3 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 73
Read from the source code; the running server may list different tools.
Read 36 · Look things up without changing anything.
mails_agents_getmails_agents_inboxmails_api_keys_listmails_attachments_getmails_attachments_listmails_check_suppressionmails_connected_apps_listmails_domains_getmails_domains_listmails_drafts_getmails_drafts_listmails_emails_get
Show 24 more tools
mails_emails_listmails_emails_rawmails_events_listmails_get_eventmails_get_receivedmails_get_reputationmails_get_threadmails_get_usagemails_health_checkmails_labels_getmails_labels_listmails_list_agentsmails_list_messagesmails_list_receivedmails_list_repliesmails_list_threadsmails_logs_listmails_metrics_getmails_search_mailmails_suppressions_listmails_wait_for_emailmails_webhooks_getmails_webhooks_listmails_webhooks_list_deliveries
Write 20 · Create, change, send or run things.
mails_api_keys_createmails_create_agentmails_create_draftmails_domains_createmails_domains_verifymails_drafts_updatemails_emails_appealmails_emails_reschedulemails_events_redelivermails_forwardmails_labels_createmails_labels_update
Show 8 more tools
mails_replymails_sendmails_send_draftmails_threads_updatemails_webhooks_createmails_webhooks_replay_deliverymails_webhooks_testmails_webhooks_update
Delete 14 · Delete, drop, revoke or wipe things.
mails_agents_archivemails_agents_updatemails_agents_verify_forwardingmails_api_keys_revokemails_connected_apps_revokemails_domains_deletemails_drafts_deletemails_emails_cancelmails_emails_send_batchmails_labels_deletemails_suppressions_revokemails_threads_delete
Show 2 more tools
mails_webhooks_deletemails_webhooks_rotate_secret
Not yet classified 3 · We could not tell from the name and description.
mails_allowlist_addressmails_memails_test_inbound
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
MAILS_API_KEY
Other settings (environment variables or headers).
MAILS_BASE_URL
Network hosts it talks to 1
api.mails.ai· found in remote endpoint, install command
Files it touches
- Any path the agent passes to its tools
Tools (73)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
mails_agents_archiveArchive an agentcan change or delete dataArchives an agent: it can no longer send, and its address is kept and never reused. Archiving cannot be undone. Returns its id, status `archived` and when it was archived.
mails_agents_getGet an agentread-onlyReturns one agent by name or `agt_` id: its address, status, send limits, recipient allowlist and blocklist, whether its new mail is read for intent, and its unread count.
mails_agents_inboxGet an agent's inbox summaryread-onlyReturns an agent's unread count, its thread and unread counts per folder and per label, and the time of its latest message.
mails_agents_updateUpdate an agentcan change or delete dataChanges an agent's status (`active` or `paused`), its daily and hourly send limits, its recipient allowlist and blocklist, whether its new mail is read for intent, or forwarding mode for an agent at an address on the workspace's own domain (turning it on or off starts its forwarding test again). An archived agent's status cannot change. A key tied to the agent, or an app connected by signing in, cannot change its limits or domain lists. Returns the agent.
mails_agents_verify_forwardingTest an agent's forwardingcan change or delete dataSends one test email, from mails.ai, to the own address of an agent in forwarding mode (support@acme.com), and returns the agent. When the mail service that hosts the address forwards the test to the agent's forwarding_address, its forwarding_status becomes `verified`; a test still missing 15 minutes later makes it `failing`. While a test is on its way another call sends nothing. Needs a live key.
mails_allowlist_addressAllowlist a suppressed addressOverride a complaint or unsubscribe suppression for one address, with an attestation of at least 20 characters that the recipient agreed to receive the mail. A hard bounce is not lifted.
mails_api_keys_createCreate an API keyCreates an API key with the given scopes and mode, optionally tied to one agent or expiring. The whole key is in this response only and is never shown again.
mails_api_keys_listList API keysread-onlyLists the workspace's API keys by prefix, name, mode, scopes and agent, with when each was last used. Whole keys are never listed.
mails_api_keys_revokeRevoke an API keycan change or delete dataRevokes an API key at once: anything using it stops working. Revoking a revoked key returns its existing `revoked_at`.
mails_attachments_getDownload an attachmentread-onlyReturns one file from a received email. PNG, JPEG, GIF and WebP images come back as images, plain text, CSV and JSON as text, and other files as an embedded binary resource. A file over 5 MB is described instead of returned.
mails_attachments_listList a received email's attachmentsread-onlyLists every file in a received email (`rcv_` id), embedded images included (`inline: true`), with filename, content type and size. Files that could not be kept are listed under `omitted` with the reason.
mails_check_suppressionCheck whether an address is suppressedCheck if an address is suppressed.
mails_connected_apps_listList connected appsread-onlyLists the apps connected to the workspace by signing in (the mails CLI, Claude, ChatGPT, Cursor …) with the scope each was approved for, when it was last used, and the API keys, webhook endpoints and signing secrets it left behind.
mails_connected_apps_revokeRevoke a connected appcan change or delete dataEnds a connected app's sign-in at once: its tokens stop working and it has to be approved again. The API keys and webhook endpoints it created stay, and the answer counts them. Revoking it again returns its existing `revoked_at`.
mails_create_agentCreate an agentCreate a new agent: on the workspace's mails.ai address (`name`), or at an address on a domain the workspace has verified (`address`), with `forwarding: true` when the mail service that already hosts that address forwards its mail to the agent. Returns the agent, with its forwarding_address and forwarding_status in forwarding mode.
Show 58 more tools
mails_create_draftCreate a draftStage a draft. With send_at it is scheduled.
mails_domains_createAdd a custom domainRegisters a custom sending domain (paid plans) and returns the DNS records to create at the domain's registrar. Agents whose address is on a verified custom domain send under that address.
mails_domains_deleteRemove a custom domaincan change or delete dataRemoves a custom domain. Agents whose address is on it cannot send (422 `domain_not_verified`) until the domain is added and verified again. Returns its id.
mails_domains_getGet a custom domainread-onlyReturns one custom domain with its overall and per-record verification status.
mails_domains_listList custom domainsread-onlyLists the workspace's custom sending domains with their verification status and DNS records.
mails_domains_verifyVerify a custom domainChecks every DNS record of a custom domain now and returns the domain with its per-record and overall status. DNS changes usually take minutes to be seen. Each call that does not pass counts: 20 in a row mark the domain `failed`, which is still re-checked automatically and verifies once its records resolve. The count starts over on success or after a day without a call.
mails_drafts_deleteDelete a draftcan change or delete dataDeletes a draft, or a scheduled draft before it is sent. Returns its id and when it was deleted.
mails_drafts_getGet a draftread-onlyReturns one draft by its id: recipients, subject, body, `send_at` and status.
mails_drafts_listList draftsread-onlyLists drafts and scheduled drafts, newest first, filtered by agent or status; `next_cursor` fetches the next page.
mails_drafts_updateUpdate a draftEdits a draft's recipients, subject, body or `send_at`. A future `send_at` schedules the draft to be sent then, and clearing it makes it a plain draft again. A draft that failed only because its agent was paused can be changed and scheduled again once the agent is resumed. Returns the draft.
mails_emails_appealAppeal a refused sendAsks for an independent second review of content the cold-email firewall refused (`cold_email_prohibited`), given the same agent, subject and body the refused send used. Returns `outcome`: `overturned` (that exact content may be sent for the next 24 hours), `upheld`, `not_appealable` (a fixed policy block, with no review) or `not_blocked`. Within 24 hours the same content gets back the outcome it was given, never a new review. At most 10 appeals per workspace per 24 hours.
mails_emails_cancelCancel a scheduled emailcan change or delete dataCancels an email that is still scheduled, so it is never sent. Cancelling cannot be undone. An email that has started going out cannot be canceled (409). Returns its id, status `canceled` and when it was canceled.
mails_emails_getGet a sent emailread-onlyReturns one sent or scheduled email by its `msg_` id: recipients, subject, body, status, delivery times, tags and metadata.
mails_emails_listList sent emailsread-onlyLists emails the workspace's agents sent or scheduled, newest first, with recipients, subject, status and timestamps. Filters by agent, thread or text in the subject, body or recipient addresses; `next_cursor` fetches the next page.
mails_emails_rawGet an email as RFC 822read-onlyReturns a sent email (`msg_` id) as an RFC 822 message rebuilt from what is stored: its headers and its HTML or text body, without attachments. For a received email (`rcv_` id) only the header block comes back (the original headers when the raw email was kept, else ones rebuilt from what is stored): its body reaches a model only as text, through mails_get_received. Text past 100,000 characters is cut short.
mails_emails_rescheduleReschedule an emailMoves a scheduled email to a new send time. Only an email whose status is `scheduled` can move, or one that failed only because its agent was paused when it came due, once the agent is resumed. It needs the `send` scope as well as `manage`, and a live key for live mail. Returns its id, the new `scheduled_at` and its status.
mails_emails_send_batchSend a batch of emailscan change or delete dataSends up to 100 emails in one call, each with its own agent, recipients and content. A message that fails is reported in its place in `data` and does not stop the others. Sent mail cannot be recalled.
mails_events_listList eventsread-onlyLists events newest first (message.sent, message.delivered, message.bounced, reply.received, message.received, thread.updated and the rest), of one type, for one agent or since a time if asked. Inbound events carry the injection score; `message.received` (new mail) can also carry an intent read from the message when the agent's classify_inbound is on, and on `reply.received` the intent is always `general_reply`. `next_cursor` fetches the next page.
mails_events_redeliverRedeliver an eventSends a stored event again to every webhook endpoint subscribed to its type. Returns the event id and the endpoints it was queued for.
mails_forwardForward an emailForward a message to new recipients.
mails_get_eventGet an eventGet one event by its id (evt_…), whatever its type: received mail, a send, a draft or a suppression. For received mail it also carries injection_categories, which the list leaves out.
mails_get_receivedGet a received emailGet one received message: its text, including the extracted reply text. Never its HTML.
mails_get_reputationGet an agent's sending reputationGet an agent's sending-reputation health (0-1) + its 30-day bounce/complaint/reply counts. The firewall auto-suspends an agent that crosses a 0.3% complaint rate. A key tied to one agent reads only that agent's reputation.
mails_get_threadGet a threadGet a full thread with all messages in chronological order.
mails_get_usageGet billing-period usageGet the current billing period usage.
mails_health_checkCheck the API's healthread-onlyReturns whether the mails.ai API is up (`healthy` or `degraded`) and its clock. Needs no credential.
mails_labels_createCreate a labelCreates a label with a name (unique in the workspace, ignoring case) and a colour from a fixed palette of 12. Returns the label.
mails_labels_deleteDelete a labelcan change or delete dataDeletes a label and takes it off every thread that carries it. Returns its id.
mails_labels_getGet a labelread-onlyReturns one label by its `lbl_` id.
mails_labels_listList labelsread-onlyLists the workspace's labels (at most 200) by name, each with its id and colour.
mails_labels_updateUpdate a labelRenames a label or changes its colour. A new name applies to every thread that carries the label. Returns the label.
mails_list_agentsList agentsList the agents in the workspace. Returns SENDABLE agents by default (status=live); archived agents cannot send, so they are excluded unless asked for: status="all" includes them.
mails_list_messagesList first-contact mailList recent cold/first-contact inbound (message.received) for an agent — senders that are NOT replying to one of your sends — together with mail that failed authentication (message.received.unauthenticated: its From domain's DMARC policy is quarantine or reject, and no DKIM signature aligned with that domain verifies), newest first. Each event carries `unauthenticated`, true for the failed ones.
mails_list_receivedList received emailsList recently received messages. Text only: never the sender's HTML.
mails_list_repliesList repliesList recent reply events (reply.received) for an agent. A reply that failed authentication is not a reply event: mails_list_messages lists it, as message.received.unauthenticated.
mails_list_threadsList threadsList threads (conversations) for the workspace or a specific agent.
mails_logs_listList audit logsread-onlyLists the workspace's audit log of changes, newest first, filtered by category or action if asked.
mails_meGet the connected accountWho am I — returns the authenticated workspace, agent, tier, and API-key scopes, with this server's version and how many tools this credential can use.
mails_metrics_getGet mail metricsread-onlyReturns counts of sent, delivered, bounced, complained, received and reply messages per day or per hour (UTC), for the workspace or one agent. Without a range: the last 30 days by day, or the last 48 hours by hour.
mails_replyReply to an emailReply in-thread to a message. A received message (rcv_…) is answered to its sender, or to the Reply-To address it named; one of your own sent messages (msg_…) is followed up to its recipients. In-Reply-To, References and the Re: subject are set server-side, and the original is not quoted.
mails_search_mailSearch mailread-onlyFull-text search over received and sent mail (subject, body and addresses), newest first; every word must match. Narrows by agent, sender, recipient, date range, attachment, folder, label or direction. Each hit says whether it was `received` or `sent` and carries a snippet around the match.
mails_sendSend an emailSend an email. `agent` is OPTIONAL: without it the workspace's single agent is used, or one is created (named from `from`) when this connection may create agents (Full access, or a key with `manage`), so a first send needs no setup; with several agents, `agent` says which one sends. The reputation firewall runs on every send: an agent auto-suspended for crossing a 0.3% complaint rate is blocked (422 agent_paused), a send with a suppressed address in to, cc or bcc is refused whole (422 recipient_suppressed), and the response returns the classifier_score, which shows how the send was graded.
mails_send_draftSend a draftSend a previously-created draft.
mails_suppressions_listList the suppression allowlistread-onlyLists the workspace's allowlist: addresses mail may go to despite a suppression, each with its attestation. With `view: suppressed` it lists instead which of the workspace's recent recipients are suppressed, and why (up to 500).
mails_suppressions_revokeRevoke an allowlist entrycan change or delete dataRemoves an allowlist entry by its id, so the suppression applies to that address again. Returns its id and when it was revoked.
mails_test_inboundSimulate a received email (test key)SANDBOX (test key only): simulate an email arriving to one of your agents, to exercise the whole two-way loop — receive → prompt-injection scan → reply — with NO live mail server and no waiting. This runs the REAL reputation firewall. The VERDICT is the top-level `quarantined` (boolean — true means we judged it an attack); the evidence sits in the `classification` block: injection_score (0-1), injection_categories, intent, entities, sender_reputation. A body_text that hides an instruction aimed at the agent, such as a request to forward its contacts to an outside address, is flagged by the inj…
mails_threads_deleteDelete a threadcan change or delete dataMoves a thread to trash, where mails_threads_update can move it back and where it is emptied after 30 days. With `permanent: true` the thread is deleted for good, from any folder: its messages, raw email and attachments are removed and cannot be recovered.
mails_threads_updateUpdate a threadMarks a thread read or unread, moves it to inbox, archive, spam or trash, sets its status (`open`, `closed`, `archived`) or replaces its labels. Archiving files the thread in archive, and moving an archived thread anywhere else reopens it. Returns the thread.
mails_wait_for_emailWait for an emailread-onlyReturns the newest received email that matches, waiting up to `timeout` seconds (0 to 50, default 30) for one to arrive: after asking a service for a sign-up code, a magic link or a password reset, name the sender with `from` (an address, or a domain and its subdomains) and `has: code` or `has: link`. The email carries `codes` (each a `value`) and `links` (each a `url` and a `kind`: verify, sign_in, reset_password, unsubscribe, other). Mail judged forged and quarantined mail never match. `message` is null and `timed_out` true when none arrived in time.
mails_webhooks_createCreate a webhook endpointRegisters an HTTPS endpoint that receives the workspace's events: every event, or the listed types. Returns the endpoint with its `signing_secret`, which is shown only this once.
mails_webhooks_deleteDelete a webhook endpointcan change or delete dataDeletes a webhook endpoint and its delivery history. Returns its id and when it was deleted.
mails_webhooks_getGet a webhook endpointread-onlyReturns one webhook endpoint by its id.
mails_webhooks_listList webhook endpointsread-onlyLists the workspace's webhook endpoints with their URL, event types, description and whether each is active. Signing secrets are never listed.
mails_webhooks_list_deliveriesList webhook delivery attemptsread-onlyLists a webhook endpoint's delivery attempts, newest first, each with its event, attempt number, status, HTTP status, the start of the endpoint's answer (or why it could not be reached), and when it was made, delivered and next retried.
mails_webhooks_replay_deliveryReplay a webhook deliverySends the event behind a past delivery attempt again. Returns the delivery and event ids and the endpoints it was queued for.
mails_webhooks_rotate_secretRotate a webhook's signing secretcan change or delete dataIssues a new signing secret for a webhook endpoint, returned only this once. For the next 24 hours every delivery carries signatures from both the new and the previous secret, so a receiver can switch over without a failed delivery.
mails_webhooks_testSend a test event to a webhookSends a synthetic `webhook.test` event to a webhook endpoint, signed like a real delivery, and returns whether it answered with a 2xx (`ok`), its HTTP status (null when it could not be reached) and the start of its answer. The attempt is listed among the endpoint's deliveries.
mails_webhooks_updateUpdate a webhook endpointChanges a webhook endpoint's URL, event types, description or whether it is active. Returns the endpoint.
Signals
- Weekly downloads
- 239
- Last release
- Oct 16, 2026 (12 days ago)
- Last package publish
- Oct 16, 2026 (12 days ago)
From the package registry.
Details
- Registry name
ai.mails/agent-email- Version
- 0.5.0
- Auth
- Auth not stated, API key
- Packages
- npm @mailsai/mcp-server
- License
- MIT
- Website
- mails.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- Official MCP Registry
Cite this page
Mails.ai — Agent Email MCP server. Agent Mart. https://agentmart.dev/connectors/mails-ai-agent-email (last updated 2026-10-24)