unopost

MCP-Connector

Brief aus Ihrem KI-Assistenten versenden

Fügen Sie eine URL zu Claude, ChatGPT oder einem anderen MCP-Client hinzu. Ihr Assistent bereitet Ihr Originaldokument vor, damit es auf A4 gedruckt und per Australia Post mit Sendungsverfolgung versendet wird. Sie prüfen die Vorschau und bezahlen auf unserer Website, sodass nichts ohne Sie versendet wird.

$10 Standardpost$20 Express Post

Server-URL
https://unopost.com.au/api/mcp

Dieselben Preise wie auf der Website, inkl. GST. Kein Konto, keine Anmeldung, kein API-Schlüssel.

Sie posten aus Ihrem eigenen Code? Der Connector funktioniert mit jedem MCP-Client oder per einfachem HTTP, aber jeder Brief wird auf unserer Website bezahlt. Um ganz ohne menschliches Zutun zu posten, nutzen Sie die x402-API.

VerbindenServer-Card

Verbinden

Der Connector ist ein entfernter MCP-Server über Streamable HTTP. Er braucht keine Anmeldung, lassen Sie die Authentifizierung also ausgeschaltet.

  • Claude: Öffnen Sie Customize → Connectors, wählen Sie Add custom connector, nennen Sie ihn Unopost und fügen Sie die Server-URL ein. Schalten Sie Unopost in einem Chat über das Tools-Menü ein.
  • ChatGPT: Fügen Sie im Entwicklermodus einen benutzerdefinierten Connector mit der Server-URL und ohne Authentifizierung hinzu und schalten Sie ihn dann im Chat ein.
  • Claude Code und andere Clients: Fügen Sie ihn als entfernten HTTP-Server hinzu. Jeder Client, der benutzerdefinierte MCP-Server unterstützt, verwendet dieselbe URL.
Claude Code
claude mcp add --transport http unopost https://unopost.com.au/api/mcp
.mcp.json
{
  "mcpServers": {
    "unopost": {
      "type": "http",
      "url": "https://unopost.com.au/api/mcp"
    }
  }
}

So läuft ein Brief ab

  1. Adressen bestätigen
  2. Brief vorbereiten
  3. Auf den Satz warten
  4. Der Nutzer zahlt auf der Website

Der Assistent bestätigt die Adressen mit dem Nutzer, bereitet den Brief vor und gibt dem Nutzer einen privaten Link zur Prüfung. Dort prüft der Nutzer die Vorschau, gibt eine E-Mail-Adresse ein und zahlt per Karte. Erst die Zahlung bringt den Brief auf den Weg.

Was der Nutzer sagt
Post this letter by Express Post to Jane Citizen,
12 Example Street, Southbank VIC 3006.
My return address is 1 Sample Road, Carlton VIC 3053.

Tools

Assistenten rufen diese selbst auf. Jedes Ergebnis von prepare_letter, finish_letter_upload und get_letter_status enthält reviewUrl, die private Seite, auf der der Nutzer die Vorschau prüft und bezahlt, und instructions, die sagen, was dem Nutzer als Nächstes mitzuteilen ist.

prepare_letter

TOOLprepare_letter

Nimmt eine Dateireferenz vom Host entgegen, etwa einen Anhang in ChatGPT, lädt das Original herunter und legt den Brief an. Die Datei wird nie abgetippt, nachgebaut oder als Text gesendet. Jeder Aufruf legt einen neuen Brief an, daher ruft ein Assistent ihn nur einmal auf.

Argumente

