@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 +75 -2
- package/assets/openapi.json +857 -0
- package/dist/client.js +110 -0
- package/dist/config.js +38 -0
- package/dist/guide.js +257 -0
- package/dist/index.js +16 -0
- package/dist/server.js +175 -0
- package/dist/webhook.js +30 -0
- package/package.json +32 -4
package/README.md
CHANGED
|
@@ -1,3 +1,76 @@
|
|
|
1
|
-
#
|
|
1
|
+
# MultiPay MCP
|
|
2
2
|
|
|
3
|
-
|
|
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.
|