How to send physical mail from an AI agent

Connect the Mailsnail MCP server and have any AI agent mail a real USPS letter or certified mail. Nothing to install — add a URL and sign in.

Your agent can already send an email, call an API, open a browser, and write code. The one channel it couldn't reach was the oldest one — a stamped envelope in someone's mailbox. Mailsnail closes that gap. It's an MCP server, so any agent that speaks the protocol — Claude Code, Claude Desktop, Cursor, Codex, the OpenAI Agents SDK — can send a real, postmarked USPS letter or certified piece with a single tool call.

Nothing to install. No API keys. You sign in, and you pay per letter by card or from a prepaid balance.

The 30-second version

claude mcp add -t http mailsnail https://api.mailsnail.dev/mcp

That's it — a URL, not a package. Then open /mcp, pick mailsnail, and choose Authenticate; adding a server doesn't open the browser on its own. Sign in once and your agent gets these tools:

  • verify_address — check an address is deliverable (USPS) before you spend a cent
  • preview_letter — render the exact piece and return the exact price, nothing charged
  • send_letter — mail a first-class or certified letter
  • get_letter — check delivery status
  • get_balance — what's left, so the agent knows it can afford the job before it starts
  • add_payment_method — a Stripe link to add funds; a one-time payment by default, so your card is not saved
  • turn_off_auto_reload — turn off automatic charges to a saved card; free, and the card stays on file

What it costs

Public, and priced at our cost, so an agent can reason about the price before it commits. There are two ways to pay: from a prepaid balance, or by card for just one letter, which costs a little more.

  • First-class letter — from $1.21 from a balance, $1.51 for one letter by card
  • Certified mail — from $8.61 from a balance, $8.83 by card
  • Certified mail with an electronic return receipt — from $11.64 from a balance, $11.83 by card
  • Certified mail with a green-card return receipt — from $14.27 from a balance, $14.42 by card

Those are one-page, black-and-white prices. Extra pages and color are priced at our cost. preview_letter returns both exact prices for your piece (amount_cents from a balance, pay_per_letter_cents by card) with nothing charged. The agent decides whether the send is worth it and — if you've wired it that way — checks with you first.

How "nothing to install" actually works

This is the part people don't expect. Most mail APIs make you create an account, add a card, and provision keys before the first send — and most MCP servers make you install a package and keep it updated. Mailsnail does neither. The server runs on our infrastructure; you add its URL and sign in through your client, the same way you'd connect any other account. There is no key to paste, and a fix on our side reaches you without you upgrading anything.

The two prices differ for one reason: card processing carries a fixed fee per charge. One card payment for one letter carries all of it. A balance works the way a transit card does: you fund it once, and each piece draws from it, so the fee is spread over many letters. Both payment links are one-time payments, so your card isn't saved. Auto-reload is optional: you opt in, and you can turn it off any time. Stripe handles the card; we never see the number. If a piece fails to mail, the charge is refunded automatically.

There's also an account-free path for agents that can pay for themselves: post a letter, get an HTTP 402 with the quoted price (the single-letter card price), and retry with a Stripe Shared Payment Token. It needs a client that can mint one, which most coding agents can't do today. (USDC/x402 settlement is planned, not shipped.)

The upshot is simple: the gap between "add the server" and "a letter is in the mail" is minutes, not a procurement cycle.

What you'd actually use it for

Not bulk marketing blasts. The pieces that fit are low-volume and high-intent — the ones never worth standing up a print vendor for:

  • A thank-you note mailed after a support ticket is resolved well
  • A welcome kit when someone signs a contract
  • Preliminary lien notices and other compliance mail that legally has to be physical and postmarked
  • Condolence or birthday cards a personal-assistant agent sends without being reminded
  • One personalized letter to one account when a trigger fires, written by the agent that has the context

Send your first piece

  1. Add the server — claude mcp add -t http mailsnail https://api.mailsnail.dev/mcp
  2. Sign in — open /mcp, pick mailsnail, choose Authenticate, approve it in the browser
  3. Ask — tell your agent to mail a letter to a specific address
  4. It verifies — verify_address confirms the address is deliverable
  5. It previews — preview_letter returns the rendered piece and the exact price, still $0 charged
  6. It sends — on your go-ahead, send_letter mails it and returns a tracking id. If the balance can't cover it, the first send hands back two Stripe links: one to pay for just that letter, one to add funds to your balance
  7. You check — get_letter shows status

Related guides

FAQ

Is Mailsnail the only way to send physical mail from an AI agent?

No. PostalForm and PieterPost are agent-native too, and APIs like Lob and PostGrid can do it if you hold an account and keys. Mailsnail's edge is that there is nothing to install and no keys to provision, flat public pricing, certified mail as a first-class path, and being open-source and provider-agnostic.

Does the agent need my credit card on file?

Not by default. You can pay for a single letter by card, or fund a prepaid balance that mail draws against. Both are one-time payments through Stripe that do not save your card. Auto-reload, which does save it, is opt-in and you can turn it off any time. Both are at our cost: one card payment carries Stripe's whole processing fee, so a one-page letter is $1.51 by card and $1.21 from a balance. We never see your card number. If a piece fails to mail, the charge is refunded.

Do I have to install anything?

No. The managed server is remote: you add a URL and sign in from your MCP client. The npm package exists for self-hosters who want to run it against their own Click2Mail or Lob account.

Which agent runtimes can send mail with Mailsnail?

Anything that speaks MCP — Claude Code, Claude Desktop, Cursor, Codex CLI, and the OpenAI Agents SDK. One server works from every runtime.

Can I use my own mail provider?

Yes. The managed server is the default, but you can self-host Mailsnail against your own Click2Mail or Lob credentials if you already have them.

Connect Mailsnail to your agent

Nothing to install — it's a hosted server you sign into. In Claude Code:

bash
claude mcp add -t http mailsnail https://api.mailsnail.dev/mcp

Then run /mcp and choose Authenticate. Clients that take a JSON config use the url form:

mcp.json
{
  "mcpServers": {
    "mailsnail": {
      "url": "https://api.mailsnail.dev/mcp"
    }
  }
}

Per-client steps, and the self-hosted path, are at /setup.