fileobject · erforderlich
Die Referenz des Hosts auf den Originalanhang des Nutzers: download_url und file_id, mit file_name und mime_type, falls bekannt.
fileNamestring · optional
Der Dateiname mit Endung, etwa letter.pdf. Nur nötig, wenn file.file_name fehlt.
recipientAddress · erforderlich
An wen der Brief geht, wie vom Nutzer bestätigt. In Australien, außer service ist international.
senderAddress · erforderlich
Die Absenderadresse des Nutzers, auf den Umschlag gedruckt. Sie kann in jedem Land liegen.
servicestring · optional
express (Standard), flach im B4-Umschlag; regular, gefaltet im DL-Umschlag, bis zu 12 Seiten; oder international, mit Unterschrift bei Zustellung.
signatureboolean · optional
Unterschrift bei Zustellung, in Australien $6 zusätzlich. Standardpost geht damit als Einschreiben.
duplexboolean · optional
Beidseitig drucken. Eidesstattliche Erklärungen werden immer einseitig gedruckt.
monoboolean · optional
In Schwarz-Weiß drucken. Farbe bleibt standardmäßig farbig, ohne Aufpreis.
stapleboolean · optional
Die Seiten einmal oben links heften. Nur für Dokumente mit bis zu 12 Seiten; ein längeres wird bei der Preisberechnung abgelehnt. Standard ist false.
foldboolean · optional
Einen Express-Post- oder Auslandsbrief mit bis zu 12 Seiten in einen kleineren Umschlag falten.
preparedForstring · optional
Nur wenn Sie für ein Unternehmen an einen seiner Kunden schreiben: der Name des Unternehmens, bis zu 60 Zeichen. Die Bezahlseite zeigt ihn als Angabe des Assistenten, nicht als geprüft, und Namen wie Unopost, Australia Post, eine Bank oder eine Behörde werden abgelehnt.
notifyEmailstring · optional
Mit preparedFor: die E-Mail-Adresse des Unternehmens. Sie erhält eine Kopie jeder E-Mail zum Brief, von der Zahlung bis zur Zustellung, und der Kunde sieht diese Adresse vor dem Bezahlen.
customerEmailstring · optional
Die E-Mail-Adresse des zahlenden Kunden, falls bekannt. Die Bezahlseite ist damit vorausgefüllt; E-Mails zur Sendungsverfolgung gehen an diese Adresse.

Adresse

name, line1 und suburb sind Pflicht; Namen und Zeilen dürfen bis zu 40 Zeichen lang sein. In Australien ergibt sich der Bundesstaat aus der Postleitzahl. Für das Ausland geben Sie country an, und für einen Brief nach China eine chinesische Handynummer in phone.

namestring · erforderlich
Der vollständige Name der Person.
companystring · optional
Ein Unternehmen oder eine Organisation.
line1string · erforderlich
Die Straßenadresse oder eine PO Box, etwa "PO Box 123".
line2string · optional
Eine zweite Adresszeile.
suburbstring · erforderlich
Der Vorort oder Ort.
statestring · optional
In Australien weglassen: Er ergibt sich aus der Postleitzahl. Falls angegeben, einer der Werte ACT, NSW, NT, QLD, SA, TAS, VIC oder WA, passend zur Postleitzahl. Im Ausland die Region, falls das Land eine verwendet.
postcodestring · optional
Vier Ziffern, in Australien erforderlich. Im Ausland die Postleitzahl, falls das Land eine verwendet.
countrystring · optional
Für Australien weglassen. Sonst der englische Name des Landes. Der Empfänger kann nur mit service international im Ausland sein.
phonestring · optional
Nur für einen Empfänger in China: seine chinesische Mobilnummer, die China Post benötigt.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "prepare_letter",
    "arguments": {
      "file": {
        "download_url": "https://files.example.com/letter.pdf",
        "file_id": "file_abc123",
        "file_name": "letter.pdf",
        "mime_type": "application/pdf"
      },
      "recipient": {
        "name": "Jane Citizen",
        "line1": "12 Example Street",
        "suburb": "Southbank",
        "postcode": "3006"
      },
      "sender": {
        "name": "Sam Sender",
        "line1": "1 Sample Road",
        "suburb": "Carlton",
        "postcode": "3053"
      },
      "service": "express"
    }
  }
}
structuredContent
{
  "jobId": "019d7a7f-a183-752d-9b3b-11511179033b",
  "reviewUrl": "https://unopost.com.au/pay?job=019d7a7f-a183-752d-9b3b-11511179033b",
  "currency": "AUD",
  "status": "CONVERTING",
  "service": "express",
  "instructions": "The letter is being laid out, usually for a few seconds. Then give the user reviewUrl to check the preview, enter an email and pay. Nothing is posted until payment. …"
}

Die Datei selbst hochladen

TOOLcreate_letter_upload → finish_letter_upload

