How to send physical mail from an AI agent

Install the Mailsnail MCP server and have any AI agent mail a real USPS letter, postcard, or certified mail — no signup, pay-per-piece.

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, postcard, or certified piece with a single tool call.

No account. No API keys. The agent pays per piece.

The 30-second version

claude mcp add mailsnail -- npx -y mailsnail

That's the whole install. Ask your agent to mail a postcard, and it will — routing through seven tools it now has:

  • verify_address — check an address is deliverable (USPS CASS) 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
  • send_postcard — mail a 4×6 postcard
  • get_letter / list_letters — check status and history
  • cancel_letter — pull a piece back before it hits production

What it costs

Flat and public, so an agent can reason about the price before it commits:

  • First-class letter — $1.50
  • Certified mail — $9.00
  • Postcard — $1.00

preview_letter returns that number 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 "no signup" 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. Mailsnail doesn't. Payment happens per piece, at the moment of the call, over the Machine Payments Protocol (HTTP 402) using a Stripe Shared Payment Token — the agent spends inside the wallet you authorized, and nowhere else. If a piece fails to mail, the charge is refunded automatically. (USDC/x402 settlement is coming, for agents that would rather pay in stablecoin.)

The upshot is simple: the gap between "install" 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. Installclaude mcp add mailsnail -- npx -y mailsnail
  2. Ask — tell your agent to mail a postcard to a specific address
  3. It verifiesverify_address confirms the address is deliverable
  4. It previewspreview_letter returns the rendered piece and the exact price, still $0 charged
  5. It sends — on your go-ahead, send_letter / send_postcard mails it and returns a tracking id
  6. You checkget_letter shows status; cancel_letter works until it's in production

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 no signup, 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?

No standing account. Payment is per piece via Stripe over HTTP 402, inside the wallet you authorized, and auto-refunded if the piece fails to mail.

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. Managed mode is the default with no signup, but you can point Mailsnail at your own Click2Mail or Lob credentials if you already have them.

Wire Mailsnail into your agent

Drop this into your client's MCP config (or use /setup for one-line installs).

mcp.json
{
  "mcpServers": {
    "mailsnail": {
      "command": "npx",
      "args": [
        "-y",
        "mailsnail"
      ],
      "env": {
        "MAIL_PROVIDER": "managed",
        "MAIL_API_BASE_URL": "https://api.mailsnail.dev"
      }
    }
  }
}