unopost

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

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

Samma 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.

AnslutServerkort

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 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"
    }
  }
}

Så går ett brev till

  1. Bekräfta adresserna
  2. Gör i ordning brevet
  3. Vänta på layouten
  4. Användaren betalar på webbplatsen

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.

Det användaren säger
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.

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_url och file_id, med file_name och mime_type om de är kända.
fileNamestring · valfri
Filnamnet med filändelse, till exempel letter.pdf. Behövs bara när file.file_name saknas.
recipientAddress · obligatorisk
Vem brevet ska till, så som användaren bekräftat det. I Australien, om inte service är international.
senderAddress · obligatorisk
Användarens returadress, som trycks på kuvertet. Den kan ligga i vilket land som helst.
servicestring · valfri
express (standard), ovikt i ett B4-kuvert; regular, vikt i ett DL-kuvert, upp till 12 sidor; eller international, 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, VIC eller WA, 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 service satt till international.
phonestring · valfri
Endast för en mottagare i Kina: mottagarens kinesiska mobilnummer, som China Post behöver.
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. …"
}

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.

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

get_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.

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

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.

tools/call
{
  "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.
CONVERTED AWAITING_PAYMENT
Klart för användaren att kontrollera och betala på reviewUrl.
PAID PAYING SENDING RETRYING MANUAL_CHECK
Betalt. Brev som betalas senast kl. 14.30 Melbournetid en arbetsdag postas samma dag.
POSTED UNDELIVERED
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. error anger varför och instructions vad 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 preparedFor eller 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. Anropa get_letter_status med det jobb-ID:t och sedan finish_letter_upload om 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_status returnerar FAILED med error och tydliga instructions, 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 reviewUrl bara med användaren.
  • Avbryt före utskrift. Ett betalt brev kan avbrytas mot full återbetalning via reviewUrl tills 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.

  1. Peka notifyEmail mot en adress som din e-posttjänst tar emot, till exempel letters@yourbusiness.com.au.
  2. Ta bara emot mejl från notifications@unopost.com.au som klarar DMARC, och släng resten.
  3. Läs huvudfälten, inte texten, som kan ändras. Släng ett Unopost-Event-Id som 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, refunded eller refunded-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, CANCELLED eller REFUNDED.
Unopost-Tracking-Number
Australia Posts spårningsnummer, när brevet har postats.
Unopost-Copy
business på kopian som ett företag får; inte på kundens eget mejl.
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'),
  });
};

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.

Priser

ArtikelPris
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äftningGratis

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.