Brief aus dem KI-Agenten verschicken, ohne Konto und in einer Minute
FrankKi hat eine öffentliche MCP-Bahn ohne Anmeldung: sieben Werkzeuge, drei Aufrufe, ein Stripe-Link. Der komplette Durchlauf mit echten Antworten aus der Produktion, den Preisen und den Regeln, die die Bahn hart durchsetzt.
Ein KI-Agent kann über FrankKi einen echten Papierbrief verschicken, ohne Konto, ohne API-Key und ohne Installation. Die öffentliche MCP-Bahn liegt auf https://mcp.frankki.app/api/mcp/v1/public, sie kennt sieben Werkzeuge, und vom leeren Blatt bis zum bezahlbaren Kassenlink sind es drei Aufrufe. Bezahlt wird einzeln pro Brief, über einen Stripe-Link, den der Agent im Gespräch weiterreicht.
Für diesen Artikel hab ich den Ablauf selbst durchgespielt, mit echten Aufrufen gegen die Produktion. Einseitiger Standardbrief von Berlin nach München: 3,49 Euro, Kassenlink in der Hand, keine Minute Arbeit. Und an keiner Stelle wurde nach einer E-Mail-Adresse, einem Passwort oder einem Token gefragt.
Sieben Werkzeuge, kein Login
Die Bahn hat eine eigene Werkzeugliste, die von Hand aufgezählt ist. Das klingt nach Kleinkram, ist aber der Grund, warum hier nie versehentlich ein Geschäftskunden-Werkzeug auftaucht: Was nicht in der Liste steht, existiert öffentlich nicht. Alle sieben tragen securitySchemes: [{ "type": "noauth" }].
| Werkzeug | Was es tut | Für den kurzen Weg nötig? |
|---|---|---|
letter_quote | Zählt die Versandarten für ein Zielland auf, mit Preis | optional |
address_check | Prüft eine Empfängeradresse | optional |
letter_compose | Baut den Entwurf aus Absender, Empfänger, Betreff und Text | ja |
letter_preview | Liefert Seitenbilder des fertigen Briefs | ja |
checkout_link | Münzt den Stripe-Kassenlink für genau diesen Entwurf | ja |
order_track | Zeigt den Versandstatus zum privaten Tracking-Token | danach |
upgrade_info | Erklärt, was ein Konto nach dem Gastkauf zusätzlich kann | nein |
Der Minimalweg besteht aus drei Aufrufen
Absender, Empfänger, Text. Mehr braucht der erste Aufruf nicht, alles andere hat Voreinstellungen: schwarz-weiß, Standardbrief, deutsche Sprache.
- letter_compose setzt den Brief und gibt einen
draftTokenzurück. Der Token ist der Faden, an dem die nächsten beiden Aufrufe hängen, und er lebt 24 Stunden. - letter_preview rendert die Seiten als Bilder. Ohne diesen Schritt gibt es keinen Kassenlink, dazu unten mehr.
- checkout_link liefert eine Stripe-Checkout-URL und den Betrag in Cent. Der Agent schickt die URL in den Chat, der Mensch zahlt mit Karte, Apple Pay, Google Pay oder Link.
Ein Detail, das dich sonst zehn Minuten kostet: Der Endpunkt spricht Streamable HTTP und besteht auf beiden Accept-Typen. Fehlt text/event-stream, antwortet er mit 406 und der Meldung "Client must accept both application/json and text/event-stream". Das ist kein FrankKi-Eigenbau, sondern die Transportregel des MCP-SDK.
Der echte Durchlauf, Aufruf für Aufruf
Alles unten sind gekürzte Antworten aus dem Lauf vom 2026-08-21. Tokens sind eingekürzt, sonst ist nichts verändert.
Erst der Entwurf:
curl -X POST https://mcp.frankki.app/api/mcp/v1/public \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
"name":"letter_compose",
"arguments":{
"subject":"Kurze Nachricht",
"content":"Hallo, ich melde mich kurz und wuensche dir eine gute Woche. Viele Gruesse",
"sender":{"name":"Pascal Lindenau","street":"Musterstrasse","houseNumber":"1","zip":"10115","city":"Berlin","country":"DE"},
"recipient":{"name":"Maria Beispiel","street":"Beispielweg","houseNumber":"2","zip":"80331","city":"Muenchen","country":"DE"}
}}}'
Die Antwort trägt schon alles, was der Agent weitererzählen kann:
{"status":"success","code":"OK","data":{
"draftToken":"k3nyw8jAeVNBKto4...",
"trackingToken":"JM36mwCfmnE3xTx7...",
"version":1,
"deliveryType":"standard",
"color":false,
"method":{"code":"standard","nameDe":"Standardbrief","deliveryTimeDe":"1 bis 2 Werktage","tracked":false,"proofOfDelivery":false},
"previewReady":false,
"reviewPending":false}}
Dann die Vorschau, mit dem draftToken aus Schritt eins. Sie liefert pro Seite eine signierte Bild-URL, die eine halbe Stunde gültig ist:
"pages":{"tokenExpiresAt":"2026-08-21T10:05:08.073Z",
"items":[{"page":1,"url":"https://mcp.frankki.app/api/mcp/v1/public/page?token=eyJhbGciOiJIUzI1NiJ9..."}]}
Und die Kasse:
{"status":"success","code":"OK","data":{
"checkoutUrl":"https://checkout.stripe.com/c/pay/cs_live_a120IQWj2PfN...",
"sessionId":"cs_live_a120IQWj2PfN...",
"amountCents":349,
"deliveryType":"standard",
"shipping":"Versand als Standardbrief, schwarz-weiss gedruckt."}}
Das war der ganze Vorgang. Drei Aufrufe, 349 Cent, ein Link zum Weitergeben.
Was ein Gastbrief kostet
Der Preis wird nie im Agenten gerechnet. Er kommt aus derselben Versandpolitik, die auch die iPhone-App bedient, und letter_quote gibt ihn vor jedem Versand frisch heraus. Ein Agent, der einen Preis fest einbaut, wird irgendwann falsch liegen, deshalb ist der Aufruf günstiger als die Annahme.
| Versandart | Preis | Sendungsverfolgung | Zustellnachweis |
|---|---|---|---|
| Standardbrief | 3,49 Euro | nein | nein |
| Einschreiben Einwurf | 7,59 Euro | ja | ja |
| Einschreiben Übergabe | 8,19 Euro | ja | ja |
Laufzeit für den Standardbrief nach Deutschland: ungefähr 1 bis 3 Werktage. Wer wissen will, wie sich das zum Gang zur Post und zu anderen Anbietern verhält, findet die Rechnung in Was kostet ein Brief 2026.
Sechs Regeln, die diese Bahn hart durchsetzt
Eine anonyme Bahn, die echtes Papier druckt und Geld einzieht, braucht Kanten. Die hier sind im Code verdrahtet, nicht in einer Doku versprochen.
- Keine Vorschau, keine Kasse.
checkout_linkruft die Vorschau selbst noch einmal auf und verweigert mitPREVIEW_REQUIRED, wenn kein Briefbild da ist. Niemand soll für ein Blatt zahlen, das er nie gesehen hat. - Erst bezahlt, dann gedruckt. Der einzige Auslöser der Einlieferung ist Stripes
checkout.session.completed. Vor dem Zahlungseingang sieht der Druckdienstleister nichts. - Absender und Empfänger weltweit. Gedruckt und eingeliefert wird immer in Deutschland; das Absenderland steht nur als Rücksendeangabe auf dem Brief.
- Der Entwurf lebt 24 Stunden. Danach ist der
draftTokenwertlos und ein Aufräum-Cron holt die Zeile ab. - Jeder Entwurf läuft durch eine Inhaltsprüfung. Amts-, Bank- und Inkasso-Imitate werden abgewiesen, Grenzfälle landen in menschlicher Sichtung, und der Kassenlink kommt erst nach der Freigabe. Ein wütender, völlig legitimer Kündigungsbrief darf dabei nicht anschlagen, und genau daran wurde die Liste geeicht.
- Kein Preis wird erfunden. Gibt es für ein Ziel keine bepreisbare Versandart, antwortet die Bahn mit einer Ablehnung statt mit einer Schätzung.
Das Konto entsteht an der Kasse, nicht davor
An der Stripe-Seite gibst du eine E-Mail-Adresse an, weil Stripe die für den Beleg braucht. Aus dieser Adresse wird nach dem Kauf ein Magic Link, der auf dasselbe Profil führt, das auch Apple Sign-In anlegen würde. Gleiche Adresse, gleiche Person, ein Profil. Wer nie klickt, hat trotzdem einen Brief verschickt und behält seinen privaten Tracking-Token für order_track.
Wo die öffentliche Bahn aufhört
Sie ist bewusst schmal. Kein Guthaben, keine Mandanten, keine Vorlagen, kein eigener Briefkopf, kein Archiv und keine Mengenstaffel. Ein Brief, ein Empfänger, eine Zahlung. Aber sobald du regelmäßig verschickst, zahlst du damit drauf: Der Gastpreis liegt bei 3,49 Euro, im Partnertarif kostet der deutsche Standardbrief zwischen 2,49 und 1,49 Euro, je nach Monatsmenge, und die Staffel greift schon ab 20 Briefen.
Für den Fall gibt es die zweite Bahn mit Anmeldung, Freigabestrecke und Wallet. Die Werkzeugliste dort ist ein Vielfaches länger, die Einstiegspunkte sind die Entwicklerdokumentation, die B2B-Preisseite und die MCP-Übersicht. Und wenn du erst einmal sehen willst, wer sonst noch Briefe aus dem Agenten verschickt: MCP Server für Briefe im Vergleich stellt acht Anbieter mit Prüfdatum nebeneinander.
Direkte Quellen, auf denen dieser Beitrag aufbaut.
- FrankKi öffentliche MCP-Bahn Primary source
- FrankKi Entwicklerdokumentation Primary source
- FrankKi MCP-Übersicht Primary source
- MCP Spezifikation, Streamable HTTP Primary source
- Braucht ein KI-Agent ein FrankKi-Konto, um einen Brief zu verschicken?
- Nein. Die öffentliche MCP-Bahn auf https://mcp.frankki.app/api/mcp/v1/public läuft ohne Anmeldung und ohne API-Key; alle sieben Werkzeuge tragen noauth. Der Agent baut den Entwurf, holt die Vorschau und bekommt einen Stripe-Kassenlink zurück. Ein Konto entsteht erst nach dem Kauf, über einen Magic Link an die E-Mail-Adresse aus der Stripe-Kasse, und auch das ist freiwillig.
- Wie viele Aufrufe braucht ein Brief mindestens?
- Drei: letter_compose mit Absender, Empfänger, Betreff und Text, dann letter_preview mit dem zurückgegebenen draftToken, dann checkout_link. letter_quote und address_check sind sinnvoll, aber nicht Pflicht. Der Rest hat Voreinstellungen: schwarz-weiß, Standardbrief, deutsche Sprache.
- Was kostet ein Brief ohne Konto?
- Am 2026-08-21 kostet ein einseitiger Standardbrief nach Deutschland 3,49 Euro, Einschreiben Einwurf 7,59 Euro und Einschreiben Übergabe 8,19 Euro. Die Preise kommen serverseitig aus der Versandpolitik, und letter_quote gibt sie vor jedem Versand frisch heraus. Ein Agent sollte nie einen Preis fest einbauen.
- Warum antwortet der Endpunkt mit 406?
- Weil der Accept-Header unvollständig ist. Streamable HTTP verlangt application/json und text/event-stream zusammen; fehlt einer, antwortet der Transport mit 406 und der Meldung 'Client must accept both application/json and text/event-stream'. Das ist eine Regel des MCP-Transports, keine FrankKi-Besonderheit.
- Wird gedruckt, bevor jemand bezahlt hat?
- Nein. Der einzige Auslöser der Einlieferung ist Stripes checkout.session.completed. Vor dem Zahlungseingang sieht der Druckdienstleister den Brief nicht. Der Betrag wird an der Kasse zunächst nur autorisiert, der Einzug folgt der Annahme des Briefs.
- Wohin darf ein Gastbrief gehen?
- Absender und Empfänger dürfen überall sitzen. Gedruckt und eingeliefert wird immer in Deutschland, das Absenderland ist nur die Rücksendeangabe auf dem Brief. Empfänger sind weltweit möglich, solange das Ziel eine bepreisbare Versandart hat. Findet die Bahn keine, lehnt sie ab, statt einen Preis zu schätzen.
- Wie lange lebt ein Entwurf?
- 24 Stunden. Danach ist der draftToken wertlos und ein Aufräum-Cron entfernt die Zeile. Die signierten Vorschau-Bilder sind kürzer gültig, jeweils eine halbe Stunde ab dem Aufruf von letter_preview.



