Conector MCP
Poste uma carta pelo seu assistente de IA
Adicione uma URL ao Claude, ao ChatGPT ou a qualquer cliente MCP. Seu assistente prepara o seu documento original para ser impresso em A4 e postado pela Australia Post, com rastreamento. Você confere a prévia e paga no nosso site, então nada é postado sem você.
$10 correio comum$20 Express Post
https://unopost.com.au/api/mcpOs mesmos preços do site, GST incluído. Sem conta, login nem chave de API.
Vai enviar a partir do seu próprio código? O conector funciona com qualquer cliente MCP ou HTTP simples, mas cada carta é paga no nosso site. Para enviar sem ninguém intervir, use a API x402.
Conectar
O conector é um servidor MCP remoto via Streamable HTTP. Ele não exige login, então deixe a autenticação desativada.
- Claude: abra Customize → Connectors, escolha Add custom connector, dê o nome Unopost e cole a URL do servidor. Em uma conversa, ative a Unopost no menu de ferramentas.
- ChatGPT: adicione um conector personalizado no modo de desenvolvedor com a URL do servidor e sem autenticação, depois ative-o na conversa.
- Claude Code e outros clientes: adicione-o como servidor HTTP remoto. Qualquer cliente que aceite servidores MCP personalizados usa a mesma URL.
claude mcp add --transport http unopost https://unopost.com.au/api/mcp{
"mcpServers": {
"unopost": {
"type": "http",
"url": "https://unopost.com.au/api/mcp"
}
}
}Como uma carta é enviada
O assistente confirma os endereços com o usuário, prepara a carta e entrega ao usuário um link de revisão privado. Lá, o usuário confere a prévia, informa um e-mail e paga com cartão. É o pagamento que faz a carta ser postada.
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.Ferramentas
Os assistentes as chamam por conta própria. Todo resultado de prepare_letter, finish_letter_upload e get_letter_status traz reviewUrl, a página privada onde o usuário confere a prévia e paga, e instructions, que dizem o que informar ao usuário em seguida.
get_letter_infoPreços, limites, horários de postagem, entrega, rastreamento e cancelamento.TOOLprepare_letterRecebe o arquivo que o usuário anexou e inicia uma carta.TOOLcreate_letter_uploadReserva uma carta e retorna um link para enviar o arquivo.TOOLfinish_letter_uploadEndereça uma carta enviada e começa a diagramá-la.TOOLget_letter_statusNúmero de páginas, preço, prévia, pagamento e status da postagem.prepare_letter
TOOLprepare_letter
Recebe uma referência de arquivo do host, como um anexo no ChatGPT, baixa o original e inicia a carta. O arquivo nunca é redigitado, reconstruído nem enviado como texto. Cada chamada cria uma nova carta, então o assistente a chama uma única vez.
Argumentos
fileobject · obrigatório- A referência do host ao anexo original do usuário:
download_urlefile_id, comfile_nameemime_type, se conhecidos. fileNamestring · opcional- O nome do arquivo com a extensão, como
letter.pdf. Só é necessário quando faltafile.file_name. recipientAddress · obrigatório- Para quem vai a carta, conforme confirmado pelo usuário. Na Austrália, a menos que
servicesejainternational. senderAddress · obrigatório- O endereço de devolução do usuário, impresso no envelope. Pode ser em qualquer país.
servicestring · opcionalexpress(o padrão), sem dobrar em um envelope B4;regular, dobrada em um envelope DL, até 12 páginas; ouinternational, com assinatura na entrega.signatureboolean · opcional- Assinatura na entrega, $6 a mais na Austrália. O correio comum com assinatura segue pelo Correio registrado.
duplexboolean · opcional- Imprime em frente e verso. Declarações juramentadas (statutory declarations) são sempre impressas só na frente.
monoboolean · opcional- Imprime em preto e branco. Por padrão, o que é colorido sai em cores, sem custo adicional.
stapleboolean · opcional- Grampeia as páginas uma vez no canto superior esquerdo. Só para documentos de até 12 páginas; um mais longo é recusado ao ser precificado. O padrão é false.
foldboolean · opcional- Dobra uma carta Express Post ou internacional de até 12 páginas em um envelope menor.
preparedForstring · opcional- Somente quando você escreve em nome de uma empresa para um de seus clientes: o nome da empresa, com até 60 caracteres. A página de pagamento o mostra como algo que o assistente nos informou, não como verificado, e nomes como Unopost, Australia Post, um banco ou um órgão governamental são recusados.
notifyEmailstring · opcional- Com
preparedFor: o e-mail da empresa. Ela recebe uma cópia de cada e-mail sobre a carta, do pagamento à entrega, e o cliente vê esse endereço antes de pagar. customerEmailstring · opcional- O e-mail do cliente que paga, se você o tiver. A página de pagamento já abre com ele preenchido; os e-mails de rastreamento vão para ele.
Endereço
name, line1 e suburb são obrigatórios; nomes e linhas aceitam até 40 caracteres. Na Austrália, o CEP (postcode) define o estado. No exterior, adicione country e, para uma carta à China, um celular chinês em phone.
namestring · obrigatório- O nome completo da pessoa.
companystring · opcional- Uma empresa ou organização.
line1string · obrigatório- O endereço (rua e número), ou uma caixa postal, como
"PO Box 123". line2string · opcional- Uma segunda linha de endereço.
suburbstring · obrigatório- O bairro ou a cidade.
statestring · opcional- Na Austrália, deixe de fora: o código postal o define. Se informado, um destes:
ACT,NSW,NT,QLD,SA,TAS,VICouWA, de acordo com o código postal. No exterior, a região, se o país usar uma. postcodestring · opcional- Quatro dígitos, obrigatório na Austrália. No exterior, o código postal, se o país usar um.
countrystring · opcional- Deixe de fora para a Austrália. Caso contrário, o nome do país em inglês. O destinatário só pode estar no exterior com
servicedefinido comointernational. phonestring · opcional- Só para um destinatário na China: o número de celular chinês dele, que a China Post exige.
{
"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. …"
}Envie o arquivo você mesmo
TOOLcreate_letter_upload → finish_letter_upload
Para clientes que conseguem ler o arquivo do usuário e fazer uma requisição HTTP, mas cujo host não tem referências de arquivo. create_letter_upload recebe o nome do arquivo e retorna uploadUrl, que expira em 5 minutos. Faça um PUT dos bytes originais para ela e depois chame finish_letter_upload com o jobId e os mesmos campos de carta de prepare_letter.
curl -X PUT "$UPLOAD_URL" \
-H "Content-Type: application/octet-stream" \
--data-binary @letter.pdfget_letter_status
TOOLget_letter_status
Informa em que etapa está uma carta, com o pageCount e o costCents finais depois da diagramação. Uma carta costuma levar alguns segundos. Consulte no máximo a cada 5 segundos.
{
"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
Preços atuais em centavos de AUD, as páginas cobertas por cada preço, limites de páginas e de arquivos, e respostas em linguagem simples sobre horários de postagem, entrega, rastreamento e cancelamento. Os assistentes a usam para responder a perguntas antes de preparar qualquer coisa.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_letter_info",
"arguments": {}
}
}Limites
pages- Até 80 páginas por carta. Divida um documento mais longo em cartas separadas.
regular- O correio comum, e qualquer carta dobrada, aceita até 12 páginas. Cartas mais longas seguem pelo Express Post, sem dobrar.
size- Até 50 MB por arquivo.
files- PDF, Word (.doc, .docx), JPEG ou PNG. Documentos do Word são diagramados em A4.
letter- Um arquivo por carta pelo conector. O site aceita até 10.
rate- 200 cartas por hora de cada host de IA.
Status
CREATED- Reservada, aguardando o arquivo.
CONVERTING- Sendo diagramada.
CONVERTEDAWAITING_PAYMENT- Pronta para o usuário conferir e pagar em
reviewUrl. PAIDPAYINGSENDINGRETRYINGMANUAL_CHECK- Paga. Cartas pagas até as 14h30, horário de Melbourne, em um dia útil são postadas no mesmo dia.
POSTEDUNDELIVERED- Postada na Australia Post. O número de rastreamento foi enviado ao usuário por e-mail.
DELIVERED- O rastreamento da Australia Post mostra que foi entregue.
FAILED- Não postada.
errordiz o motivo, einstructions, o que fazer em seguida. Uma carta paga é reembolsada integralmente. PAYMENT_EXPIRED- Não foi paga a tempo. O documento foi excluído.
REFUNDED- Cancelada ou não pôde ser postada, e reembolsada no cartão.
Erros
Uma ferramenta que falha retorna um resultado de erro cujo texto, escrito para o assistente, diz o que deu errado e o que fazer. Não há códigos de erro, e podemos mudar a redação das mensagens, então aja conforme o tipo de erro, não conforme as palavras exatas.
Uma ferramenta nunca cobra nem posta, então um erro nunca custa nada ao usuário. Mas, quando um erro cita um job, essa carta existe: confira-a com get_letter_status em vez de preparar uma segunda.
arguments- Um argumento está faltando ou errado: um endereço que o usuário deveria confirmar, opções que não combinam, um tipo de arquivo não suportado, um
preparedForrecusado ou um e-mail malformado. A mensagem indica qual. Corrija e chame de novo; nada foi criado. file- Não foi possível obter o arquivo original do host: o link expirou, foi recusado, demorou demais ou redirecionou vezes demais, aponta para um endereço privado, ou o arquivo está vazio ou passa de 50 MB. Nada foi postado. Obtenha uma nova referência de arquivo ou use
create_letter_upload; nunca envie uma cópia em texto no lugar. job …- A mensagem começa com
job …:quando a carta foi criada, mas uma etapa posterior falhou. Chameget_letter_statuscom esse ID do job e depoisfinish_letter_uploadse ela ainda estiver aguardando os endereços. Não prepare outra carta. rate limit- Cartas demais deste host de IA nesta hora, ou o limite diário do conector foi atingido. Não tente de novo em loop: diga ao usuário para tentar mais tarde ou enviar pelo site da Unopost.
paused- Pausamos novas cartas por um tempo; as cartas já em andamento continuam. Tente novamente mais tarde.
not found- Nenhuma carta tem esse
jobId, ou o upload expirou após 24 horas. Use somente um ID do job que a Unopost retornou a este usuário e comece de novo se ele expirou. server- Algo deu errado do nosso lado:
Unopost API returned HTTP 5xx. Aguarde alguns segundos e tente mais uma vez. FAILED- Uma carta que não pode ser impressa não é um erro da ferramenta:
get_letter_statusretornaFAILEDcomerroreinstructionsclaras, como dividir um documento com mais de 80 páginas ou remover uma senha.
Pagamento e privacidade
- Ele nunca paga nem posta. O conector não retorna nenhum link de pagamento. O usuário paga somente no site, depois de ver a prévia.
- O arquivo original, sem alterações. Os arquivos nunca trafegam dentro de mensagens MCP e nunca são substituídos por texto.
- Links privados. O ID do job é a única chave de uma carta, então os assistentes só o compartilham, assim como o
reviewUrl, com o usuário. - Cancele antes da impressão. Uma carta paga pode ser cancelada com reembolso integral pelo
reviewUrlaté começarmos a imprimi-la. - Excluídos após a postagem. Os documentos são excluídos assim que a carta é postada, e os de uma carta não paga, após 24 horas.
Webhooks? Use uma caixa de entrada
O conector não tem webhooks. Em vez disso, dê ao assistente um notifyEmail de uma caixa de entrada que o seu software lê. Todo e-mail sobre uma carta vem de notifications@unopost.com.au e traz a carta nos cabeçalhos, então um serviço de e-mail que executa código ao receber mensagens, como Amazon SES, Postmark, Mailgun ou SendGrid, pode agir sobre cada atualização assim que ela chega.
- Aponte o
notifyEmailpara um endereço que o seu serviço de e-mail recebe, comoletters@yourbusiness.com.au. - Aceite apenas e-mails de
notifications@unopost.com.auque passem no DMARC e descarte o resto. - Leia os cabeçalhos, não o texto, que pode mudar. Descarte um
Unopost-Event-Idque você já viu.
Cabeçalhos
Unopost-Letter-Id- O
jobIdda carta, como o conector o retornou. Unopost-Event- O que aconteceu:
receipt,posted,tracking,retrying,delayed,awaiting-collection,delivered,cancelled,failed,refundedourefunded-printed. Unopost-Event-Id- É o mesmo para a mesma notícia, não importa quantas vezes ela seja enviada, então você pode descartar repetições.
Unopost-Letter-Status- O status da carta depois do evento:
TO_POST,POSTED,DELAYED,AWAITING_AT_COLLECTION,DELIVERED,CANCELLEDouREFUNDED. Unopost-Tracking-Number- O número de rastreamento da Australia Post, assim que a carta é postada.
Unopost-Copybusinessna cópia que uma empresa recebe; não no e-mail do próprio cliente.
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'),
});
};As cópias começam quando o cliente paga, então nada chega para uma carta que nunca foi paga: consulte get_letter_status até lá. Os e-mails do próprio cliente trazem os mesmos cabeçalhos. Podemos adicionar cabeçalhos, mas nunca renomear nem remover estes.
Descoberta
Os agentes encontram o conector sem que ninguém precise avisá-los. Ele está listado no nosso catálogo de IA, que aponta para o seu MCP server card.
- Catálogo de IA
/.well-known/ai-catalog.json - MCP server card
/.well-known/mcp/server-card.json
Preços
| Item | Preço |
|---|---|
| Correio comum, dobrada para caber na caixa de correio: até 12 páginas | $10 |
| Correio registrado, o correio comum com assinatura na entrega: até 12 páginas | $16 |
| Express Post, sem dobrar em envelope B4: 20 páginas incluídas, depois $0.30 por página adicional | $20 |
| Express Post com assinatura na entrega: 20 páginas incluídas, depois $0.30 por página adicional | $26 |
| Rastreamento, impressão em cores, frente e verso ou preto e branco, e grampeamento | Grátis |
Toda carta tem rastreamento. O preço final depende do número de páginas, que é conhecido depois que a carta é diagramada.
As cartas preparadas pelo conector estão sujeitas aos nossos Termos e à nossa Política de Privacidade, como qualquer outra.