Connecteur MCP
Postez une lettre depuis votre assistant IA
Ajoutez une URL à Claude, ChatGPT ou tout client MCP. Votre assistant prépare votre document original pour qu'il soit imprimé en A4 et posté par Australia Post, avec suivi. Vous vérifiez l'aperçu et payez sur notre site : rien n'est posté sans vous.
$10 Courrier standard$20 Express Post
https://unopost.com.au/api/mcpLes mêmes prix que sur le site, GST incluse. Sans compte, connexion ni clé d'API.
Vous postez depuis votre propre code ? Le connecteur fonctionne avec tout client MCP ou en HTTP simple, mais chaque lettre se paie sur notre site. Pour poster sans intervention humaine, utilisez l'API x402.
Le connecter
Le connecteur est un serveur MCP distant en Streamable HTTP. Il ne demande aucune connexion : laissez l'authentification désactivée.
- Claude : ouvrez Customize → Connectors, choisissez Add custom connector, nommez-le Unopost et collez l'URL du serveur. Dans une conversation, activez Unopost depuis le menu des outils.
- ChatGPT : ajoutez un connecteur personnalisé en mode développeur avec l'URL du serveur et sans authentification, puis activez-le dans la conversation.
- Claude Code et autres clients : ajoutez-le comme serveur HTTP distant. Tout client qui accepte des serveurs MCP personnalisés utilise la même URL.
claude mcp add --transport http unopost https://unopost.com.au/api/mcp{
"mcpServers": {
"unopost": {
"type": "http",
"url": "https://unopost.com.au/api/mcp"
}
}
}Le parcours d'une lettre
L'assistant confirme les adresses avec l'utilisateur, prépare la lettre et lui donne un lien de vérification privé. L'utilisateur y vérifie l'aperçu, saisit une adresse e-mail et paie par carte. C'est le paiement qui fait partir la lettre.
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.Outils
Les assistants les appellent eux-mêmes. Chaque résultat de prepare_letter, finish_letter_upload et get_letter_status contient reviewUrl, la page privée où l'utilisateur vérifie l'aperçu et paie, et instructions, qui indiquent quoi dire ensuite à l'utilisateur.
get_letter_infoTarifs, limites, heures de dépôt, livraison, suivi et annulation.TOOLprepare_letterPrend le fichier joint par l'utilisateur et crée une lettre.TOOLcreate_letter_uploadRéserve une lettre et renvoie un lien où téléverser le fichier.TOOLfinish_letter_uploadAdresse une lettre téléversée et lance sa mise en page.TOOLget_letter_statusNombre de pages, prix, aperçu, paiement et statut d'envoi.prepare_letter
TOOLprepare_letter
Prend une référence de fichier fournie par l'hôte, comme une pièce jointe dans ChatGPT, télécharge l'original et crée la lettre. Le fichier n'est jamais ressaisi, reconstruit ni envoyé sous forme de texte. Chaque appel crée une nouvelle lettre : un assistant ne l'appelle donc qu'une fois.
Arguments
fileobject · obligatoire- La référence de l'hôte à la pièce jointe originale de l'utilisateur :
download_urletfile_id, avecfile_nameetmime_types'ils sont connus. fileNamestring · facultatif- Le nom du fichier avec son extension, par exemple
letter.pdf. Nécessaire seulement sifile.file_namemanque. recipientAddress · obligatoire- Le destinataire de la lettre, tel que l'utilisateur l'a confirmé. En Australie, sauf si
servicevautinternational. senderAddress · obligatoire- L'adresse de retour de l'utilisateur, imprimée sur l'enveloppe. Elle peut se trouver dans n'importe quel pays.
servicestring · facultatifexpress(par défaut), à plat dans une enveloppe B4 ;regular, pliée dans une enveloppe DL, jusqu'à 12 pages ; ouinternational, avec signature à la livraison.signatureboolean · facultatif- Signature à la livraison, $6 de plus en Australie. Avec elle, le Courrier standard part en Courrier recommandé.
duplexboolean · facultatif- Impression recto verso. Les déclarations solennelles sont toujours imprimées en recto.
monoboolean · facultatif- Impression en noir et blanc. Par défaut, la couleur reste en couleur, sans supplément.
stapleboolean · facultatif- Agrafage des pages, une fois dans le coin supérieur gauche. Uniquement pour les documents de 12 pages au plus ; un document plus long est refusé lors du calcul du prix. Par défaut : false.
foldboolean · facultatif- Plier une lettre Express Post ou internationale de 12 pages maximum dans une enveloppe plus petite.
preparedForstring · facultatif- Uniquement si vous écrivez pour une entreprise à l'un de ses clients : le nom de l'entreprise, 60 caractères maximum. La page de paiement l'affiche comme ce que l'assistant nous a indiqué, non comme vérifié, et les noms tels qu'Unopost, Australia Post, une banque ou un organisme public sont refusés.
notifyEmailstring · facultatif- Avec
preparedFor: l'adresse e-mail de l'entreprise. Elle reçoit une copie de chaque e-mail concernant la lettre, du paiement à la livraison, et le client voit cette adresse avant de payer. customerEmailstring · facultatif- L'adresse e-mail du client qui paie, si vous l'avez. La page de paiement s'ouvre avec ce champ prérempli ; les e-mails de suivi y sont envoyés.
Adresse
name, line1 et suburb sont obligatoires ; les noms et les lignes acceptent jusqu'à 40 caractères. En Australie, le code postal détermine l'État. Pour l'étranger, ajoutez country, ainsi qu'un numéro de mobile chinois dans phone pour une lettre vers la Chine.
namestring · obligatoire- Le nom complet de la personne.
companystring · facultatif- Une entreprise ou un organisme.
line1string · obligatoire- L'adresse postale, ou une PO Box telle que
"PO Box 123". line2string · facultatif- Une seconde ligne d'adresse.
suburbstring · obligatoire- Le quartier ou la ville.
statestring · facultatif- À omettre en Australie : le code postal le détermine. S'il est fourni, l'une des valeurs
ACT,NSW,NT,QLD,SA,TAS,VICouWA, en accord avec le code postal. À l'étranger, la région, si le pays en utilise une. postcodestring · facultatif- Quatre chiffres, obligatoire en Australie. À l'étranger, le code postal, si le pays en utilise un.
countrystring · facultatif- À omettre pour l'Australie. Sinon, le nom du pays en anglais. Le destinataire ne peut être à l'étranger qu'avec
serviceàinternational. phonestring · facultatif- Uniquement pour un destinataire en Chine : son numéro de mobile chinois, dont China Post a besoin.
{
"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. …"
}Téléverser le fichier vous-même
TOOLcreate_letter_upload → finish_letter_upload
Pour les clients capables de lire le fichier de l'utilisateur et d'envoyer une requête HTTP, mais dont l'hôte n'a pas de références de fichier. create_letter_upload prend le nom du fichier et renvoie uploadUrl, qui expire au bout de 5 minutes. Envoyez-y les octets d'origine par PUT, puis appelez finish_letter_upload avec le jobId et les mêmes champs de lettre que prepare_letter.
curl -X PUT "$UPLOAD_URL" \
-H "Content-Type: application/octet-stream" \
--data-binary @letter.pdfget_letter_status
TOOLget_letter_status
Indique où en est une lettre, avec le pageCount et le costCents définitifs une fois la mise en page faite. Une lettre prend généralement quelques secondes. Interrogez au plus toutes les 5 secondes.
{
"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
Les prix actuels en cents AUD, les pages couvertes par chaque prix, les limites de pages et de fichiers, et des réponses claires sur les heures de dépôt, la livraison, le suivi et l'annulation. Les assistants s'en servent pour répondre aux questions avant de préparer quoi que ce soit.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_letter_info",
"arguments": {}
}
}Limites
pages- Jusqu'à 80 pages par lettre. Divisez un document plus long en plusieurs lettres.
regular- Le Courrier standard, comme toute lettre pliée, accepte jusqu'à 12 pages. Les lettres plus longues partent en Express Post, à plat.
size- Jusqu'à 50 Mo par fichier.
files- PDF, Word (.doc, .docx), JPEG ou PNG. Les documents Word sont mis en page au format A4.
letter- Un fichier par lettre via le connecteur. Le site en accepte jusqu'à 10.
rate- 200 lettres par heure depuis chaque hôte IA.
Statuts
CREATED- Réservée, en attente de son fichier.
CONVERTING- Mise en page en cours.
CONVERTEDAWAITING_PAYMENT- Prête à être vérifiée et payée par l'utilisateur sur
reviewUrl. PAIDPAYINGSENDINGRETRYINGMANUAL_CHECK- Payée. Les lettres payées avant 14 h 30, heure de Melbourne, un jour ouvré sont postées le jour même.
POSTEDUNDELIVERED- Déposée auprès d'Australia Post. Le numéro de suivi a été envoyé par e-mail à l'utilisateur.
DELIVERED- Le suivi d'Australia Post l'indique comme livrée.
FAILED- Non postée.
errorindique pourquoi, etinstructionsque faire ensuite. Une lettre payée est intégralement remboursée. PAYMENT_EXPIRED- Non payée à temps. Son document a été supprimé.
REFUNDED- Annulée ou impossible à poster, et remboursée sur la carte.
Erreurs
Un outil qui échoue renvoie un résultat d'erreur dont le texte, rédigé pour l'assistant, indique ce qui s'est mal passé et quoi faire. Il n'y a pas de codes d'erreur et nous pouvons reformuler les messages : réagissez donc au type d'erreur, pas à sa formulation exacte.
Un outil ne paie ni ne poste jamais, donc une erreur ne coûte jamais rien à l'utilisateur. Mais dès qu'une erreur mentionne une tâche, cette lettre existe : vérifiez-la avec get_letter_status plutôt que d'en préparer une seconde.
arguments- Un argument manque ou est incorrect : une adresse que l'utilisateur devrait confirmer, des options incompatibles, un type de fichier non pris en charge, un
preparedForrefusé ou une adresse e-mail mal formée. Le message le précise. Corrigez-le et rappelez l'outil ; rien n'a été créé. file- Le fichier original n'a pas pu être récupéré auprès de l'hôte : le lien a expiré, a été refusé, était trop lent ou redirigeait trop souvent, pointe vers une adresse privée, ou le fichier est vide ou dépasse 50 Mo. Rien n'a été posté. Obtenez une nouvelle référence de fichier ou utilisez
create_letter_upload; n'envoyez jamais une copie texte à la place. job …- Le message commence par
job …:quand la lettre a été créée mais qu'une étape ultérieure a échoué. Appelezget_letter_statusavec cet identifiant de tâche, puisfinish_letter_uploadsi elle attend encore ses adresses. Ne préparez pas d'autre lettre. rate limit- Trop de lettres depuis cet hôte IA cette heure-ci, ou la limite quotidienne du connecteur est atteinte. Ne réessayez pas en boucle : dites à l'utilisateur de réessayer plus tard ou de l'envoyer sur le site d'Unopost.
paused- Nous avons suspendu les nouvelles lettres pour un temps ; les lettres déjà en cours suivent leur cours. Réessayez plus tard.
not found- Aucune lettre n'a ce
jobId, ou son téléversement a expiré au bout de 24 heures. N'utilisez qu'un identifiant de tâche qu'Unopost a renvoyé à cet utilisateur, et recommencez s'il a expiré. server- Un problème est survenu de notre côté :
Unopost API returned HTTP 5xx. Attendez quelques secondes et réessayez une fois. FAILED- Une lettre impossible à imprimer n'est pas une erreur d'outil :
get_letter_statusrenvoieFAILEDavecerroret desinstructionsclaires, comme diviser un document de plus de 80 pages ou retirer un mot de passe.
Paiement et confidentialité
- Il ne paie ni ne poste jamais. Le connecteur ne renvoie aucun lien de paiement. L'utilisateur paie uniquement sur le site, après avoir vu l'aperçu.
- Le fichier original, inchangé. Les fichiers ne transitent jamais dans les messages MCP et ne sont jamais remplacés par du texte.
- Liens privés. Un identifiant de tâche est la seule clé d'une lettre : les assistants ne le communiquent, avec
reviewUrl, qu'à l'utilisateur. - Annulation avant impression. Une lettre payée peut être annulée depuis
reviewUrl, avec remboursement intégral, tant que nous n'avons pas commencé à l'imprimer. - Supprimés après l'envoi. Les documents sont supprimés une fois la lettre postée, et ceux d'une lettre impayée au bout de 24 heures.
Des webhooks ? Utilisez une boîte de réception
Le connecteur n'a pas de webhooks. Donnez plutôt à l'assistant un notifyEmail correspondant à une boîte de réception que votre logiciel lit. Chaque e-mail concernant une lettre provient de notifications@unopost.com.au et porte la lettre dans ses en-têtes : un service de messagerie qui exécute du code sur le courrier entrant, comme Amazon SES, Postmark, Mailgun ou SendGrid, peut donc traiter chaque mise à jour dès son arrivée.
- Faites pointer
notifyEmailvers une adresse que reçoit votre service de messagerie, par exempleletters@yourbusiness.com.au. - N'acceptez que les e-mails de
notifications@unopost.com.auqui passent la vérification DMARC, et ignorez le reste. - Lisez les en-têtes, pas le texte, qui peut changer. Ignorez un
Unopost-Event-Iddéjà vu.
En-têtes
Unopost-Letter-Id- Le
jobIdde la lettre, tel que le connecteur l'a renvoyé. Unopost-Event- Ce qui s'est passé :
receipt,posted,tracking,retrying,delayed,awaiting-collection,delivered,cancelled,failed,refundedourefunded-printed. Unopost-Event-Id- Identique pour une même nouvelle, quel que soit le nombre d'envois : vous pouvez donc ignorer les doublons.
Unopost-Letter-Status- Le statut de la lettre ensuite :
TO_POST,POSTED,DELAYED,AWAITING_AT_COLLECTION,DELIVERED,CANCELLEDouREFUNDED. Unopost-Tracking-Number- Le numéro de suivi Australia Post, une fois la lettre postée.
Unopost-Copybusinesssur la copie que reçoit une entreprise ; pas sur l'e-mail du client lui-même.
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'),
});
};Les copies commencent dès que le client paie : rien n'arrive donc pour une lettre jamais payée. Consultez get_letter_status jusque-là. Les e-mails du client lui-même portent les mêmes en-têtes. Nous pouvons ajouter des en-têtes, mais nous ne renommerons ni ne supprimerons jamais ceux-ci.
Découverte
Les agents peuvent trouver le connecteur sans qu'on le leur indique. Il figure dans notre catalogue IA, qui renvoie à sa carte de serveur MCP.
- Catalogue IA
/.well-known/ai-catalog.json - Carte de serveur MCP
/.well-known/mcp/server-card.json
Tarifs
| Prestation | Prix |
|---|---|
| Courrier standard, plié pour entrer dans une boîte aux lettres : jusqu'à 12 pages | $10 |
| Courrier recommandé, le Courrier standard remis contre signature : jusqu'à 12 pages | $16 |
| Express Post, à plat en enveloppe B4 : 20 pages incluses, puis $0.30 par page supplémentaire | $20 |
| Express Post avec signature à la livraison : 20 pages incluses, puis $0.30 par page supplémentaire | $26 |
| Suivi, impression couleur, recto verso ou noir et blanc, et agrafage | Gratuit |
Chaque lettre est suivie. Le prix final dépend du nombre de pages, connu une fois la lettre mise en page.
Les lettres préparées via le connecteur sont couvertes, comme toutes les autres, par nos Conditions d'utilisation et notre Politique de confidentialité.