Install

One JSON block. That’s it.

Add one JSON block and your agent gets mails_* email tools in Claude Code, Cursor and most other MCP-capable runtimes. The npm package runs on your machine, with no server to host, and your API key stays there. Or point your client at the hosted server and sign in.

{
  "mcpServers": {
    "mails": {
      "command": "npx",
      "args": [
        "-y",
        "@mailsai/mcp-server"
      ],
      "env": {
        "MAILS_API_KEY":
          "mk_live_..."
      }
    }
  }
}

Ask

Try asking your agent

Once the server is connected, ask in plain words. Copy any of these into your client.

  • “Send a test from the hello agent to reply@test.mails.ai”

  • “Thank the sender of the newest message in the hello inbox”

  • “List the threads that are still open for the hello agent”

  • “Draft a follow-up to dana@example.com for me to review before it sends”

  • “Is ops@example.com on our suppression list?”

  • “On Pro (5 agents), create an agent called invoices for sending receipts”

  • “Show me the replies the hello agent got since yesterday”

  • “How healthy is the hello agent’s sending reputation?”

  • “How much of this month’s allowance have we used?”

Tools exposed

A tool for every operation your agent needs

Hand-named tools for everyday jobs, and a generated one for every other operation a key can call but the live event stream and the billing link. Nine of them:

  • Sending

    mails_send sends from any agent address and returns the message id and its status.

  • Replying

    mails_reply answers in the same thread, with In-Reply-To and the Re: subject set.

  • Inbound

    mails_list_received pages through inbound mail with its attachments and SPF and DKIM results.

  • Threads

    mails_list_threads pages through conversations, grouped by In-Reply-To; open one for its history.

  • Replies

    mails_list_replies lists the replies an agent received, with a since filter for polling.

  • Reputation

    mails_get_reputation returns an agent’s reputation score (0–1), built from real engagement.

  • Suppression

    mails_check_suppression says whether an address is suppressed before you send to it.

  • Agents

    mails_create_agent provisions a per-agent identity bound to your sending domain.

  • Drafts

    mails_create_draft stages an email for a person to review before it is sent.

We added the hosted server in Claude, signed in once in the browser, and no API key ever sat in a config file.

Vera KostovaAI Engineer, Owlbrook Labs

In action

See the server in action

Watch Claude Code add the server, send a hello and read the reply. The same tools work in Cursor, Cline, Continue, Windsurf, the OpenAI Agents SDK and the Anthropic SDK.

“Replies come back as events with an injection score already on them. We deleted a whole layer of parsing code the week we switched, and we gate on the quarantine flag, so our agent never sees the ones that look like attacks.”

Tomás VargaStaff Engineer, Cinderjay

“Moving our agent onto our own domain was a few DNS records at the registrar. No nameserver move, and our existing mail kept working. Replies to the agent still come back to its inbox, threaded with the message they answer.”

Ishani VaidyaCTO, Sedgequay

“Our agent writes every reply as a draft, with a key that can’t send. Someone on the team reads it and hits Send now in the dashboard.”

Marcus FeldFounder, Marrowkite

“Our tests send to the test address and wait for the real reply, so the whole loop is covered before a customer ever writes in. It answers in about a second, which keeps the suite fast.”

Ana Lucía RíosEngineering Lead, Gorsefinch

“Adding the MCP server was one JSON block. Claude Code could send and read its own inbox a minute later.”

Jonah AbramsDeveloper, Wickerjay

“A reputation score per agent tells us exactly which one needs attention, instead of one number for the whole account. It comes from each agent’s own replies, bounces and complaints, and we read it from the API.”

Mei Lin ZhouOperations, Larchwhistle

“Sends and replies have separate allowances, so a busy inbox never eats our sending quota. Pricing was the easy part.”

Kwabena AdomakoFounder, Oxbowlark

“Half our agents are LangGraph in Python and half are Node. Both SDKs make the same calls, so the team doesn’t have to think about it.”

Sofia BrandtEngineer, Moss & Ladder

“Signed webhooks, retries with backoff and an event id to dedupe on. The boring plumbing, done properly.”

Nikhil BhonsleBackend Lead, Thimblecrow

“We signed up, made a key and sent our first message without talking to anyone, and the free tier never asked for a card. That’s how infrastructure should feel.”

Frieda WesselFounder, Ploverwick Studio

Give your first agent an inbox

Free covers 3,000 emails and 3,000 inbound replies a month, with no card. Upgrade when your agents get busy.

Get your API key