@multifidelidade/multipay-mcp 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,76 @@
1
- # Temporary Holding Version
1
+ # MultiPay MCP
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Servidor [MCP](https://modelcontextprotocol.io) que deixa assistentes de IA (Claude, Cursor, VS Code/Copilot, Windsurf…) **integrarem e testarem** o checkout MultiPay no seu projeto: criar pagamento, consultar, simular o pagador no sandbox, gerar o handler de webhook com verificação de assinatura.
4
+
5
+ > Feito para **desenvolvimento**. Ele nasce em modo seguro: chave de teste (`mp_test_`) e, se você usar uma chave de produção, só leitura.
6
+
7
+ ## Instalar
8
+
9
+ Precisa de Node 20+ e de uma chave **de teste** (peça à Multifidelidade).
10
+
11
+ **Claude Desktop** — `claude_desktop_config.json`:
12
+
13
+ ```json
14
+ {
15
+ "mcpServers": {
16
+ "multipay": {
17
+ "command": "npx",
18
+ "args": ["-y", "@multifidelidade/multipay-mcp"],
19
+ "env": { "MULTIPAY_API_KEY": "mp_test_xxxxxxxxxxxxxxxxxxxxxxxx" }
20
+ }
21
+ }
22
+ }
23
+ ```
24
+
25
+ **Claude Code:** `claude mcp add multipay --env MULTIPAY_API_KEY=mp_test_... -- npx -y @multifidelidade/multipay-mcp`
26
+
27
+ **Cursor** — `.cursor/mcp.json`, **VS Code** — `.vscode/mcp.json` (`"servers"` em vez de `"mcpServers"`): mesmo bloco acima.
28
+
29
+ > Não commite a chave. Use variável de ambiente do seu sistema/IDE.
30
+
31
+ ## O que a IA ganha
32
+
33
+ | Ferramenta | Faz | Muda dados? |
34
+ |---|---|---|
35
+ | `multipay_whoami` | valida a credencial e mostra o ambiente | não |
36
+ | `multipay_create_payment` | cria o link de pagamento (idempotente por `referenceId`) | sim |
37
+ | `multipay_get_payment` | status: pending/paid/expired/canceled | não |
38
+ | `multipay_list_payments` | pagamentos recentes | não |
39
+ | `multipay_cancel_payment` | cancela um pagamento pendente | sim |
40
+ | `multipay_simulate_payment` | **só sandbox**: marca como pago/expirado e dispara o webhook | sim (teste) |
41
+ | `multipay_verify_webhook_signature` | depura a assinatura de um webhook | não |
42
+ | `multipay_integration_snippet` | código pronto: Node, Python, PHP, C# (backend); Swift, Kotlin (app) | não |
43
+
44
+ Resources (a IA lê antes de gerar código): `multipay://guide/integration`, `multipay://guide/webhooks`, `multipay://guide/mobile`, `multipay://openapi`.
45
+ Prompt: **`integrate_checkout`** — conduz a integração inteira na sua stack e testa no sandbox.
46
+
47
+ Exemplo: *"Use o prompt integrate_checkout para o meu projeto Laravel."*
48
+
49
+ ## Segurança (por design)
50
+
51
+ - **Sem chave de produção por padrão.** Com `mp_live_` o servidor fica **somente leitura**. Para criar/cancelar em produção o dono precisa definir `MULTIPAY_ALLOW_LIVE=true` e a IA ainda tem de passar `confirmLive: true` (o prompt orienta a pedir confirmação ao usuário).
52
+ - **Teto de valor em produção:** `MULTIPAY_MAX_AMOUNT_CENTS` (padrão 10000 = R$ 100,00).
53
+ - A chave **nunca** é exibida nem registrada; logs vão para `stderr` (stdout é o protocolo).
54
+ - Não segue redirects (a chave está no header) e exige `https` (exceto `localhost`).
55
+ - Retry apenas onde é seguro: leituras e `create`/`cancel` (idempotentes na API). A IA **não recebe** o JWT nem a chave.
56
+ - Webhook: `multipay_verify_webhook_signature` recebe segredo pelo contexto do assistente — **use só segredos de teste**.
57
+
58
+ ## Variáveis de ambiente
59
+
60
+ | Variável | Padrão | |
61
+ |---|---|---|
62
+ | `MULTIPAY_API_KEY` | — (obrigatória) | `mp_test_…` ou `mp_live_…` |
63
+ | `MULTIPAY_BASE_URL` | `https://api.multifidelidade.app/integracoes` | para outro ambiente |
64
+ | `MULTIPAY_ALLOW_LIVE` | `false` | libera escrita com chave de produção |
65
+ | `MULTIPAY_MAX_AMOUNT_CENTS` | `10000` | teto por pagamento em produção |
66
+ | `MULTIPAY_TIMEOUT_MS` | `15000` | |
67
+
68
+ ## Desenvolver
69
+
70
+ ```bash
71
+ npm install
72
+ npm test # 22 testes (config, assinatura, cliente HTTP, servidor MCP ponta a ponta)
73
+ npm run build # dist/
74
+ ```
75
+
76
+ `assets/openapi.json` é uma cópia de `docs/openapi.json` da API: atualize quando o contrato mudar.