MCP-koppling
Posta ett brev från din AI-assistent
Lägg till en URL i Claude, ChatGPT eller valfri MCP-klient. Din assistent gör i ordning ditt originaldokument för utskrift på A4 och postning med Australia Post, spårbart. Du kontrollerar förhandsvisningen och betalar på vår webbplats, så inget postas utan dig.
$10 vanlig post$20 Express Post
https://unopost.com.au/api/mcpSamma priser som på webbplatsen, inklusive GST. Inget konto, ingen inloggning, ingen API-nyckel.
Skickar du från din egen kod? Kopplingen fungerar från vilken MCP-klient som helst eller med vanlig HTTP, men varje brev betalas på vår webbplats. För att skicka utan att någon behöver vara med, använd x402-API:t.
Anslut
Kopplingen är en fjärransluten MCP-server över Streamable HTTP. Den kräver ingen inloggning, så lämna autentisering avstängd.
- Claude: öppna Customize → Connectors, välj Add custom connector, ge den namnet Unopost och klistra in server-URL:en. Slå på Unopost i verktygsmenyn i en chatt.
- ChatGPT: lägg till en anpassad koppling i utvecklarläget med server-URL:en och utan autentisering, och slå sedan på den i chatten.
- Claude Code och andra klienter: lägg till den som en fjärransluten HTTP-server. Alla klienter som tar emot anpassade MCP-servrar använder samma URL.
claude mcp add --transport http unopost https://unopost.com.au/api/mcp{
"mcpServers": {
"unopost": {
"type": "http",
"url": "https://unopost.com.au/api/mcp"
}
}
}Så går ett brev till
Assistenten bekräftar adresserna med användaren, gör i ordning brevet och ger användaren en privat granskningslänk. Där kontrollerar användaren förhandsvisningen, anger en e-postadress och betalar med kort. Det är betalningen som gör att brevet postas.
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.Verktyg
Assistenterna anropar dem själva. Varje resultat från prepare_letter, finish_letter_upload och get_letter_status innehåller reviewUrl, den privata sidan där användaren kontrollerar förhandsvisningen och betalar, och instructions, som säger vad användaren ska få veta härnäst.
get_letter_infoPriser, gränser, posttider, leverans, spårning och avbrytande.TOOLprepare_letterTar filen som användaren bifogade och påbörjar ett brev.TOOLcreate_letter_uploadReserverar ett brev och returnerar en länk att ladda upp filen till.TOOLfinish_letter_uploadAdresserar ett uppladdat brev och börjar lägga upp det.TOOLget_letter_statusSidantal, pris, förhandsvisning, betalning och poststatus.prepare_letter
TOOLprepare_letter
Tar en filreferens från värden, till exempel en bilaga i ChatGPT, hämtar originalet och påbörjar brevet. Filen skrivs aldrig av, återskapas eller skickas som text. Varje anrop skapar ett nytt brev, så en assistent anropar det en gång.
Argument
fileobject · obligatorisk- Värdens referens till användarens ursprungliga bilaga:
download_urlochfile_id, medfile_nameochmime_typeom de är kända. fileNamestring · valfri- Filnamnet med filändelse, till exempel
letter.pdf. Behövs bara närfile.file_namesaknas. recipientAddress · obligatorisk- Vem brevet ska till, så som användaren bekräftat det. I Australien, om inte
serviceärinternational. senderAddress · obligatorisk- Användarens returadress, som trycks på kuvertet. Den kan ligga i vilket land som helst.
servicestring · valfriexpress(standard), ovikt i ett B4-kuvert;regular, vikt i ett DL-kuvert, upp till 12 sidor; ellerinternational, med signatur vid leverans.signatureboolean · valfri- Signatur vid leverans, $6 extra i Australien. Vanlig post med signatur går som Rekommenderad post.
duplexboolean · valfri- Skriv ut dubbelsidigt. Försäkringar på heder och samvete (statutory declarations) skrivs alltid ut enkelsidigt.
monoboolean · valfri- Skriv ut i svartvitt. Färg skrivs som standard ut i färg, utan extra kostnad.
stapleboolean · valfri- Häfta sidorna en gång i övre vänstra hörnet. Endast för dokument på upp till 12 sidor; ett längre avvisas när priset beräknas. Standard är false.
foldboolean · valfri- Vik ett brev med Express Post eller till utlandet på upp till 12 sidor i ett mindre kuvert.
preparedForstring · valfri- Endast när du skriver för ett företag till en av dess kunder: företagets namn, högst 60 tecken. Betalsidan visar det som något assistenten har uppgett för oss, inte som kontrollerat, och namn som Unopost, Australia Post, en bank eller en myndighet avvisas.
notifyEmailstring · valfri- Med
preparedFor: företagets e-postadress. Den får en kopia av varje e-postmeddelande om brevet, från betalning till leverans, och kunden ser adressen före betalningen. customerEmailstring · valfri- Den betalande kundens e-postadress, om du har den. Betalsidan öppnas med den ifylld; e-postmeddelanden om spårning går till den.
Adress
name, line1 och suburb är obligatoriska; namn och rader får vara högst 40 tecken. I Australien avgör postnumret delstaten. Utomlands lägger du till country, och ett kinesiskt mobilnummer i phone för ett brev till Kina.
namestring · obligatorisk- Personens fullständiga namn.
companystring · valfri- Ett företag eller en organisation.
line1string · obligatorisk- Gatuadressen, eller en PO Box som
"PO Box 123". line2string · valfri- En andra adressrad.
suburbstring · obligatorisk- Förorten eller orten.
statestring · valfri- Utelämna den i Australien: postnumret avgör den. Om den anges, något av
ACT,NSW,NT,QLD,SA,TAS,VICellerWA, i enlighet med postnumret. Utomlands regionen, om landet använder en. postcodestring · valfri- Fyra siffror, obligatoriskt i Australien. Utomlands postnumret, om landet använder ett.
countrystring · valfri- Utelämna det för Australien. Annars landets namn på engelska. Mottagaren kan bara vara utomlands med
servicesatt tillinternational. phonestring · valfri- Endast för en mottagare i Kina: mottagarens kinesiska mobilnummer, som China Post behöver.
{
"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. …"
}Ladda upp filen själv
TOOLcreate_letter_upload → finish_letter_upload
För klienter som kan läsa användarens fil och göra ett HTTP-anrop, men vars värd saknar filreferenser. create_letter_upload tar filnamnet och returnerar uploadUrl, som slutar gälla efter 5 minuter. Skicka originalfilens byte till den med PUT och anropa sedan finish_letter_upload med jobId och samma brevfält som för prepare_letter.
curl -X PUT "$UPLOAD_URL" \
-H "Content-Type: application/octet-stream" \
--data-binary @letter.pdfget_letter_status
TOOLget_letter_status
Visar var ett brev befinner sig, med slutligt pageCount och costCents när det har lagts upp. Ett brev tar oftast några sekunder. Kontrollera högst var 5:e sekund.
{
"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
Aktuella priser i AUD-cent, sidorna som varje pris täcker, gränser för sidor och filer, och svar på vanlig svenska om posttider, leverans, spårning och avbrytande. Assistenter använder det för att svara på frågor innan de gör i ordning något.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_letter_info",
"arguments": {}
}
}Gränser
pages- Upp till 80 sidor per brev. Dela upp ett längre dokument i separata brev.
regular- Vanlig post, och alla vikta brev, tar upp till 12 sidor. Längre brev går med Express Post, ovikta.
size- Upp till 50 MB per fil.
files- PDF, Word (.doc, .docx), JPEG eller PNG. Word-dokument läggs upp på A4.
letter- En fil per brev via kopplingen. Webbplatsen tar upp till 10.
rate- 200 brev i timmen från varje AI-värd.
Statusar
CREATED- Reserverat, väntar på sin fil.
CONVERTING- Läggs upp.
CONVERTEDAWAITING_PAYMENT- Klart för användaren att kontrollera och betala på
reviewUrl. PAIDPAYINGSENDINGRETRYINGMANUAL_CHECK- Betalt. Brev som betalas senast kl. 14.30 Melbournetid en arbetsdag postas samma dag.
POSTEDUNDELIVERED- Inlämnat till Australia Post. Spårningsnumret har mejlats till användaren.
DELIVERED- Australia Posts spårning visar att det har levererats.
FAILED- Inte postat.
erroranger varför ochinstructionsvad som ska göras härnäst. Ett betalt brev återbetalas i sin helhet. PAYMENT_EXPIRED- Betalades inte i tid. Dokumentet har raderats.
REFUNDED- Avbrutet eller kunde inte postas, och återbetalat till kortet.
Fel
Ett verktyg som misslyckas returnerar ett felresultat vars text, skriven för assistenten, säger vad som gick fel och vad som ska göras. Det finns inga felkoder, och vi kan formulera om meddelandena, så agera på typen av fel, inte på exakt ordalydelse.
Ett verktyg betalar eller postar aldrig, så ett fel kostar aldrig användaren något. Men så fort ett fel nämner ett jobb finns det brevet: kontrollera det med get_letter_status i stället för att förbereda ett till.
arguments- Ett argument saknas eller är fel: en adress som användaren bör bekräfta, alternativ som inte går ihop, en filtyp som inte stöds, ett avvisat
preparedForeller en felaktig e-postadress. Meddelandet säger vilket. Rätta det och anropa igen; inget har skapats. file- Originalfilen kunde inte hämtas från värden: länken har gått ut, avvisades, var för långsam eller omdirigerade för många gånger, pekar mot en privat adress, eller så är filen tom eller större än 50 MB. Inget har postats. Hämta en ny filreferens eller använd
create_letter_upload; skicka aldrig en textkopia i stället. job …- Meddelandet börjar med
job …:när brevet skapades men ett senare steg misslyckades. Anropaget_letter_statusmed det jobb-ID:t och sedanfinish_letter_uploadom det fortfarande väntar på sina adresser. Förbered inte ett nytt brev. rate limit- För många brev från den här AI-värden den här timmen, eller så har kopplingens gräns för dagen nåtts. Försök inte igen i en loop: be användaren försöka senare eller skicka brevet via Unopost-webbplatsen.
paused- Vi har pausat nya brev en stund; brev som redan är på väg fortsätter. Försök igen senare.
not found- Inget brev har det
jobId, eller så har uppladdningen gått ut efter 24 timmar. Använd bara ett jobb-ID som Unopost har returnerat till den här användaren, och börja om om det har gått ut. server- Något gick fel hos oss:
Unopost API returned HTTP 5xx. Vänta några sekunder och försök en gång till. FAILED- Ett brev som inte kan skrivas ut är inget verktygsfel:
get_letter_statusreturnerarFAILEDmederroroch tydligainstructions, till exempel att dela upp ett dokument på över 80 sidor eller ta bort ett lösenord.
Betalning och integritet
- Den betalar eller postar aldrig. Kopplingen returnerar ingen betalningslänk. Användaren betalar bara på webbplatsen, efter att ha sett förhandsvisningen.
- Originalfilen, oförändrad. Filer skickas aldrig inuti MCP-meddelanden och ersätts aldrig med text.
- Privata länkar. Ett jobb-ID är den enda nyckeln till ett brev, så assistenter delar det och
reviewUrlbara med användaren. - Avbryt före utskrift. Ett betalt brev kan avbrytas mot full återbetalning via
reviewUrltills vi börjar skriva ut det. - Raderas efter postning. Dokument raderas när ett brev har postats, och ett obetalt brevs dokument efter 24 timmar.
Webhooks? Använd en inkorg
Kopplingen har inga webhooks. Ge i stället assistenten en notifyEmail till en inkorg som din programvara läser. Alla mejl om ett brev kommer från notifications@unopost.com.au och har brevet i sina huvudfält, så en e-posttjänst som kör kod på inkommande mejl, till exempel Amazon SES, Postmark, Mailgun eller SendGrid, kan agera på varje uppdatering när den kommer in.
- Peka
notifyEmailmot en adress som din e-posttjänst tar emot, till exempelletters@yourbusiness.com.au. - Ta bara emot mejl från
notifications@unopost.com.ausom klarar DMARC, och släng resten. - Läs huvudfälten, inte texten, som kan ändras. Släng ett
Unopost-Event-Idsom du redan har sett.
Huvudfält
Unopost-Letter-Id- Brevets
jobId, så som kopplingen returnerade det. Unopost-Event- Vad som hände:
receipt,posted,tracking,retrying,delayed,awaiting-collection,delivered,cancelled,failed,refundedellerrefunded-printed. Unopost-Event-Id- Samma för samma nyhet hur ofta den än skickas, så att du kan slänga dubbletter.
Unopost-Letter-Status- Brevets status efteråt:
TO_POST,POSTED,DELAYED,AWAITING_AT_COLLECTION,DELIVERED,CANCELLEDellerREFUNDED. Unopost-Tracking-Number- Australia Posts spårningsnummer, när brevet har postats.
Unopost-Copybusinesspå kopian som ett företag får; inte på kundens eget mejl.
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'),
});
};Kopiorna börjar när kunden betalar, så inget kommer för ett brev som aldrig betalas: kontrollera med get_letter_status fram till dess. Kundens egna mejl har samma huvudfält. Vi kan lägga till huvudfält, men byter aldrig namn på eller tar bort dessa.
Upptäckt
Agenter kan hitta kopplingen utan att få veta om den. Den finns i vår AI-katalog, som pekar på dess MCP-serverkort.
- AI-katalog
/.well-known/ai-catalog.json - MCP-serverkort
/.well-known/mcp/server-card.json
Priser
| Artikel | Pris |
|---|---|
| Vanlig post, vikt så att det går ner i brevlådan: upp till 12 sidor | $10 |
| Rekommenderad post, vanlig post med signatur vid leverans: upp till 12 sidor | $16 |
| Express Post, ovikt i ett B4-kuvert: 20 sidor ingår, sedan $0.30 för varje extra sida | $20 |
| Express Post med signatur vid leverans: 20 sidor ingår, sedan $0.30 för varje extra sida | $26 |
| Spårning, färgutskrift, dubbelsidig eller svartvit utskrift samt häftning | Gratis |
Alla brev är spårbara. Slutpriset beror på sidantalet, som blir känt när brevet har lagts upp.
För brev som görs i ordning via kopplingen gäller våra användarvillkor och vår integritetspolicy, precis som för alla andra.