Skip to content
Agentmart
Submit a tool

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

IndexedMITLocal (stdio)Remote (HTTP)
Write a review

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/mcp Remote (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.

We use your email only for this newsletter. Privacy

About

A real inbox for AI agents: send, receive and thread email, behind a prompt-injection firewall.

Use cases: email

No 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_get
  • mails_agents_inbox
  • mails_api_keys_list
  • mails_attachments_get
  • mails_attachments_list
  • mails_check_suppression
  • mails_connected_apps_list
  • mails_domains_get
  • mails_domains_list
  • mails_drafts_get
  • mails_drafts_list
  • mails_emails_get
Show 24 more tools
  • mails_emails_list
  • mails_emails_raw
  • mails_events_list
  • mails_get_event
  • mails_get_received
  • mails_get_reputation
  • mails_get_thread
  • mails_get_usage
  • mails_health_check
  • mails_labels_get
  • mails_labels_list
  • mails_list_agents
  • mails_list_messages
  • mails_list_received
  • mails_list_replies
  • mails_list_threads
  • mails_logs_list
  • mails_metrics_get
  • mails_search_mail
  • mails_suppressions_list
  • mails_wait_for_email
  • mails_webhooks_get
  • mails_webhooks_list
  • mails_webhooks_list_deliveries

Write 20 · Create, change, send or run things.

  • mails_api_keys_create
  • mails_create_agent
  • mails_create_draft
  • mails_domains_create
  • mails_domains_verify
  • mails_drafts_update
  • mails_emails_appeal
  • mails_emails_reschedule
  • mails_events_redeliver
  • mails_forward
  • mails_labels_create
  • mails_labels_update
Show 8 more tools
  • mails_reply
  • mails_send
  • mails_send_draft
  • mails_threads_update
  • mails_webhooks_create
  • mails_webhooks_replay_delivery
  • mails_webhooks_test
  • mails_webhooks_update

Delete 14 · Delete, drop, revoke or wipe things.

  • mails_agents_archive
  • mails_agents_update
  • mails_agents_verify_forwarding
  • mails_api_keys_revoke
  • mails_connected_apps_revoke
  • mails_domains_delete
  • mails_drafts_delete
  • mails_emails_cancel
  • mails_emails_send_batch
  • mails_labels_delete
  • mails_suppressions_revoke
  • mails_threads_delete
Show 2 more tools
  • mails_webhooks_delete
  • mails_webhooks_rotate_secret

Not yet classified 3 · We could not tell from the name and description.

  • mails_allowlist_address
  • mails_me
  • mails_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 data

    Archives 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-only

    Returns 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-only

    Returns 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 data

    Changes 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 data

    Sends 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 address

    Override 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 key

    Creates 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-only

    Lists 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 data

    Revokes an API key at once: anything using it stops working. Revoking a revoked key returns its existing `revoked_at`.

  • mails_attachments_getDownload an attachmentread-only

    Returns 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-only

    Lists 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 suppressed

    Check if an address is suppressed.

  • mails_connected_apps_listList connected appsread-only

    Lists 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 data

    Ends 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 agent

    Create 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 draft

    Stage a draft. With send_at it is scheduled.

  • mails_domains_createAdd a custom domain

    Registers 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 data

    Removes 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-only

    Returns one custom domain with its overall and per-record verification status.

  • mails_domains_listList custom domainsread-only

    Lists the workspace's custom sending domains with their verification status and DNS records.

  • mails_domains_verifyVerify a custom domain

    Checks 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 data

    Deletes a draft, or a scheduled draft before it is sent. Returns its id and when it was deleted.

  • mails_drafts_getGet a draftread-only

    Returns one draft by its id: recipients, subject, body, `send_at` and status.

  • mails_drafts_listList draftsread-only

    Lists drafts and scheduled drafts, newest first, filtered by agent or status; `next_cursor` fetches the next page.

  • mails_drafts_updateUpdate a draft

    Edits 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 send

    Asks 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 data

    Cancels 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-only

    Returns one sent or scheduled email by its `msg_` id: recipients, subject, body, status, delivery times, tags and metadata.

  • mails_emails_listList sent emailsread-only

    Lists 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-only

    Returns 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 email

    Moves 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 data

    Sends 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-only

    Lists 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 event

    Sends 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 email

    Forward a message to new recipients.

  • mails_get_eventGet an event

    Get 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 email

    Get one received message: its text, including the extracted reply text. Never its HTML.

  • mails_get_reputationGet an agent's sending reputation

    Get 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 thread

    Get a full thread with all messages in chronological order.

  • mails_get_usageGet billing-period usage

    Get the current billing period usage.

  • mails_health_checkCheck the API's healthread-only

    Returns whether the mails.ai API is up (`healthy` or `degraded`) and its clock. Needs no credential.

  • mails_labels_createCreate a label

    Creates 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 data

    Deletes a label and takes it off every thread that carries it. Returns its id.

  • mails_labels_getGet a labelread-only

    Returns one label by its `lbl_` id.

  • mails_labels_listList labelsread-only

    Lists the workspace's labels (at most 200) by name, each with its id and colour.

  • mails_labels_updateUpdate a label

    Renames a label or changes its colour. A new name applies to every thread that carries the label. Returns the label.

  • mails_list_agentsList agents

    List 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 mail

    List 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 emails

    List recently received messages. Text only: never the sender's HTML.

  • mails_list_repliesList replies

    List 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 threads

    List threads (conversations) for the workspace or a specific agent.

  • mails_logs_listList audit logsread-only

    Lists the workspace's audit log of changes, newest first, filtered by category or action if asked.

  • mails_meGet the connected account

    Who 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-only

    Returns 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 email

    Reply 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-only

    Full-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 email

    Send 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 draft

    Send a previously-created draft.

  • mails_suppressions_listList the suppression allowlistread-only

    Lists 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 data

    Removes 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 data

    Moves 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 thread

    Marks 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-only

    Returns 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 endpoint

    Registers 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 data

    Deletes a webhook endpoint and its delivery history. Returns its id and when it was deleted.

  • mails_webhooks_getGet a webhook endpointread-only

    Returns one webhook endpoint by its id.

  • mails_webhooks_listList webhook endpointsread-only

    Lists 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-only

    Lists 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 delivery

    Sends 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 data

    Issues 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 webhook

    Sends 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 endpoint

    Changes 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
License
MIT
Website
mails.ai
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

Mails.ai — Agent Email MCP server. Agent Mart. https://agentmart.dev/connectors/mails-ai-agent-email (last updated 2026-10-24)