Timbré — Postcards MCP
Deixe um assistente de IA criar e enviar um cartão-postal impresso real: foto + mensagem + endereço postal → pré-visualização → pagamento de €3,99 → impresso e enviado para todo o mundo.
Servidor MCP hospedado
npx add-mcp 'https://rqqazttexbqpsmjnvowj.supabase.co/functions/v1/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
Documentação do conector MCP Timbré
O servidor MCP Timbré permite que um assistente de IA crie, receba o pagamento e envie um cartão-postal impresso real. Ele expõe 4 ferramentas, sem autenticação: o pagamento com cartão é a única etapa solicitada ao usuário.
Conexão
| Item | Valor |
|---|---|
| URL | https://rqqazttexbqpsmjnvowj.supabase.co/functions/v1/mcp |
| Transporte | HTTP Streamable (POST, respostas JSON), JSON-RPC 2.0 |
| Versões de protocolo | 2025-06-18, 2025-03-26, 2024-11-05 |
| Autenticação | Nenhuma |
| Capacidades | tools |
| Preço | €3,99 com IVA por cartão, impressão e envio incluídos |
Fluxo do pedido
preview_postcardcria o pedido e retorna a pré-visualização (frente e verso). Status:pending_payment.- O assistente mostra ambas as imagens ao usuário e aguarda aprovação.
create_payment_linkretorna um link de pagamento seguro para entregar ao usuário.- Após o pagamento,
check_and_sendverifica o pagamento no servidor e, em seguida, envia o cartão para impressão. Status:sent. order_statusfornece o progresso: preparação, impressão, entrega ao serviço postal.
Status possíveis: pending_payment → paid → sent ou failed; pending_payment → expired após 7 dias sem pagamento.
Garantias:
- Nenhum cartão é enviado sem um pagamento confirmado pelo servidor (sessão paga, mesmo pedido, valor correto).
- Um pedido só pode produzir um cartão, mesmo que
check_and_sendseja chamado várias vezes. - Um pedido pago cujo envio nunca foi solicitado é enviado automaticamente (verificação horária).
Ferramentas
preview_postcard — Pré-visualizar um cartão-postal
Cria o pedido e gera a pré-visualização. Anotações: readOnlyHint: false, destructiveHint: false, openWorldHint: true.
| Parâmetro | Tipo | Obrigatório | Regra |
|---|---|---|---|
message | string | sim | 1 a 2.000 caracteres, alfabeto latino; emojis removidos |
photo_url | string | sim | URL https pública de uma imagem, máx. 25 MB, sem redirecionamento |
firstname | string | sim | 1 a 70 caracteres |
lastname | string | sim | 1 a 70 caracteres |
address | string | sim | 1 a 90 caracteres |
postal_code | string | sim | 1 a 12 caracteres |
city | string | sim | 1 a 70 caracteres |
country | string | não | Nome do país em francês (ex.: BELGIQUE, ROYAUME-UNI, ETATS-UNIS); padrão FRANCE |
language | string | não | Código ISO 639-1 do remetente, para a legenda do código QR (fr, en, es, it, de, pt, nl); padrão en |
Resposta: order_id, apercu_recto_url, apercu_verso_url, orientation, destinataire, prix, prochaine_etape; caracteres_retires e avertissement se emojis foram removidos.
create_payment_link — Criar o link de pagamento
Chame após a aprovação da pré-visualização. Retorna o mesmo link enquanto ele for válido. Anotações: readOnlyHint: false, destructiveHint: false, openWorldHint: true.
| Parâmetro | Tipo | Obrigatório | Regra |
|---|---|---|---|
order_id | string | sim | 12 caracteres hexadecimais |
Resposta: order_id, lien_paiement, mode, prochaine_etape.
check_and_send — Verificar pagamento e enviar
Verifica o pagamento; se confirmado, envia o cartão para impressão. Ação irreversível. Anotações: readOnlyHint: false, destructiveHint: true, openWorldHint: true.
| Parâmetro | Tipo | Obrigatório | Regra |
|---|---|---|---|
order_id | string | sim | 12 caracteres hexadecimais |
Resposta: statut, paye, reference_envoi, info; se não pago: paye: false e nada é enviado.
order_status — Status do pedido
Fornece o status do pedido e, se o cartão já saiu, seu progresso. Anotações: readOnlyHint: true, openWorldHint: true.
| Parâmetro | Tipo | Obrigatório | Regra |
|---|---|---|---|
order_id | string | sim | 12 caracteres hexadecimais |
Resposta para um cartão enviado: etape (cartão em preparação, aguardando impressão, imprimindo, impresso, entregue ao serviço postal), envoyee_le, remise_service_postal, delai_indicatif.
Limites
| Limite | Valor |
|---|---|
| Pré-visualizações por minuto (todos os usuários) | 20 |
| Pré-visualizações por dia (todos os usuários) | 500 |
| Tamanho da foto | 25 MB |
| Comprimento da mensagem | 2.000 caracteres, tamanho do texto reduzido automaticamente |
| Países | 218, nomes em francês |
| Rastreamento | Até a entrega ao serviço postal (sem rastreamento de entrega) |
Erros
Erros de ferramenta são retornados com isError: true e um texto em francês destinado ao usuário: campo ausente ou longo demais, país não reconhecido, URL de foto inválida, foto inacessível ou pesada demais, mensagem longa demais para o cartão, caracteres não latinos, muitas solicitações, order_id inválido. Erros de protocolo seguem JSON-RPC (-32700, -32601, -32603).
Exemplo
curl -X POST https://rqqazttexbqpsmjnvowj.supabase.co/functions/v1/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'