Timbré — Postcards MCP
Permite que un asistente de IA cree y envíe por correo una postal impresa real: foto + mensaje + dirección postal → vista previa → pago de €3.99 → impresa y enviada a todo el mundo.
Servidor MCP alojado
npx add-mcp 'https://rqqazttexbqpsmjnvowj.supabase.co/functions/v1/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Documentación del conector MCP de Timbré
El servidor MCP de Timbré permite a un asistente de IA crear, cobrar y enviar una postal impresa real. Expone 4 herramientas, sin autenticación: el pago con tarjeta es el único paso que se solicita al usuario.
Conexión
| Elemento | Valor |
|---|---|
| URL | https://rqqazttexbqpsmjnvowj.supabase.co/functions/v1/mcp |
| Transporte | HTTP Streamable (POST, respuestas JSON), JSON-RPC 2.0 |
| Versiones de protocolo | 2025-06-18, 2025-03-26, 2024-11-05 |
| Autenticación | Ninguna |
| Capacidades | tools |
| Precio | 3,99 € IVA incluido por tarjeta, impresión y envío incluidos |
Flujo de pedido
preview_postcardcrea el pedido y devuelve la vista previa (anverso + reverso). Estado:pending_payment.- El asistente muestra ambas imágenes al usuario y espera su aprobación.
create_payment_linkdevuelve un enlace de pago seguro para entregar al usuario.- Después del pago,
check_and_sendverifica el pago en el servidor y luego envía la tarjeta a imprimir. Estado:sent. order_statusofrece el progreso: preparación, impresión, entrega al servicio postal.
Estados posibles: pending_payment → paid → sent o failed; pending_payment → expired después de 7 días sin pago.
Garantías:
- No se envía ninguna tarjeta sin un pago confirmado por el servidor (sesión pagada, mismo pedido, importe correcto).
- Un pedido solo puede producir una tarjeta, incluso si
check_and_sendse llama varias veces. - Un pedido pagado cuyo envío nunca se solicitó se envía automáticamente (verificación cada hora).
Herramientas
preview_postcard — Vista previa de una postal
Crea el pedido y genera la vista previa. Anotaciones: readOnlyHint: false, destructiveHint: false, openWorldHint: true.
| Parámetro | Tipo | Obligatorio | Regla |
|---|---|---|---|
message | cadena | sí | De 1 a 2.000 caracteres, alfabeto latino; se eliminan los emojis |
photo_url | cadena | sí | URL https pública de una imagen, máx. 25 MB, sin redirección |
firstname | cadena | sí | De 1 a 70 caracteres |
lastname | cadena | sí | De 1 a 70 caracteres |
address | cadena | sí | De 1 a 90 caracteres |
postal_code | cadena | sí | De 1 a 12 caracteres |
city | cadena | sí | De 1 a 70 caracteres |
country | cadena | no | Nombre del país en francés (p. ej. BELGIQUE, ROYAUME-UNI, ETATS-UNIS); por defecto FRANCE |
language | cadena | no | Código ISO 639-1 del remitente, para el pie del código QR (fr, en, es, it, de, pt, nl); por defecto en |
Respuesta: order_id, apercu_recto_url, apercu_verso_url, orientation, destinataire, prix, prochaine_etape; caracteres_retires y avertissement si se eliminaron emojis.
create_payment_link — Crear el enlace de pago
Se llama después de que la vista previa sea aprobada. Devuelve el mismo enlace mientras sea válido. Anotaciones: readOnlyHint: false, destructiveHint: false, openWorldHint: true.
| Parámetro | Tipo | Obligatorio | Regla |
|---|---|---|---|
order_id | cadena | sí | 12 caracteres hexadecimales |
Respuesta: order_id, lien_paiement, mode, prochaine_etape.
check_and_send — Verificar el pago y enviar
Verifica el pago; si se confirma, envía la tarjeta a imprimir. Acción irreversible. Anotaciones: readOnlyHint: false, destructiveHint: true, openWorldHint: true.
| Parámetro | Tipo | Obligatorio | Regla |
|---|---|---|---|
order_id | cadena | sí | 12 caracteres hexadecimales |
Respuesta: statut, paye, reference_envoi, info; si no se ha pagado: paye: false y no se envía nada.
order_status — Estado del pedido
Proporciona el estado del pedido y, si la tarjeta ha salido, su progreso. Anotaciones: readOnlyHint: true, openWorldHint: true.
| Parámetro | Tipo | Obligatorio | Regla |
|---|---|---|---|
order_id | cadena | sí | 12 caracteres hexadecimales |
Respuesta para una tarjeta enviada: etape (tarjeta en preparación, en espera de impresión, imprimiendo, impresa, entregada al servicio postal), envoyee_le, remise_service_postal, delai_indicatif.
Límites
| Límite | Valor |
|---|---|
| Vistas previas por minuto (todos los usuarios) | 20 |
| Vistas previas por día (todos los usuarios) | 500 |
| Tamaño de la foto | 25 MB |
| Longitud del mensaje | 2.000 caracteres, el tamaño del texto se reduce automáticamente |
| Países | 218, nombres en francés |
| Seguimiento | Hasta la entrega al servicio postal (sin seguimiento de entrega) |
Errores
Los errores de las herramientas se devuelven con isError: true y un texto en francés destinado al usuario: campo faltante o demasiado largo, país no reconocido, URL de foto no válida, foto inaccesible o demasiado pesada, mensaje demasiado largo para la tarjeta, caracteres no latinos, demasiadas solicitudes, order_id no válido. Los errores de protocolo siguen JSON-RPC (-32700, -32601, -32603).
Ejemplo
curl -X POST https://rqqazttexbqpsmjnvowj.supabase.co/functions/v1/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'