MCP-connector
Verstuur een brief vanuit uw AI-assistent
Voeg één URL toe aan Claude, ChatGPT of een andere MCP-client. Uw assistent maakt uw originele document klaar om op A4 te printen en met Australia Post te versturen, met track & trace. U controleert het voorbeeld en betaalt op onze website, dus er wordt niets zonder u verstuurd.
$10 gewone post$20 Express Post
https://unopost.com.au/api/mcpDezelfde prijzen als op de website, inclusief GST. Geen account, inloggen of API-sleutel.
Post je vanuit je eigen code? De connector werkt met elke MCP-client of gewone HTTP, maar elke brief wordt op onze website betaald. Om te posten zonder dat er iemand aan te pas komt, gebruik je de x402-API.
Verbinden
De connector is een externe MCP-server via Streamable HTTP. Inloggen is niet nodig, dus laat authenticatie uit.
- Claude: open Customize → Connectors, kies Add custom connector, noem hem Unopost en plak de server-URL. Zet Unopost in een chat aan via het menu met tools.
- ChatGPT: voeg in de ontwikkelaarsmodus een aangepaste connector toe met de server-URL en zonder authenticatie, en zet hem daarna aan in de chat.
- Claude Code en andere clients: voeg hem toe als externe HTTP-server. Elke client die aangepaste MCP-servers ondersteunt, gebruikt dezelfde URL.
claude mcp add --transport http unopost https://unopost.com.au/api/mcp{
"mcpServers": {
"unopost": {
"type": "http",
"url": "https://unopost.com.au/api/mcp"
}
}
}Zo gaat een brief
De assistent bevestigt de adressen met de gebruiker, maakt de brief klaar en geeft de gebruiker een privélink om hem te controleren. Daar bekijkt de gebruiker het voorbeeld, vult een e-mailadres in en betaalt met een kaart. Pas door de betaling wordt de brief verstuurd.
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 roepen deze zelf aan. Elk resultaat van prepare_letter, finish_letter_upload en get_letter_status bevat reviewUrl, de privépagina waar de gebruiker het voorbeeld controleert en betaalt, en instructions, met wat de gebruiker daarna te horen moet krijgen.
get_letter_infoPrijzen, limieten, verzendtijden, bezorging, track & trace en annuleren.TOOLprepare_letterNeemt het bestand dat de gebruiker heeft bijgevoegd en start een brief.TOOLcreate_letter_uploadReserveert een brief en geeft een link terug om het bestand naar te uploaden.TOOLfinish_letter_uploadAdresseert een geüploade brief en start de opmaak.TOOLget_letter_statusAantal pagina's, prijs, voorbeeld, betaling en verzendstatus.prepare_letter
TOOLprepare_letter
Neemt een bestandsreferentie van de host aan, zoals een bijlage in ChatGPT, downloadt het origineel en start de brief. Het bestand wordt nooit overgetypt, nagebouwd of als tekst verstuurd. Elke aanroep maakt een nieuwe brief aan, dus een assistent roept hem één keer aan.
Argumenten
fileobject · verplicht- De referentie van de host naar de originele bijlage van de gebruiker:
download_urlenfile_id, metfile_nameenmime_typeals die bekend zijn. fileNamestring · optioneel- De bestandsnaam met extensie, zoals
letter.pdf. Alleen nodig alsfile.file_nameontbreekt. recipientAddress · verplicht- Naar wie de brief gaat, zoals de gebruiker heeft bevestigd. In Australië, tenzij
servicegelijk is aaninternational. senderAddress · verplicht- Het retouradres van de gebruiker, geprint op de envelop. Het mag in elk land liggen.
servicestring · optioneelexpress(standaard), ongevouwen in een B4-envelop;regular, gevouwen in een DL-envelop, tot 12 pagina's; ofinternational, met handtekening bij ontvangst.signatureboolean · optioneel- Handtekening bij ontvangst, $6 extra in Australië. Gewone post gaat daarmee als aangetekende post.
duplexboolean · optioneel- Dubbelzijdig printen. Statutory declarations worden altijd enkelzijdig geprint.
monoboolean · optioneel- In zwart-wit printen. Kleur blijft standaard in kleur, zonder meerkosten.
stapleboolean · optioneel- De pagina's één keer linksboven nieten. Alleen voor documenten tot 12 pagina's; een langer document wordt bij het berekenen van de prijs geweigerd. Standaard false.
foldboolean · optioneel- Een brief met Express Post of naar het buitenland van maximaal 12 pagina's in een kleinere envelop vouwen.
preparedForstring · optioneel- Alleen als u namens een bedrijf aan een van zijn klanten schrijft: de naam van het bedrijf, maximaal 60 tekens. De betaalpagina toont deze als wat de assistent ons heeft verteld, niet als gecontroleerd, en namen als Unopost, Australia Post, een bank of een overheidsinstantie worden geweigerd.
notifyEmailstring · optioneel- Met
preparedFor: het e-mailadres van het bedrijf. Dit krijgt een kopie van elke e-mail over de brief, van betaling tot bezorging, en de klant ziet dit adres voordat hij betaalt. customerEmailstring · optioneel- Het e-mailadres van de betalende klant, als u dat heeft. De betaalpagina is er al mee ingevuld; e-mails met track & trace gaan naar dit adres.
Adres
name, line1 en suburb zijn verplicht; namen en regels mogen maximaal 40 tekens lang zijn. In Australië bepaalt de postcode de deelstaat. Voor het buitenland voegt u country toe, en voor een brief naar China een Chinees mobiel nummer in phone.
namestring · verplicht- De volledige naam van de persoon.
companystring · optioneel- Een bedrijf of organisatie.
line1string · verplicht- Het straatadres, of een PO Box zoals
"PO Box 123". line2string · optioneel- Een tweede adresregel.
suburbstring · verplicht- De wijk (suburb) of plaats.
statestring · optioneel- Laat dit veld weg in Australië: de postcode bepaalt de deelstaat. Indien opgegeven, een van
ACT,NSW,NT,QLD,SA,TAS,VICofWA, passend bij de postcode. In het buitenland de regio, als het land die gebruikt. postcodestring · optioneel- Vier cijfers, verplicht in Australië. In het buitenland de postcode, als het land die gebruikt.
countrystring · optioneel- Laat dit veld weg voor Australië. Anders de naam van het land in het Engels. De ontvanger kan alleen in het buitenland zijn met
serviceopinternational. phonestring · optioneel- Alleen voor een ontvanger in China: diens Chinese mobiele nummer, dat China Post nodig heeft.
{
"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"
}
}
}{
"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. …"
}Het bestand zelf uploaden
TOOLcreate_letter_upload → finish_letter_upload
Voor clients die het bestand van de gebruiker kunnen lezen en een HTTP-verzoek kunnen doen, maar waarvan de host geen bestandsreferenties heeft. create_letter_upload neemt de bestandsnaam aan en geeft uploadUrl terug, die na 5 minuten verloopt. Stuur de originele bytes daar met PUT naartoe en roep daarna finish_letter_upload aan met de jobId en dezelfde briefvelden als prepare_letter.
curl -X PUT "$UPLOAD_URL" \
-H "Content-Type: application/octet-stream" \
--data-binary @letter.pdfget_letter_status
TOOLget_letter_status
Meldt waar een brief is, met de definitieve pageCount en costCents zodra hij is opgemaakt. Een brief duurt meestal een paar seconden. Vraag hoogstens elke 5 seconden op.
{
"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."
}{
"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
Actuele prijzen in AUD-centen, de pagina's die elke prijs dekt, pagina- en bestandslimieten, en heldere antwoorden over verzendtijden, bezorging, track & trace en annuleren. Assistenten gebruiken dit om vragen te beantwoorden voordat ze iets klaarmaken.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_letter_info",
"arguments": {}
}
}Limieten
pages- Maximaal 80 pagina's per brief. Splits een langer document op in losse brieven.
regular- Gewone post, en elke gevouwen brief, neemt maximaal 12 pagina's. Langere brieven gaan ongevouwen met Express Post.
size- Maximaal 50 MB per bestand.
files- PDF, Word (.doc, .docx), JPEG of PNG. Word-documenten worden op A4 opgemaakt.
letter- Eén bestand per brief via de connector. De website neemt er maximaal 10.
rate- 200 brieven per uur vanaf elke AI-host.
Statussen
CREATED- Gereserveerd, wacht op het bestand.
CONVERTING- Wordt opgemaakt.
CONVERTEDAWAITING_PAYMENT- Klaar voor de gebruiker om te controleren en te betalen via
reviewUrl. PAIDPAYINGSENDINGRETRYINGMANUAL_CHECK- Betaald. Brieven die op een werkdag vóór 14:30 uur Melbourne-tijd zijn betaald, worden dezelfde dag verstuurd.
POSTEDUNDELIVERED- Afgegeven bij Australia Post. Het track & trace-nummer is naar de gebruiker gemaild.
DELIVERED- Volgens de track & trace van Australia Post bezorgd.
FAILED- Niet verstuurd.
errorzegt waarom, eninstructionswat de volgende stap is. Een betaalde brief wordt volledig terugbetaald. PAYMENT_EXPIRED- Niet op tijd betaald. Het document is verwijderd.
REFUNDED- Geannuleerd of niet te versturen, en teruggestort op de kaart.
Fouten
Een tool die mislukt, geeft een foutresultaat terug waarvan de tekst, geschreven voor de assistent, zegt wat er misging en wat te doen. Er zijn geen foutcodes en we kunnen de meldingen anders formuleren, dus handel naar het soort fout, niet naar de exacte woorden.
Een tool betaalt en verstuurt nooit, dus een fout kost de gebruiker nooit iets. Maar zodra een fout een job noemt, bestaat die brief: controleer hem met get_letter_status in plaats van een tweede klaar te maken.
arguments- Een argument ontbreekt of klopt niet: een adres dat de gebruiker moet bevestigen, opties die niet samengaan, een niet-ondersteund bestandstype, een geweigerde
preparedForof een ongeldig e-mailadres. De melding noemt het. Corrigeer het en roep opnieuw aan; er is niets aangemaakt. file- Het originele bestand kon niet bij de host worden opgehaald: de link is verlopen, werd geweigerd, was te traag of stuurde te vaak door, verwijst naar een privéadres, of het bestand is leeg of groter dan 50 MB. Er is niets verstuurd. Haal een nieuwe bestandsreferentie op, of gebruik
create_letter_upload; stuur nooit een tekstkopie in plaats daarvan. job …- De melding begint met
job …:als de brief is aangemaakt maar een latere stap mislukte. Roepget_letter_statusaan met die job-ID, en daarnafinish_letter_uploadals hij nog op zijn adressen wacht. Maak geen nieuwe brief klaar. rate limit- Te veel brieven van deze AI-host dit uur, of de daglimiet van de connector is bereikt. Probeer het niet in een lus opnieuw: zeg de gebruiker het later te proberen, of de brief via de website van Unopost te versturen.
paused- We hebben nieuwe brieven tijdelijk gepauzeerd; brieven die al onderweg zijn, gaan gewoon door. Probeer het later opnieuw.
not found- Geen enkele brief heeft die
jobId, of de upload is na 24 uur verlopen. Gebruik alleen een job-ID die Unopost aan deze gebruiker heeft teruggegeven, en begin opnieuw als die verlopen is. server- Er ging bij ons iets mis:
Unopost API returned HTTP 5xx. Wacht een paar seconden en probeer het nog één keer. FAILED- Een brief die niet geprint kan worden, is geen toolfout:
get_letter_statusgeeftFAILEDterug meterroren duidelijkeinstructions, zoals een document van meer dan 80 pagina's opsplitsen of een wachtwoord verwijderen.
Betaling en privacy
- Hij betaalt en verstuurt nooit. De connector geeft geen betaallink terug. De gebruiker betaalt alleen op de website, nadat hij het voorbeeld heeft gezien.
- Het originele bestand, ongewijzigd. Bestanden gaan nooit mee in MCP-berichten en worden nooit vervangen door tekst.
- Privélinks. Een job-ID is de enige sleutel tot een brief, dus assistenten delen die en
reviewUrlalleen met de gebruiker. - Annuleren vóór het printen. Een betaalde brief kan via
reviewUrlmet volledige terugbetaling worden geannuleerd totdat wij hem beginnen te printen. - Verwijderd na verzending. Documenten worden verwijderd zodra een brief is verstuurd, en die van een onbetaalde brief na 24 uur.
Webhooks? Gebruik een inbox
De connector heeft geen webhooks. Geef de assistent in plaats daarvan een notifyEmail van een inbox die uw software leest. Elke e-mail over een brief komt van notifications@unopost.com.au en draagt de brief in de headers mee, zodat een maildienst die code uitvoert op binnenkomende mail, zoals Amazon SES, Postmark, Mailgun of SendGrid, op elke update kan reageren zodra die binnenkomt.
- Laat
notifyEmailwijzen naar een adres dat uw maildienst ontvangt, zoalsletters@yourbusiness.com.au. - Accepteer alleen mail van
notifications@unopost.com.audie de DMARC-controle doorstaat, en negeer de rest. - Lees de headers, niet de tekst, want die kan veranderen. Negeer een
Unopost-Event-Iddie u al hebt gezien.
Headers
Unopost-Letter-Id- De
jobIdvan de brief, zoals de connector die teruggaf. Unopost-Event- Wat er is gebeurd:
receipt,posted,tracking,retrying,delayed,awaiting-collection,delivered,cancelled,failed,refundedofrefunded-printed. Unopost-Event-Id- Hetzelfde voor hetzelfde nieuws, hoe vaak het ook wordt verstuurd, zodat u herhalingen kunt negeren.
Unopost-Letter-Status- De status van de brief daarna:
TO_POST,POSTED,DELAYED,AWAITING_AT_COLLECTION,DELIVERED,CANCELLEDofREFUNDED. Unopost-Tracking-Number- Het track & trace-nummer van Australia Post, zodra de brief is verstuurd.
Unopost-Copybusinessop de kopie die een bedrijf krijgt; niet op de eigen e-mail van de klant.
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: businessexport 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'),
});
};Kopieën beginnen zodra de klant betaalt, dus voor een brief die nooit wordt betaald komt er niets binnen: controleer tot dan get_letter_status. De e-mails aan de klant zelf bevatten dezelfde headers. We kunnen headers toevoegen, maar deze nooit hernoemen of verwijderen.
Vindbaarheid
Agents kunnen de connector vinden zonder dat iemand het ze vertelt. Hij staat in onze AI-catalogus, die naar de MCP-serverkaart verwijst.
- AI-catalogus
/.well-known/ai-catalog.json - MCP-serverkaart
/.well-known/mcp/server-card.json
Prijzen
| Onderdeel | Prijs |
|---|---|
| Gewone post, gevouwen zodat het in de brievenbus past: maximaal 12 pagina's | $10 |
| Aangetekende post, gewone post met handtekening bij ontvangst: maximaal 12 pagina's | $16 |
| Express Post, ongevouwen in een B4-envelop: 20 pagina's inbegrepen, daarna $0.30 per extra pagina | $20 |
| Express Post met handtekening bij ontvangst: 20 pagina's inbegrepen, daarna $0.30 per extra pagina | $26 |
| Track & trace, kleur, dubbelzijdig of zwart-wit printen, en nieten | Gratis |
Elke brief heeft track & trace. De uiteindelijke prijs hangt af van het aantal pagina's, dat bekend is zodra de brief is opgemaakt.
Op brieven die via de connector worden klaargemaakt, zijn net als op alle andere onze Voorwaarden en ons Privacybeleid van toepassing.