Für Clients, die die Datei des Nutzers lesen und eine HTTP-Anfrage senden können, deren Host aber keine Dateireferenzen hat. create_letter_upload nimmt den Dateinamen entgegen und gibt uploadUrl zurück, die nach 5 Minuten abläuft. Senden Sie die Originalbytes per PUT dorthin und rufen Sie dann finish_letter_upload mit der jobId und denselben Brieffeldern wie bei prepare_letter auf.

PUT uploadUrl
curl -X PUT "$UPLOAD_URL" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @letter.pdf

get_letter_status

TOOLget_letter_status

Meldet, wo ein Brief steht, mit der endgültigen pageCount und costCents, sobald er gesetzt ist. Ein Brief dauert meist ein paar Sekunden. Fragen Sie höchstens alle 5 Sekunden ab.

CONVERTED
{
  "jobId": "019d7a7f-a183-752d-9b3b-11511179033b",
  "reviewUrl": "https://unopost.com.au/pay?job=019d7a7f-a183-752d-9b3b-11511179033b",
  "currency": "AUD",
  "status": "CONVERTED",
  "pageCount": 3,
  "costCents": 2000,
  "previewUrl": "https://unopost.com.au/preview/019d7a7f-a183-752d-9b3b-11511179033b/letter.pdf?Expires=...&Signature=...",
  "service": "express",
  "instructions": "Ready: give the user reviewUrl to check the preview, enter an email and pay by card. The letter is posted only once it's paid for. pageCount and costCents (AUD cents) are final."
}
FAILED
{
  "jobId": "019d7a7f-a183-752d-9b3b-11511179033b",
  "reviewUrl": "https://unopost.com.au/pay?job=019d7a7f-a183-752d-9b3b-11511179033b",
  "currency": "AUD",
  "status": "FAILED",
  "error": "document has more than 80 pages",
  "instructions": "Not posted, and nothing was charged. The document has more than 80 pages. Suggest splitting it into separate letters of up to 80 pages each. …"
}

get_letter_info

TOOLget_letter_info

Aktuelle Preise in AUD-Cent, die Seiten, die jeder Preis abdeckt, Seiten- und Dateilimits sowie verständliche Antworten zu Aufgabezeiten, Zustellung, Sendungsverfolgung und Stornierung. Assistenten beantworten damit Fragen, bevor sie etwas vorbereiten.

tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_letter_info",
    "arguments": {}
  }
}

Limits

pages
Bis zu 80 Seiten pro Brief. Teilen Sie ein längeres Dokument auf mehrere Briefe auf.
regular
Standardpost und jeder gefaltete Brief fassen bis zu 12 Seiten. Längere Briefe gehen flach per Express Post.
size
Bis zu 50 MB pro Datei.
files
PDF, Word (.doc, .docx), JPEG oder PNG. Word-Dokumente werden auf A4 gesetzt.
letter
Über den Connector eine Datei pro Brief. Die Website nimmt bis zu 10.
rate
200 Briefe pro Stunde von jedem KI-Host.

Status

CREATED
Reserviert, wartet auf die Datei.
CONVERTING
Wird gesetzt.
CONVERTED AWAITING_PAYMENT
Bereit, damit der Nutzer ihn unter reviewUrl prüft und bezahlt.
PAID PAYING SENDING RETRYING MANUAL_CHECK
Bezahlt. Briefe, die an einem Werktag bis 14:30 Uhr Melbourner Zeit bezahlt werden, werden noch am selben Tag aufgegeben.
POSTED UNDELIVERED
Bei Australia Post aufgegeben. Die Sendungsnummer wurde dem Nutzer per E-Mail geschickt.
DELIVERED
Laut Sendungsverfolgung von Australia Post zugestellt.
FAILED
Nicht aufgegeben. error nennt den Grund, instructions den nächsten Schritt. Ein bezahlter Brief wird vollständig erstattet.
PAYMENT_EXPIRED
Nicht rechtzeitig bezahlt. Das Dokument wurde gelöscht.
REFUNDED
Storniert oder nicht versendbar und auf die Karte erstattet.

Fehler

