FOR AGENT BUILDERS
Physical mail for AI agents
PaperAgent lets an AI agent mail one real paper letter to a US address through USPS. The agent drafts the letter and shows the person a PDF preview and the exact total; the person approves it and pays on a payment link; we print it in New York and hand it to USPS. Connect over MCP or call the REST API — both run the same letter service.
Building your own client? The API and MCP reference has every tool, endpoint and permission.
Approve, then pay
Every letter goes through the same steps, and the person is in the two that matter: approving the letter and paying for it.
- 01
get_pricing, andvalidate_addressfor any address a person typed. Neither needs sign-in. - 02
create_draftwith the recipient and a plain-text or Markdown body. It holds the content and the price for 24 hours and mails nothing. - 03
preview_draft: show the person the PDF and the exact total. Change anything withupdate_draftand preview again. - 04Once the person approves, call
send_letterwith that total asconfirm_total_centsand anidempotency_keyyou generate once. It answers with a payment link for the person, and charges nothing itself. - 05The person pays on the Stripe page, and only then is the letter printed and mailed. Follow it with
get_letter_status.
Connect over MCP
The endpoint is https://paperagent.dev/mcp, over streamable HTTP. Sign-in is OAuth: the person enters their email and the six-digit code we send. get_pricing and validate_address answer without signing in; every other tool asks for sign-in the first time it is called, and needs letters:read or letters:write.
The eight tools
- get_pricing
- The published price list: each product on sale and its price, in US cents.
- No sign-in
- validate_address
- Checks a US street address and returns the normalized form the envelope is printed with, plus any corrections.
- No sign-in
- create_draft
- Creates a draft from the recipient and a plain-text or Markdown body, and returns its page count and total. Mails nothing.
- Sign-in · letters:write
- update_draft
- Changes the recipient, body or service of an unsent draft and prices it again.
- Sign-in · letters:write
- preview_draft
- Returns the PDF preview and the current total — the number send_letter needs as confirm_total_cents.
- Sign-in · letters:read
- send_letter
- Turns an approved draft into an unpaid order and returns a payment link for the person. Nothing prints until it is paid.
- Sign-in · letters:write
- get_letter_status
- Reports where one letter is, its mail date and its estimated delivery date.
- Sign-in · letters:read
- list_letters
- Lists the account’s letters, newest first, with status, mail date and total for each.
- Sign-in · letters:read
The input schemas come from tools/list. The tool reference lists each tool with its permission.
REST API and llms.txt
HTTP-only agents use the REST API at https://paperagent.dev/v1, described by openapi.json. It runs the same engine and payment state as MCP: draft, preview, approval, then an unpaid order with a payment link.
/llms.txt is the whole integration in one file — the workflow, current prices, limits and every REST operation — and the docs are the reference.
Limits
- US addresses only, for the recipient and for the return address.
- One recipient per letter. There is no bulk or mail-merge endpoint.
- Up to 6 printed pages, black and white, at the same price: up to 3 print on one side, 4 to 6 on both. A longer body is refused, not billed.
- Not email, fax or text. The only output is a paper letter in an envelope.
- Irreversible once printed. There is no tool that calls a letter back.
Prices
Standard
$7.00Certified Mail
$19.00
Both include email updates. Certified Mail adds USPS tracking and the delivery date and time from the USPS delivery scan; we do not relay a signature or a Return Receipt.
Each price is for one letter of up to 6 printed pages, black and white. Sales tax may apply, and the exact total is shown before you approve.
Read them live from get_pricing or GET /v1/pricing, or on the pricing page.
Already in Claude and ChatGPT
People can use PaperAgent without any code from Claude’s connector directory and ChatGPT’s plugin directory. The guided setup pages show each screen:
Frequently asked questions
What is the PaperAgent MCP endpoint?
https://paperagent.dev/mcp, over streamable HTTP. get_pricing and validate_address work without signing in; the other six tools use OAuth sign-in with an emailed six-digit code.
Can an agent pay for a letter by itself?
No. send_letter returns a payment link for the person, after they have seen the PDF preview and the exact total. Nothing is printed or mailed until that payment completes.
Is there a REST API as well as MCP?
Yes. The REST API at https://paperagent.dev/v1 is described by https://paperagent.dev/openapi.json and runs the same engine and payment state as MCP. https://paperagent.dev/llms.txt has the whole workflow.
Can it send bulk mail or international letters?
No. Each letter goes to one US recipient, up to 6 printed pages in black and white. There is no bulk or mail-merge endpoint and no international mail.
How much does a letter cost through the API?
The current prices are $7.00 for a Standard letter and $19.00 for a Certified Mail letter, plus sales tax where it applies. There is no per-page charge and no volume discount; get_pricing and GET /v1/pricing return the live list. Certified Mail adds USPS tracking and the delivery date and time from the USPS delivery scan; we do not relay a signature or a Return Receipt.
Which assistants can use it already?
Claude and ChatGPT list PaperAgent in their directories, and Muse.ai connects over REST. Any MCP client that supports streamable HTTP and OAuth can use the endpoint directly.