unopost

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

URL do servidor
https://unopost.com.au/api/mcp

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

ConectarServer card

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

Como uma carta é enviada

  1. Confirmar os endereços
  2. Preparar a carta
  3. Aguardar a diagramação
  4. O usuário paga no site

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.

O que o usuário diz
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.

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_url e file_id, com file_name e mime_type, se conhecidos.
fileNamestring · opcional
O nome do arquivo com a extensão, como letter.pdf. Só é necessário quando falta file.file_name.
recipientAddress · obrigatório
Para quem vai a carta, conforme confirmado pelo usuário. Na Austrália, a menos que service seja international.
senderAddress · obrigatório
O endereço de devolução do usuário, impresso no envelope. Pode ser em qualquer país.
servicestring · opcional
express (o padrão), sem dobrar em um envelope B4; regular, dobrada em um envelope DL, até 12 páginas; ou international, 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, VIC ou WA, 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 service definido como international.
phonestring · opcional
Só para um destinatário na China: o número de celular chinês dele, que a China Post exige.
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. …"
}

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.

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

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

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

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.

tools/call
{
  "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.
CONVERTED AWAITING_PAYMENT
Pronta para o usuário conferir e pagar em reviewUrl.
PAID PAYING SENDING RETRYING MANUAL_CHECK
Paga. Cartas pagas até as 14h30, horário de Melbourne, em um dia útil são postadas no mesmo dia.
POSTED UNDELIVERED
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. error diz o motivo, e instructions, 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 preparedFor recusado 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. Chame get_letter_status com esse ID do job e depois finish_letter_upload se 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_status retorna FAILED com error e instructions claras, 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 reviewUrl até 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.

  1. Aponte o notifyEmail para um endereço que o seu serviço de e-mail recebe, como letters@yourbusiness.com.au.
  2. Aceite apenas e-mails de notifications@unopost.com.au que passem no DMARC e descarte o resto.
  3. Leia os cabeçalhos, não o texto, que pode mudar. Descarte um Unopost-Event-Id que você já viu.

Cabeçalhos

Unopost-Letter-Id
O jobId da carta, como o conector o retornou.
Unopost-Event
O que aconteceu: receipt, posted, tracking, retrying, delayed, awaiting-collection, delivered, cancelled, failed, refunded ou refunded-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, CANCELLED ou REFUNDED.
Unopost-Tracking-Number
O número de rastreamento da Australia Post, assim que a carta é postada.
Unopost-Copy
business na cópia que uma empresa recebe; não no e-mail do próprio cliente.
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'),
  });
};

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.

Preços

ItemPreç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 grampeamentoGrá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.