unopost

Conector MCP

Envíe una carta desde su asistente de IA

Añada una URL a Claude, ChatGPT o cualquier cliente MCP. Su asistente prepara su documento original para imprimirlo en A4 y enviarlo por Australia Post, con seguimiento. Usted revisa la vista previa y paga en nuestro sitio web, así que nada se envía sin usted.

$10 correo ordinario$20 Express Post

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

Los mismos precios que en el sitio web, GST incluido. Sin cuenta, inicio de sesión ni clave de API.

¿Envías desde tu propio código? El conector funciona con cualquier cliente MCP o con HTTP simple, pero cada carta se paga en nuestro sitio web. Para enviar sin que intervenga nadie, usa la API x402.

ConécteloTarjeta del servidor

Conéctelo

El conector es un servidor MCP remoto sobre Streamable HTTP. No requiere inicio de sesión, así que deje la autenticación desactivada.

  • Claude: abra Customize → Connectors, elija Add custom connector, llámelo Unopost y pegue la URL del servidor. En un chat, active Unopost desde el menú de herramientas.
  • ChatGPT: añada un conector personalizado en modo desarrollador con la URL del servidor y sin autenticación, y luego actívelo en el chat.
  • Claude Code y otros clientes: añádalo como servidor HTTP remoto. Cualquier cliente que admita servidores MCP personalizados usa la misma 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"
    }
  }
}

Cómo se envía una carta

  1. Confirmar las direcciones
  2. Preparar la carta
  3. Esperar la maquetación
  4. El usuario paga en el sitio web

El asistente confirma las direcciones con el usuario, prepara la carta y le da un enlace privado de revisión. Allí el usuario revisa la vista previa, introduce un correo electrónico y paga con tarjeta. El pago es lo que envía la carta.

Lo que dice el usuario
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.

Herramientas

Los asistentes las llaman por sí mismos. Cada resultado de prepare_letter, finish_letter_upload y get_letter_status incluye reviewUrl, la página privada donde el usuario revisa la vista previa y paga, e instructions, que indican qué decirle al usuario a continuación.

prepare_letter

TOOLprepare_letter

Toma una referencia de archivo del host, como un adjunto en ChatGPT, descarga el original e inicia la carta. El archivo nunca se vuelve a teclear, se reconstruye ni se envía como texto. Cada llamada crea una carta nueva, así que un asistente la llama una sola vez.

Argumentos

fileobject · obligatorio
La referencia del host al adjunto original del usuario: download_url y file_id, con file_name y mime_type si se conocen.
fileNamestring · opcional
El nombre del archivo con su extensión, como letter.pdf. Solo hace falta si falta file.file_name.
recipientAddress · obligatorio
A quién va la carta, tal como lo confirmó el usuario. En Australia, salvo que service sea international.
senderAddress · obligatorio
La dirección de devolución del usuario, impresa en el sobre. Puede estar en cualquier país.
servicestring · opcional
express (por defecto), sin doblar en un sobre B4; regular, doblada en un sobre DL, hasta 12 páginas; o international, con firma a la entrega.
signatureboolean · opcional
Firma a la entrega, $6 más en Australia. Con ella, el correo ordinario va por correo certificado.
duplexboolean · opcional
Imprimir a doble cara. Las declaraciones juradas siempre se imprimen a una cara.
monoboolean · opcional
Imprimir en blanco y negro. Por defecto, el color se imprime en color, sin costo adicional.
stapleboolean · opcional
Grapar las páginas una vez en la esquina superior izquierda. Solo para documentos de hasta 12 páginas; uno más largo se rechaza al calcular el precio. Por defecto, false.
foldboolean · opcional
Doblar una carta por Express Post o internacional de hasta 12 páginas en un sobre más pequeño.
preparedForstring · opcional
Solo cuando escriba en nombre de una empresa a uno de sus clientes: el nombre de la empresa, hasta 60 caracteres. La página de pago lo muestra como lo que nos dijo el asistente, no como verificado, y se rechazan nombres como Unopost, Australia Post, un banco o un organismo público.
notifyEmailstring · opcional
Con preparedFor: el correo electrónico de la empresa. Recibe una copia de cada correo sobre la carta, del pago a la entrega, y el cliente ve esta dirección antes de pagar.
customerEmailstring · opcional
El correo electrónico del cliente que paga, si lo tiene. La página de pago aparece con él ya rellenado; los correos de seguimiento se envían a esa dirección.

Dirección

name, line1 y suburb son obligatorios; los nombres y las líneas admiten hasta 40 caracteres. En Australia, el código postal determina el estado. Para el extranjero, añada country, y un número de móvil chino en phone para una carta a China.