Ein Tool, das fehlschlägt, gibt ein Fehlerergebnis zurück, dessen Text sagt, was schiefgelaufen ist und was zu tun ist, geschrieben für den Assistenten. Es gibt keine Fehlercodes, und wir formulieren die Meldungen eventuell um. Reagieren Sie daher auf die Art des Fehlers, nicht auf den genauen Wortlaut.

Ein Tool zahlt und versendet nie, daher kostet ein Fehler den Nutzer nie etwas. Sobald ein Fehler aber einen Job nennt, existiert dieser Brief: Prüfen Sie ihn mit get_letter_status, statt einen zweiten vorzubereiten.

arguments
Ein Argument fehlt oder ist falsch: eine Adresse, die der Nutzer bestätigen sollte, Optionen, die nicht zusammenpassen, ein nicht unterstützter Dateityp, ein abgelehntes preparedFor oder eine fehlerhafte E-Mail-Adresse. Die Meldung nennt es. Korrigieren Sie es und rufen Sie das Tool erneut auf; es wurde nichts angelegt.
file
Die Originaldatei konnte nicht vom Host abgerufen werden: Der Link ist abgelaufen, wurde abgewiesen, war zu langsam oder leitete zu oft weiter, zeigt auf eine private Adresse, oder die Datei ist leer oder größer als 50 MB. Es wurde nichts versendet. Holen Sie eine neue Dateireferenz oder verwenden Sie create_letter_upload; senden Sie nie stattdessen eine Textkopie.
job …
Die Meldung beginnt mit job …:, wenn der Brief angelegt wurde, aber ein späterer Schritt fehlgeschlagen ist. Rufen Sie get_letter_status mit dieser Job-ID auf und dann finish_letter_upload, falls er noch auf seine Adressen wartet. Bereiten Sie keinen weiteren Brief vor.
rate limit
Zu viele Briefe von diesem KI-Host in dieser Stunde, oder das Tageslimit des Connectors ist erreicht. Wiederholen Sie es nicht in einer Schleife: Sagen Sie dem Nutzer, er solle es später versuchen oder den Brief über die Unopost-Website senden.
paused
Wir nehmen vorübergehend keine neuen Briefe an; Briefe, die bereits in Bearbeitung sind, laufen weiter. Versuchen Sie es später erneut.
not found
Kein Brief hat diese jobId, oder sein Upload ist nach 24 Stunden abgelaufen. Verwenden Sie nur eine Job-ID, die Unopost diesem Nutzer zurückgegeben hat, und beginnen Sie neu, wenn sie abgelaufen ist.
server
Bei uns ist etwas schiefgelaufen: Unopost API returned HTTP 5xx. Warten Sie einige Sekunden und versuchen Sie es noch einmal.
FAILED
Ein Brief, der sich nicht drucken lässt, ist kein Tool-Fehler: get_letter_status gibt FAILED mit error und verständlichen instructions zurück, etwa ein Dokument mit über 80 Seiten aufzuteilen oder ein Passwort zu entfernen.

Zahlung und Datenschutz

  • Er zahlt und versendet nie. Der Connector gibt keinen Zahlungslink zurück. Der Nutzer zahlt nur auf der Website, nachdem er die Vorschau gesehen hat.
  • Die Originaldatei, unverändert. Dateien werden nie in MCP-Nachrichten übertragen und nie durch Text ersetzt.
  • Private Links. Eine Job-ID ist der einzige Schlüssel zu einem Brief, daher geben Assistenten sie und reviewUrl nur an den Nutzer weiter.
  • Stornieren vor dem Druck. Ein bezahlter Brief kann über reviewUrl gegen volle Erstattung storniert werden, bis wir mit dem Druck beginnen.
  • Nach dem Versand gelöscht. Dokumente werden gelöscht, sobald ein Brief aufgegeben ist, die eines unbezahlten Briefs nach 24 Stunden.

Webhooks? Nutzen Sie ein Postfach

