Introducing Mailsnail: the way AI agents send physical mail
Agents already have phones, email, code, and the web. Today we're shipping the missing channel: a postmarked envelope, decided and dispatched by software.
Agents already have phones (Twilio), email (every SMTP API), code execution, file systems, web browsing, and a thousand other tools. There is one channel they couldn't reach until today: a real, postmarked piece of physical mail.
Mailsnail closes that gap.
What it is
Mailsnail is an MCP server. Wire it into Claude Code, Claude Desktop, Cursor, the Codex CLI, the OpenAI Agents SDK, or any client that speaks Model Context Protocol. The server exposes six tools:
verify_address— validate and normalize a US address (free) before you spend anythingpreview_letter— generate a proof and the exact price without charging; the recommended first stepsend_letter— compose and mail a physical letter to any US addressget_letter— check delivery state by IDlist_letters— paginate through everything the agent has sentcancel_letter— cancel a piece before it enters production
That's the entire surface. No 17-knob configuration, no campaign builder, no template DSL. Just a small set of well-typed tools that an agent can call on the first try.
Why now
Two things changed in the last year that make this interesting:
- MCP shipped and stuck. Every major agent runtime now speaks the protocol. A single MCP server is reachable from every place an agent runs.
- Agents got good enough to write the letter. A frontier model can draft a thank-you note, a condolence card, or a preliminary-notice letter that doesn't read like a template. The bottleneck isn't writing anymore; it's dispatch.
Sign in, pay per piece
In managed mode you add the remote server, sign in from your MCP client, and pay through Stripe, either for one letter at a time or by funding a prepaid balance that mail draws against. There are no API keys to provision and no card number for us to hold — Stripe does that. If the balance can't cover a send, the first send_letter hands back two checkout links: one to pay for just that letter by card, one to add funds to your balance. Open one, pay, retry, and the letter goes out. Both are one-time payments by default: we don't save your card or charge it again. Auto-reload is opt-in, and you can turn it off any time.
Everything is priced at our cost, with no markup, and there are two ways to pay. From a prepaid balance: from $1.21 for a first-class letter, $8.61 certified, $11.64 certified with an electronic return receipt, and $14.27 certified with a green-card return receipt. Paying for just one letter by card costs a little more: $1.51, $8.83, $11.83 and $14.42. Those are one-page, black-and-white prices; extra pages and color are priced at our cost, and the preview shows both exact prices before anything is charged. If a piece fails to mail, the charge is auto-refunded.
Why the two prices differ: card processing is 2.9% plus a fixed 30¢ on every charge. One card payment for one letter carries all of it. A balance spreads it over many letters, which is what keeps cheap mail cheap.
There's also an account-free path for agents that can pay for themselves — post a letter, get an HTTP 402 with the single-letter card price, retry with a Stripe Shared Payment Token. That needs a client able to mint one, which most coding agents can't do yet.
The kinds of things our users mail
- Customer thank-you notes after a positive support resolution
- Welcome kits for high-intent signups
- Preliminary lien notices in construction (which legally have to ship as physical mail)
- Birthday and condolence cards from personal AI assistants
- Targeted, low-volume direct mail to the 50 accounts that matter, written and dispatched per-event by an agent
Built for agents first
Most APIs are designed for a human reading a dev portal. We built the opposite: a site that an agent can read cold.
/llms.txtand/llms-full.txtat the root, written for ingestion/openapi.jsonwith rich descriptions and anx-mcpextension/setupthat returns ready-to-paste MCP config for every major client- JSON-LD
SoftwareApplicationandWebAPIgraphs on the homepage
If a model lands on the docs without context, it should be able to wire itself in without further hand-holding.
How to try it
Open Claude Code in any project and run:
claude mcp add -t http mailsnail https://api.mailsnail.dev/mcp
Then run /mcp, select mailsnail, and choose Authenticate — adding a server registers it but doesn't open the browser on its own. Sign in, ask the agent to send you a letter, and it will. The full setup walkthrough, with copy-paste config for every major client, lives at /setup.
What's next
Three things on our roadmap:
- International delivery. US-only at launch; international coming.
- Custom letterheads and stationery. Per-account templates so your agent's mail feels like yours.
- Listing in every MCP registry that exists. Smithery, Glama, mcp.so, Anthropic's MCP directory, awesome-mcp-servers, Pulse MCP.
If you build with agents and there's a workflow where physical mail belongs but never gets sent because of the friction, we'd love to hear about it. Email hello@mailsnail.dev.