namestring · obligatorio
El nombre completo de la persona.
companystring · opcional
Una empresa u organización.
line1string · obligatorio
La dirección postal, o un PO Box como "PO Box 123".
line2string · opcional
Una segunda línea de dirección.
suburbstring · obligatorio
El barrio (suburb) o la localidad.
statestring · opcional
Omítalo en Australia: lo determina el código postal. Si se indica, uno de ACT, NSW, NT, QLD, SA, TAS, VIC o WA, en correspondencia con el código postal. En el extranjero, la región, si el país la usa.
postcodestring · opcional
Cuatro dígitos, obligatorio en Australia. En el extranjero, el código postal, si el país lo usa.
countrystring · opcional
Omítalo si es Australia. Si no, el nombre del país en inglés. El destinatario solo puede estar en el extranjero con service en international.
phonestring · opcional
Solo para un destinatario en China: su número de móvil chino, que China Post necesita.
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. …"
}

Subir el archivo usted mismo

TOOLcreate_letter_upload → finish_letter_upload

Para clientes que pueden leer el archivo del usuario y hacer una solicitud HTTP, pero cuyo host no tiene referencias de archivo. create_letter_upload recibe el nombre del archivo y devuelve uploadUrl, que caduca en 5 minutos. Haga PUT de los bytes originales a esa URL y luego llame a finish_letter_upload con el jobId y los mismos campos de la carta que 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

Indica en qué punto está una carta, con el pageCount y el costCents finales una vez maquetada. Una carta suele tardar unos segundos. Consulte como máximo 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

Precios actuales en centavos de AUD, las páginas que cubre cada precio, los límites de páginas y archivos, y respuestas sencillas sobre horarios de envío, entrega, seguimiento y cancelación. Los asistentes la usan para responder preguntas antes de preparar nada.

tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_letter_info",
    "arguments": {}
  }
}

Límites

pages
Hasta 80 páginas por carta. Divida un documento más largo en cartas separadas.
regular
El correo ordinario, y cualquier carta doblada, admite hasta 12 páginas. Las cartas más largas van por Express Post, sin doblar.
size
Hasta 50 MB por archivo.
files
PDF, Word (.doc, .docx), JPEG o PNG. Los documentos de Word se maquetan en A4.
letter
Un archivo por carta a través del conector. El sitio web admite hasta 10.
rate
200 cartas por hora desde cada host de IA.

Estados

CREATED
Reservada, a la espera de su archivo.
CONVERTING
En maquetación.
CONVERTED AWAITING_PAYMENT
Lista para que el usuario la revise y pague en reviewUrl.
PAID PAYING SENDING RETRYING MANUAL_CHECK
Pagada. Las cartas pagadas antes de las 14:30, hora de Melbourne, de un día hábil se envían ese día.
POSTED UNDELIVERED
Depositada en Australia Post. El número de seguimiento se ha enviado al usuario por correo electrónico.
DELIVERED
El seguimiento de Australia Post la muestra como entregada.
FAILED
No enviada. error indica el motivo, e instructions, qué hacer a continuación. Una carta pagada se reembolsa íntegramente.
PAYMENT_EXPIRED
No se pagó a tiempo. Su documento se ha eliminado.
REFUNDED
Cancelada o imposible de enviar, y reembolsada a la tarjeta.

Errores

Una herramienta que falla devuelve un resultado de error cuyo texto, escrito para el asistente, indica qué salió mal y qué hacer. No hay códigos de error y podemos cambiar la redacción de los mensajes, así que actúe según el tipo de error, no según sus palabras exactas.

Una herramienta nunca cobra ni envía, así que un error nunca le cuesta nada al usuario. Pero en cuanto un error menciona un trabajo, esa carta existe: compruébela con get_letter_status en lugar de preparar una segunda.