Der Connector hat keine Webhooks. Geben Sie dem Assistenten stattdessen eine notifyEmail für ein Postfach, das Ihre Software liest. Jede E-Mail zu einem Brief kommt von notifications@unopost.com.au und enthält den Brief in ihren Headern. Ein Mail-Dienst, der bei eingehender Post Code ausführt, etwa Amazon SES, Postmark, Mailgun oder SendGrid, kann so auf jede Aktualisierung reagieren, sobald sie eintrifft.

  1. Richten Sie notifyEmail auf eine Adresse, die Ihr Mail-Dienst empfängt, etwa letters@yourbusiness.com.au.
  2. Akzeptieren Sie nur Mails von notifications@unopost.com.au, die die DMARC-Prüfung bestehen, und verwerfen Sie den Rest.
  3. Lesen Sie die Header, nicht den Wortlaut, der sich ändern kann. Verwerfen Sie eine Unopost-Event-Id, die Sie schon gesehen haben.

Header

Unopost-Letter-Id
Die jobId des Briefs, wie der Connector sie zurückgegeben hat.
Unopost-Event
Was passiert ist: receipt, posted, tracking, retrying, delayed, awaiting-collection, delivered, cancelled, failed, refunded oder refunded-printed.
Unopost-Event-Id
Für dieselbe Nachricht immer gleich, egal wie oft sie gesendet wird, sodass Sie Wiederholungen verwerfen können.
Unopost-Letter-Status
Der Status des Briefs danach: TO_POST, POSTED, DELAYED, AWAITING_AT_COLLECTION, DELIVERED, CANCELLED oder REFUNDED.
Unopost-Tracking-Number
Die Sendungsnummer von Australia Post, sobald der Brief aufgegeben ist.
Unopost-Copy
business auf der Kopie, die ein Unternehmen erhält; nicht auf der eigenen E-Mail des Kunden.
Headers
From: Unopost <notifications@unopost.com.au>
Unopost-Letter-Id: 019d7a7f-a183-752d-9b3b-11511179033b
Unopost-Event: tracking
Unopost-Event-Id: evt_3f9a1c0b7e2d4a6b8c1d0e2f
Unopost-Letter-Status: POSTED
Unopost-Tracking-Number: 33LQV507012301000935005
Unopost-Copy: business
Amazon SES · receipt rule Lambda
export const handler = async (event) => {
  const { mail, receipt } = event.Records[0].ses;
  const { from } = mail.commonHeaders;
  const fromUs = from.length === 1 && /(^|<)notifications@unopost\.com\.au>?$/i.test(from[0]);
  // DMARC, not DKIM alone: only a DMARC pass means unopost.com.au signed it.
  if (!fromUs || receipt.dmarcVerdict.status !== 'PASS') return;
  const header = name =>
    mail.headers.find(h => h.name.toLowerCase() === name.toLowerCase())?.value;
  await recordUpdate({
    letterId: header('Unopost-Letter-Id'),
    event: header('Unopost-Event'),
    eventId: header('Unopost-Event-Id'), // drop one you've seen
    status: header('Unopost-Letter-Status'),
    trackingNumber: header('Unopost-Tracking-Number'),
  });
};

Die Kopien beginnen, sobald der Kunde bezahlt. Für einen nie bezahlten Brief kommt also nichts an: Fragen Sie bis dahin get_letter_status ab. Die E-Mails an den Kunden selbst enthalten dieselben Header. Wir können Header hinzufügen, benennen diese aber nie um und entfernen sie nie.

Auffindbarkeit

Agenten finden den Connector auch ohne Hinweis. Er ist in unserem KI-Katalog gelistet, der auf seine MCP-Server-Card verweist.

Preise

LeistungPreis
Standardpost, gefaltet, passt in den Briefkasten: bis zu 12 Seiten$10
Einschreiben, Standardpost mit Unterschrift bei Zustellung: bis zu 12 Seiten$16
Express Post, flach im B4-Umschlag: 20 Seiten inklusive, danach $0.30 je weitere Seite$20
Express Post mit Unterschrift bei Zustellung: 20 Seiten inklusive, danach $0.30 je weitere Seite$26
Sendungsverfolgung, Farbdruck, beidseitiger oder Schwarz-Weiß-Druck und HeftenKostenlos

Jeder Brief hat Sendungsverfolgung. Der Endpreis hängt von der Seitenzahl ab, die feststeht, sobald der Brief gesetzt ist.

Für Briefe, die über den Connector vorbereitet werden, gelten wie für alle anderen unsere Nutzungsbedingungen und unsere Datenschutzerklärung.