MCP server for physical mail: send real letters from your AI assistant
With FrankKi MCP you tell your AI assistant which letter goes to whom. FrankKi puts it on your letterhead, prints it, puts it in an envelope and hands it to the post once you approve it. MCP is the open standard that lets Claude, ChatGPT and other assistants talk to FrankKi. You do not need to write any code.
What your business does with it
You tell your assistant in plain words what should go out. FrankKi and the post do the rest.
Letterhead and logo
Upload your logo as SVG, PNG or JPG, in the dashboard under Letterhead & templates or through your assistant. Your assistant can also take logo and colours from your website. If your letterhead only exists as a Word or PDF file, save it as a PNG. FrankKi does not print a PDF file as a letterhead. Before the first send you check everything on a sample letter.
One letter to many recipients
Give your assistant the recipient list, for example as a CSV file in the chat. Or import it in the dashboard under Clients first, which is where every recipient list lives, tenants and customers too. Each letter in a batch is its own letter. Your assistant fills the placeholders of your template per recipient, such as name, flat or amount. If each recipient has their own PDF, say their service charge statement, it attaches it to exactly that letter. A batch holds up to 100 letters, and you approve it with one decision. 180 letters make two batches.
Example for Claude
Send every tenant on this list the notice about the water shut-off on 14 November. Fill in each tenant's name and flat, and show me the preview and total price before I approve.
You approve
No letter leaves without approval, unless you switch on autopilot yourself, with fixed limits. You can always approve in the FrankKi dashboard under Approvals. If you allowed it when connecting, you can also approve right in the chat. Invite colleagues with the approver role and they can approve too. Anything nobody approves within 72 hours expires and costs nothing.
Prepaid balance, no subscription
You top up through Stripe, each send takes its price from the balance, and without balance your assistant cannot spend anything.
Tracking
Ask for the status of a letter and you get its state and expected delivery, plus tracking number and proof of posting for registered mail.
Records for your bookkeeping
Every top-up comes with a receipt to download, and you can export your letters as GoBD CSV, DATEV export or PDF bundle. FrankKi is a small business under § 19 of the German VAT Act (UStG) and charges no VAT. The price shown is the final price.
How to connect your AI assistant
Claude, Claude Desktop and Claude Code sign in over OAuth. You sign in to FrankKi in a browser window, create your account there if you need one, and allow access. You only need a token for scripts and servers.
Claude on the web or in the desktop app
Anthropic's guide (opens in a new tab)In Claude, open Customize > Connectors.
Click + Add, then Add custom connector.
Name it FrankKi, paste this URL and click Continue.
https://mcp.frankki.appKeep the detected settings and click Continue. Under Authentication choose Sign in now, then click Add.
In the window that opens, sign in with your FrankKi account or create one. New accounts get a code by email, which you enter. If you have not signed the data processing agreement yet, you sign it here. Then allow access.
Claude Team or Enterprise: an owner adds it once under Organization settings > Connectors (Add, then Custom > Web). Everyone else clicks Connect on it under Customize > Connectors.
Claude Code
One command in your terminal:
claude mcp add --transport http frankki https://mcp.frankki.appThen run /mcp in Claude Code, pick frankki and sign in in your browser.
ChatGPT
In ChatGPT you add FrankKi as a custom MCP server with the URL https://mcp.frankki.app and OAuth sign-in. ChatGPT does not offer this on every plan, and OpenAI moved the menu more than once in 2026, so the current steps are in OpenAI's guide. Once FrankKi is connected, send the setup prompt below in a new chat.
Then: the setup prompt
This is a plain message to your assistant. You do not need to understand it, just send it in a new chat. Your assistant then sets up your sender details, letterhead and one to three templates, and asks you before it saves anything. It sends and pays for nothing without your approval.
Connect FrankKi at https://mcp.frankki.app so we can send letters by post. Ask me before you connect or grant permissions. Then run the FrankKi connection check mcp_health to see what my account still needs, and walk me through the setup step by step. Take our sender details and brand from our website and ask me once before you save them. Copy 1 to 3 templates that fit my business and show me one preview. For steps only I can do, such as a top-up, give me the link. Without my approval you send nothing and pay for nothing. Never switch on autopilot yourself.For developers and servers
For scripts, servers and clients without a sign-in window, create a token under /dashboard/tokens with exactly the rights you need. It is shown once. The transport is streamable HTTP.
Claude Code with a token
For runs without a browser.
claude mcp add --transport http frankki https://mcp.frankki.app \
--header "Authorization: Bearer ${FRANKKI_API_KEY}"Claude Desktop via config file
Only if you use claude_desktop_config.json instead of Connectors. mcp-remote opens your browser to sign in.
{
"mcpServers": {
"frankki": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.frankki.app"]
}
}
}Config file with a token
For clients that only start local servers, without a browser sign-in.
{
"mcpServers": {
"frankki": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://mcp.frankki.app",
"--header", "Authorization: Bearer ${FRANKKI_API_KEY}"
]
}
}
}Cursor
.cursor/mcp.json for one project, ~/.cursor/mcp.json for all of them.
{
"mcpServers": {
"frankki": {
"url": "https://mcp.frankki.app",
"headers": {
"Authorization": "Bearer ${FRANKKI_API_KEY}"
}
}
}
}Before you sign up
Your first letter, step by step
From creating the account to your first approved letter takes about 11 minutes. Without an AI assistant it is 2 minutes less. The times are rough estimates.
Create your accountabout 1 minute
Name, email and what describes you. Creating it costs nothing. Then you set your password with a link we email you, valid for 30 minutes. If you start in Claude, you create the account in the sign-in window and enter the code from the email.
Connect Claudeabout 2 minutes
The five clicks from the steps above. You can do this later, or not at all. Without an AI assistant you write your letters in the browser.
Sign the data processing agreementabout 2 minutes
The GDPR requires this agreement (AVV) because we process the addresses in your letters for you. You sign once by typing your name. If you connect Claude, the sign-in window asks for it. Otherwise you sign it during setup in the dashboard.
Enter your sender detailsabout 2 minutes
Name, address and the legal details for every letter. You enter them yourself in the dashboard, or your AI assistant takes them from your website and asks you before saving. Your own letterhead is optional. Until then FrankKi prints on the standard letterhead.
Top up your balanceabout 1 minute
From EUR 10, on a Stripe page. The balance does not expire.
Check and approve your first letterabout 3 minutes
Your assistant creates the letter, or you write it yourself in the browser. You see the preview and the price and approve it. Only then is it printed and charged.
What does trying it cost?
Nothing, as long as nothing is sent. Drafts, previews, price quotes and a dryRun rehearsal are free. The rehearsal needs your sender details and the signed data processing agreement (AVV). The GDPR requires that agreement because we process the addresses in your letters. Money only moves when you approve a letter.
How much do I have to top up?
At least EUR 10 and at most EUR 500 per top-up, paid on a Stripe page. The balance does not expire, and there is no subscription. EUR 10 covers 5 standard letters on the first price rung. FrankKi is a small business under § 19 of the German VAT Act (UStG) and charges no VAT. The price shown is the final price.
Do I need a company?
No. Freelancers, sole traders and small businesses are welcome. Pick "Freelance or small business" when you sign up, and we ask only for what we need.
Create a freelancer accountI already have a PDF. Can FrankKi send it?
As an attachment, yes. As the letter itself, no. FrankKi lays out the letter from your text or invoice line items in DIN 5008 on your letterhead. Your finished PDF, say an invoice or a service charge statement from your software, goes behind a short cover letter. The price depends on all pages together, cover letter and attachment, up to 30 pages per letter. There is no fixed price per page. You see the amount for your letter in the preview before you approve. In the browser you drop the PDF into the attachments step. Without a cover letter it works like this: FrankKi rebuilds the invoice from your line items and, once it is sent, also gives it to you as a ZUGFeRD PDF and XRechnung.
Example for Claude
Send this invoice PDF as an attachment with a short cover letter to Müller GmbH, Hauptstraße 1, 10115 Berlin. Show me the preview and the price before I approve.
Does it work without an AI assistant?
Yes. In the dashboard you write letters yourself in the browser. For an invoice, payment reminder or dunning letter you enter line items and amounts, FrankKi adds up the totals and puts everything on your letterhead. You attach PDFs, see the preview and the price, then approve. To send to many recipients at once, use your assistant.
Create your account and start
Signup is open and needs no manual approval. A name and an email address are enough, you do not need a company. We email you a link to set your password. Then you connect your assistant if you want, sign the data processing agreement, enter your sender details and top up.
Free to create, no setup fee, no subscription. Top up from EUR 10 on a hosted Stripe Checkout page, and the balance does not expire. Only real send orders debit it.
How much does a letter cost
If you send a few letters a month, a German standard letter in black and white costs EUR 1.99. That applies under 20 letters a month. The more you send in a month, the less each letter costs: EUR 1.89 from 20 letters, EUR 1.79 from 100 letters, EUR 1.69 from 500 letters, EUR 1.59 from 1,000 letters. The rung you reach applies to every letter that month, including the first. Colour, registered mail and other countries cost more. Your assistant tells you the exact price before every send (shipping_quote). You pay from a prepaid wallet that you top up on a hosted Stripe Checkout page, and order_send debits that wallet. MCP never collects card data in the agent interaction. There is no subscription. FrankKi is a small business under § 19 of the German VAT Act (UStG) and charges no VAT. The price shown is the final price.
| Product | Price per letter | Detail |
|---|---|---|
| Standard letter, black and white | EUR 1.99 | Under 20 letters a month, per letter |
| Volume tier | EUR 1.89 | From 20 letters a month, every letter that month |
| Volume tier | EUR 1.79 | From 100 letters a month, every letter that month |
| Volume tier | EUR 1.69 | From 500 letters a month, every letter that month |
| Volume tier | EUR 1.59 | From 1,000 letters a month, every letter that month |
| Standard letter in colour | EUR 2.09 | Under 20 letters a month, down to EUR 1.69 from 1,000 letters |
| Registered (Einwurf) | EUR 5.99 | Proof of posting, no signature. Under 20 letters a month, down to EUR 5.59 from 1,000 letters |
| Registered (Übergabe) | EUR 6.39 | Handed over against signature. Under 20 letters a month, down to EUR 5.99 from 1,000 letters |
Inside Germany we estimate 2 to 4 working days from the handover to our print partner, or 3 to 5 if it gets the letter after noon.
Fixed prices across DACH (DE, AT, CH). Worldwide via local partners and DHL, quoted per destination.
Who is FrankKi MCP for
FrankKi MCP is for anyone who wants an AI assistant to send real letters, from sole traders to law firms. Connect once at https://mcp.frankki.app and turn a draft into a posted letter in the same conversation, delivered worldwide.
Law firms
Draft client and counterparty letters in your assistant and send them as registered mail with proof of posting or signature on delivery where the destination supports that service, with tracking according to the selected service level.
Create a firm accountTax advisors
Send document requests, deadline reminders and fee invoices to your clients, in batches too. You pick the letterhead per letter or per template, and the salutation is part of the letter text, so your clients get the formal tone they expect. Every letter waits for your approval.
Create a firm accountFreelancers and small businesses
Send invoices and reminders to clients who want paper instead of email. You need no company and no subscription, only some balance.
Create a freelancer accountAgencies
Run mailings and per client outreach from one connection, send single letters or batches with order_send_batch, and keep every dispatch tracked and auditable.
Developers
Wire FrankKi MCP into agents and pipelines over plain streamable HTTP. Draft, quote, send and track letters with 68 model-visible tools and a single scoped Bearer API key.
Letter design
Give your agent existing stationery or a logo. It rebuilds them as a FrankKi letter design, creates a real sample letter for review, and saves the result only after you have checked it.
How secure is the connection
Chat assistants sign in to FrankKi MCP over OAuth 2.1 with PKCE, and scripts use scoped Bearer API keys. Each send runs through the same fulfillment safety net as the FrankKi app. MCP partners fund a prepaid wallet through a hosted Stripe Checkout page and sends debit that wallet. Read tools never change state, action tools are explicit, and every physical dispatch waits for a human decision unless that human switched on autopilot. For regulated mail there is Einschreiben (registered mail) with an Einlieferungsbeleg (proof of posting) where supported, separated Mandanten (client matters) and approval flows.
Authenticated calls
Every request carries an OAuth access token from the sign-in window, or a scoped Bearer API key for scripts and servers.
Read and action are separate
Read tools return state and never send mail. Action tools such as order_send are explicit, so an agent cannot post a letter by accident.
Approval queue
Every physical dispatch enters the approval queue, and a human decides before the letter leaves, unless that human switched on autopilot in the dashboard. Autopilot covers standard letters from released templates to known recipients, within daily and monthly limits, and each letter waits 10 minutes so it can still be stopped. Every decision is logged.
Proven fulfillment
Sends run through the same fulfillment pipeline that already powers the FrankKi app. The partner wallet is funded separately through hosted Stripe Checkout and debited on send.
What is FrankKi MCP
FrankKi MCP is a hosted MCP server for physical mail. It connects Claude, ChatGPT, Cursor and your own agents to FrankKi's letter service through 68 model-visible tools. Your assistant drafts a letter formatted to the German DIN 5008 standard, tells you the price, sends it worldwide once you approve it, and tracks delivery.
We built FrankKi MCP so an agent can finish the job. It does not stop at the draft, it puts the letter in the post.
Every send goes through the same fulfillment safety net as our app. MCP partners fund a prepaid wallet through hosted Stripe Checkout, and the send debits that wallet. The MCP layer is a clean interface on top of a proven pipeline.
Frequently asked questions
How do I send a physical letter via MCP
Is FrankKi MCP live yet
What exactly is FrankKi MCP
How do I connect FrankKi MCP
Do I need an API token
Which AI assistants are supported
How much does a letter cost
Which tools does FrankKi MCP offer
Does drafting a letter cost anything
Why does Claude ask before every tool
How secure is the connection
Are the letters legally valid
Which countries can my agent send letters to
Can I use FrankKi MCP for regulated client mail
What makes FrankKi MCP different from other letter APIs
How dispatch works with FrankKi MCP
Automated
Every letter runs automatically from the AI assistant to postal handover, with no manual printing or stuffing envelopes on your side.
An operator monitors every send today, on top of the automated pipeline. Once enough real dispatches are measured, we will add a measured delivery rate here.
Which tools does the server have
FrankKi MCP exposes 68 model-visible tools (40 read-only, 28 action). Read tools such as shipping_quote, order_status and letter_list never cost money or send mail. Action tools such as letter_create_draft (free) and order_send create drafts, send letters and manage approvals. The split derives from each tool's mutating flag.
Show all 68 tools (for developers)
| Tool | Access | Purpose |
|---|---|---|
| Profile and wallet | ||
profile_get | Read | Reads your partner profile and account data. |
wallet_balance | Read | Shows your current wallet balance and daily cap. |
wallet_topup_link | Read | Returns a Stripe link to top up your wallet. |
sender_profile_list | Read | Lists your saved sender profiles. |
sender_profile_get | Read | Reads a single sender profile in detail. |
sender_profile_validate | Read | Checks a sender profile for mandatory details and format. |
| Clients | ||
mandant_get | Read | Reads a single client by its ID. |
mandant_list | Read | Lists your clients with filters and pagination. |
mandant_search | Read | Searches clients by number, name, tag or case handler. |
| Templates | ||
template_list | Read | Lists your letter templates with category and version. |
template_get | Read | Reads a template including its merge fields. |
template_apply_with_merge_fields | Read | Fills a template placeholders and returns subject and content. |
template_diff_check | Read | Compares a letter against its template and shows the differences. |
template_save | Action | Saves a template as a draft version. |
template_release | Action | Releases a draft version so it becomes sendable. |
template_archive | Action | Archives a template without deleting it. |
template_draft_discard | Action | Discards a draft version that has not been released yet. |
| Letters | ||
letter_get | Read | Reads a single letter with status, content and PDF link. |
letter_list | Read | Lists your letters with filter and paging options. |
letter_search | Read | Full-text searches your letters across subject, recipient and content. |
letter_create_draft | Action | Creates a letter draft. Free, without sending. |
attachment_upload_pdf | Action | Attaches a PDF to a letter draft. |
attachment_upload_image | Action | Attaches an image to a letter draft and scales it to A4. |
shipping_quote | Read | Calculates the price of a letter by destination country and mail type. |
pricing_tiers | Read | Returns the volume tiers: from which monthly quantity which per-letter price applies. |
order_status | Read | Reads the dispatch and delivery status of an order. |
order_einlieferungsbeleg | Read | Returns the proof of posting for a sent order. |
| Addresses and export | ||
address_validate | Read | Validates an address with the mail provider without storing it. |
address_upsert | Action | Creates or updates an address in the address book. |
address_list | Read | Lists the addresses in your partner address book. |
address_search_company | Read | Searches companies and authorities in the directory with their mailing address. |
archive_export | Read | Starts an archive export for accounting, DATEV or DMS. |
archive_export_status | Read | Queries the status of an archive export and returns the download link. |
| Sending and actions | ||
order_send | Action | Sends a letter by post and charges your wallet. |
order_send_batch | Action | Sends several letters in one batch with a single approval. |
order_cancel | Action | Cancels an order as long as it has not been printed yet. |
order_fix_resubmit | Action | Corrects the recipient address of a rejected letter and resubmits it. |
letter_schedule | Action | Schedules the dispatch of a draft for a later time. |
schedule_list | Read | Lists scheduled sends with date, status and reserved amount. |
schedule_cancel | Action | Cancels a scheduled send and releases the reserved amount. |
| Approvals | ||
approval_list | Read | Lists open letters in the approval queue. |
approval_submit | Action | Submits a letter for human approval. |
approval_decide | Action | Approves a letter after explicit consent, or rejects it. |
| Presets and uploads | ||
preset_save | Action | Saves a sending preset for recurring letters. |
signature_upload | Action | Uploads a signature as PNG and stores it. |
signature_list | Read | Lists your saved signatures with a preview link. |
letterhead_upload | Action | Uploads a letterhead and stores it. |
letterhead_list | Read | Lists your saved letterheads with a preview link. |
| Letter design | ||
letter_design_save | Action | Saves a reusable letter design and checks the delivery clear zones. |
letter_design_list | Read | Lists your saved letter designs. |
letter_design_preview | Read | Renders a preview PDF of a letter design. |
letter_design_delete | Action | Archives a letter design so it is no longer used. |
| Operations | ||
mcp_health | Read | Checks your token and the processing chain with an echo probe. |
| More tools | ||
sender_profile_upsert | Action | Creates or edits a sender profile: legal form, mandatory details, optionally bank details, disclaimer and default letterhead. |
analytics_summary | Read | Returns the partner account's aggregated metrics: letters per month, cost per mandant for rebilling, transit times to delivery, failure rates, and spend against configured limits. |
letter_upload_pdf | Action | Uploads a finished letter PDF that is sent exactly as it is. |
setup_fix_link | Read | Hands one item over to the human in a browser: top up the balance, sign the data processing agreement or complete the sender profile. |
template_clone_from_library | Action | template_clone_from_library copies one to five FrankKi standard templates into the account's own templates in one call, such as invoice, dunning letter, quote, cancellation or letters to authorities, and shows the first as an image. |
letter_design_list_presets | Read | Returns the owner-approved native-v2 letterheads as safe starting points for cancellations, invoices, payment reminders, quotes, contracts and letters to public authorities. |
brand_kit_get | Read | Reads the saved brand values for the user-facing result letterhead and brand. |
brand_kit_save | Action | Saves logo references, colours and font for the user-facing result letterhead and brand. |
brand_import_from_website | Action | Reads a public company website and proposes a letterhead design from it: brand colours, a mapped house typeface, logo candidates and company details from the imprint. |
brand_setup_from_website | Action | Company website to sender, brand and letterhead in two calls. |
letter_preview | Read | Renders a letter, draft or form as images, composed like a real send, and returns inline PNGs, PDF link, page count, cost and designRender with the actual documentMode, rendered letter chrome and bodyStartMm. |
template_preview | Read | Renders a STORED template with sample values and returns inline PNGs, PDF link and designRender. |
document_create | Action | Turns a structured billing payload into a finished document and stores it as a letter draft: FrankKi re-computes line items, net, VAT rates and gross, checks the mandatory details under § 14 UStG, optionally draws the document number from the account's sequence, and typesets everything in the DIN 5008 layout with the sender's letter design. |
document_list | Read | Lists the account's created documents (invoice, payment reminder, dunning letter, credit note), newest first, filtered by type, client, recipient or referenced document. |
document_get | Read | Returns one document with its full payload (line items, totals, VAT rates, reference) plus the letterId and orderId of the letter it lives in. |
Connect your agent
Physical-mail setup and provider guides
Connect your agent to FrankKi, prepare a letter and review it before sending. These guides also cover delivery methods, spending limits and provider choices.
Connect FrankKi MCP today
Add https://mcp.frankki.app as a connector in Claude and sign in. You create your account on the way if you do not have one. Top up from EUR 10, and your assistant sends real letters for EUR 1.99 each, down to EUR 1.59 on volume, with no subscription. You see the exact price before every send.
Create your account and start
Signup is open and needs no manual approval. A name and an email address are enough, you do not need a company. We email you a link to set your password. Then you connect your assistant if you want, sign the data processing agreement, enter your sender details and top up.
Free to create, no setup fee, no subscription. Top up from EUR 10 on a hosted Stripe Checkout page, and the balance does not expire. Only real send orders debit it.