For agents & developers

Send a physical letter via API or MCP

Short answer

Postbot turns one JSON call into a real paper letter delivered in the Czech Republic by Česká pošta. Connect your agent to the hosted MCP server at https://postbot.cz/mcp or POST to the REST API — PDF, markdown, or plain text in; printed, enveloped, and mailed out. From50 CZK (≈ €2), and the first letter needs no account.

Connect your agent (MCP)

Postbot is a remote MCP server over Streamable HTTP. initialize andtools/list work without a token, so any MCP client can discover the tools before deciding to authenticate.

Claude Code

claude mcp add --transport http postbot https://postbot.cz/mcp

Claude Desktop

Settings → Connectors → Add custom connector
URL: https://postbot.cz/mcp

Cursor

Settings → MCP → Add new MCP server
URL: https://postbot.cz/mcp (Streamable HTTP)

ChatGPT

Settings → Connectors → Advanced → Developer mode
Add connector: https://postbot.cz/mcp
# needs a plan with developer mode; may be admin-gated in workspaces

The tools

ToolWhat it doesAuth
send_letter_czPDF / markdown / plain text + Czech address → printed, mailed letter. Ordinary or registered (with tracking).pay link per letter, or OAuth / API key with credit
get_letter_statusTrack a sent letter by its Česká pošta order code.none

How payment works — no spending without your setup

A valid unauthenticated send doesn't fail dead: it returns402 with rails — a ready Stripe pay link for that exact letter. The agent hands the link to its human; once paid, the letter mails automatically. For repeat sends, top up prepaid CZK credit with an API key or authorize an interactive MCP client via OAuth 2.1.

you: send a registered letter to Jan Novák, Dlouhá 5, Praha
agent → send_letter_cz({...})
postbot → 402: rails.oneoff.payUrl (110 CZK)
agent: “Letter's ready — pay here: …”
you: [click, pay by card]
postbot → ✉ dispatched · tracking RR1234567CZ

REST API — no MCP client needed

Quote and pay for a single letter without an account:

curl -X POST https://postbot.cz/api/oneoff \
  -H "content-type: application/json" \
  -d '{
    "to": {
      "name": "Jan Novák",
      "street": "Dlouhá",
      "houseNumber": "5",
      "zip": "110 00",
      "city": "Praha"
    },
    "document": { "markdown": "# Notice\n\nDear Mr. Novák, ..." },
    "service": "obycejne"
  }'

# → { "payUrl": "https://checkout.stripe.com/...", ... }
# Open payUrl, pay by card — the letter mails automatically.

Preview first — the exact PDF and a firm price, no side effects:

curl -X POST https://postbot.cz/api/preview \
  -H "content-type: application/json" \
  -d '{
    "to": {
      "name": "Jan Novák",
      "street": "Dlouhá",
      "houseNumber": "5",
      "zip": "110 00",
      "city": "Praha"
    },
    "document": { "text": "Dear Mr. Novák, ..." },
    "service": "obycejne"
  }'

# → { "pdfBase64": "...", "sheets": 1, "payCzk": 50 }
# The exact PDF that will be printed + a firm price. No side effects.

Funded sends: POST /api/send with Authorization: Bearer pb_…(prepaid credit). Registered letters ("service": "doporucene") require afrom sender address.

Pricing

ServicePriceNotes
Ordinary letterfrom 50 CZK (≈ €2)up to 50 g, one-off card payment
Registered (doporučené)from 110 CZK (≈ €4.50)Česká pošta tracking number (RR…CZ)

The firm price is computed from the rendered PDF (sheet count) before any payment — what the preview shows is what you pay.

Coverage and formats

Machine-readable docs

FAQ

Can an AI agent send a real paper letter?

Yes. Postbot is a hosted MCP server (https://postbot.cz/mcp, Streamable HTTP): the agent calls the send_letter_cz tool with an address and the letter as PDF, markdown, or plain text. Postbot prints it, envelopes it, and Česká pošta (the Czech national post) delivers it — ordinary or registered.

Does it deliver outside the Czech Republic?

No — delivery is Czech Republic only. The agent, the sender, and the person paying can be anywhere in the world; payment is by card (Stripe).

How does an agent pay for a letter?

Two rails. One-off: a valid unauthenticated send returns HTTP 402 with rails.oneoff.payUrl — a ready Stripe pay link for that exact letter (from 50 CZK); the agent hands it to its human and the letter mails once paid. Repeat sends: prepaid CZK credit with an API key (or an OAuth token for interactive MCP clients) — each send debits the balance.

Can the agent spend money without approval?

No. Without a human's click on the pay link or explicitly prepaid credit, the agent can't spend anything. Every letter gets a firm price computed up front from the rendered PDF, before any payment.

How do I test without sending anything?

POST /api/preview renders the letter and returns the exact PDF plus the firm price with no side effects — no order, no charge. What you preview is byte-for-byte what gets printed.

Can it send registered letters with tracking?

Yes. Service "doporucene" (registered) returns a Česká pošta tracking number (RR…CZ) you can follow online. Registered letters require a sender address.