arguments
Falta un argumento o es incorrecto: una dirección que el usuario debería confirmar, opciones incompatibles, un tipo de archivo no admitido, un preparedFor rechazado o un correo electrónico mal formado. El mensaje lo indica. Corríjalo y vuelva a llamar; no se ha creado nada.
file
No se pudo obtener el archivo original del host: el enlace caducó, fue rechazado, tardó demasiado o redirigió demasiadas veces, apunta a una dirección privada, o el archivo está vacío o supera los 50 MB. No se ha enviado nada. Consiga una nueva referencia de archivo o use create_letter_upload; nunca envíe una copia en texto en su lugar.
job …
El mensaje empieza por job …: cuando la carta se creó pero falló un paso posterior. Llame a get_letter_status con ese ID de trabajo y luego a finish_letter_upload si aún espera sus direcciones. No prepare otra carta.
rate limit
Demasiadas cartas desde este host de IA en esta hora, o se ha alcanzado el límite diario del conector. No reintente en bucle: dígale al usuario que lo intente más tarde o que la envíe desde el sitio web de Unopost.
paused
Hemos pausado temporalmente las cartas nuevas; las que ya están en curso continúan. Vuelva a intentarlo más tarde.
not found
Ninguna carta tiene ese jobId, o su subida caducó tras 24 horas. Use solo un ID de trabajo que Unopost haya devuelto a este usuario, y empiece de nuevo si caducó.
server
Algo ha fallado por nuestra parte: Unopost API returned HTTP 5xx. Espere unos segundos y vuelva a intentarlo una vez.
FAILED
Una carta que no se puede imprimir no es un error de la herramienta: get_letter_status devuelve FAILED con error e instructions claras, como dividir un documento de más de 80 páginas o quitar una contraseña.

Pago y privacidad

  • Nunca paga ni envía. El conector no devuelve ningún enlace de pago. El usuario solo paga en el sitio web, después de ver la vista previa.
  • El archivo original, sin cambios. Los archivos nunca viajan dentro de mensajes MCP ni se sustituyen por texto.
  • Enlaces privados. Un ID de trabajo es la única llave de una carta, así que los asistentes lo comparten, junto con reviewUrl, solo con el usuario.
  • Cancelación antes de imprimir. Una carta pagada puede cancelarse con reembolso íntegro desde reviewUrl hasta que empecemos a imprimirla.
  • Eliminados tras el envío. Los documentos se eliminan una vez enviada la carta, y los de una carta sin pagar, a las 24 horas.

¿Webhooks? Use una bandeja de entrada

El conector no tiene webhooks. En su lugar, dé al asistente un notifyEmail de una bandeja de entrada que lea su software. Cada correo sobre una carta procede de notifications@unopost.com.au y lleva la carta en sus encabezados, así que un servicio de correo que ejecute código con el correo entrante, como Amazon SES, Postmark, Mailgun o SendGrid, puede actuar ante cada novedad en cuanto llega.

  1. Apunte notifyEmail a una dirección que reciba su servicio de correo, como letters@yourbusiness.com.au.
  2. Acepte solo el correo de notifications@unopost.com.au que supere la verificación DMARC y descarte el resto.
  3. Lea los encabezados, no el texto, que puede cambiar. Descarte un Unopost-Event-Id que ya haya visto.

Encabezados

Unopost-Letter-Id
El jobId de la carta, tal como lo devolvió el conector.
Unopost-Event
Lo que ha pasado: receipt, posted, tracking, retrying, delayed, awaiting-collection, delivered, cancelled, failed, refunded o refunded-printed.
Unopost-Event-Id
Es el mismo para la misma novedad, se envíe las veces que se envíe, así que puede descartar las repeticiones.
Unopost-Letter-Status
El estado de la carta después: TO_POST, POSTED, DELAYED, AWAITING_AT_COLLECTION, DELIVERED, CANCELLED o REFUNDED.
Unopost-Tracking-Number
El número de seguimiento de Australia Post, una vez enviada la carta.
Unopost-Copy
business en la copia que recibe una empresa; no en el correo del propio 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'),
  });
};

Las copias empiezan cuando el cliente paga, así que no llega nada de una carta que nunca se paga: consulte get_letter_status hasta entonces. Los correos que recibe el propio cliente llevan los mismos encabezados. Podemos añadir encabezados, pero nunca cambiaremos el nombre de estos ni los eliminaremos.

Descubrimiento

Los agentes pueden encontrar el conector sin que nadie se lo indique. Figura en nuestro catálogo de IA, que remite a su tarjeta de servidor MCP.

Precios

ConceptoPrecio
Correo ordinario, doblada para que quepa en el buzón: hasta 12 páginas$10
Correo certificado, correo ordinario con firma a la entrega: hasta 12 páginas$16
Express Post, sin doblar en un sobre B4: 20 páginas incluidas; después, $0.30 por cada página adicional$20
Express Post con firma a la entrega: 20 páginas incluidas; después, $0.30 por cada página adicional$26
Seguimiento, impresión en color, a doble cara o en blanco y negro, y grapadoGratis

Todas las cartas llevan seguimiento. El precio final depende del número de páginas, que se conoce una vez maquetada la carta.

Las cartas preparadas a través del conector se rigen, como cualquier otra, por nuestros Términos y nuestra Política de privacidad.