Para agentes de código
Agentes (MCP)
O Grip Rails traz um servidor MCP para que o seu agente de código (Claude Code, Cursor, Claude Desktop ou qualquer cliente MCP) integre com o sandbox: ele opera a API, ajuda você a escrever a integração e explica por que algo falha.
O que faz
- Opera a API. Uma ferramenta por operação do contrato, com o seu esquema tal como está. Cada resposta começa com uma linha legível, com os valores em pesos, e traz o
FCM-Request-Id. - Ajuda você a construir a integração. Busca nesta documentação, entrega os exemplos oficiais de assinatura de requisições e de verificação de webhooks, e traz comandos guiados para integrar, percorrer o sandbox e preparar a produção.
- Diagnostica. Revisa a assinatura que o seu código monta e diz qual parte está errada, verifica webhooks, confere a sua configuração e espera o resultado de uma transferência por você.
Garantias
- Só sandbox. Fala com
https://empresas-sandbox.fcmpayments.com. Não inicia com a URL de produção nem com uma API keyfcm_live_…. - As suas chaves não saem da sua máquina. Roda localmente e cada requisição é assinada ali (RFC 9421). A API key viaja só para o sandbox.
- Novas tentativas seguras. As escritas que movimentam dinheiro ou estado exigem
idempotency_key: se a conexão cair, o agente tenta de novo com a mesma chave e a API devolve a mesma resposta. Nunca se paga duas vezes. - Sem segredos nas respostas. A API key e as chaves privadas são ocultadas em tudo o que o servidor devolve.
Acesso
O pacote @grip-labs/rails-mcp está em acesso antecipado para integradores com o sandbox ativo: peça-o ao seu contato no Grip Rails. É entregue como um arquivo com a sua impressão digital SHA-256 e instalado com a árvore de dependências fixada (Node 22 ou superior):
shasum -a 256 grip-labs-rails-mcp-<versão>.tgz # tem que dar a impressão digital que enviamos
mkdir -m 700 grip-rails-mcp
tar -xzf grip-labs-rails-mcp-<versão>.tgz -C grip-rails-mcp
cd grip-rails-mcp/package
cp npm-shrinkwrap.json package-lock.json # instala exatamente a árvore fixada
npm ci --omit=dev --ignore-scripts --no-audit --no-fund
node dist/main.js --helpCrie o seu sandbox em segundos
Sem nos pedir credenciais: o MCP cadastra no sandbox uma entidade de teste nova, com as suas contas e dois CVU (números de conta virtual argentinos). No terminal:
node /caminho/absoluto/grip-rails-mcp/package/dist/main.js init --altaGera o seu par de chaves de assinatura Ed25519 em ~/.grip-rails/ (a privada, com permissões 0600), faz o cadastro com uma requisição assinada com a sua chave, guarda a API key e o id da sua chave em ~/.grip-rails/config.json (também 0600) e o confirma. No fim, mostra a entidade, os CVU e o comando exato para conectar o MCP, já sem variáveis. Com --nombre "…" você dá um nome à entidade. Se algo for interrompido, rode de novo: ele retoma de onde parou, com as mesmas chaves.
Ou pelo agente, sem terminal: conecte o MCP sem credenciais (o primeiro comando de Como conectar) e peça “crie o meu sandbox”. Sem credenciais, ele inicia em modo de preparação, com a documentação, os exemplos, rails_check_setup e rails_create_sandbox, que faz o mesmo que init --alta; ao terminar, o MCP passa ao modo completo sem reiniciar.
Como conectar
Se você criou o seu sandbox com init --alta, as credenciais já estão em ~/.grip-rails/config.json e não são necessárias variáveis. No Claude Code:
claude mcp add grip-rails -- node /caminho/absoluto/grip-rails-mcp/package/dist/main.jsSe você já tem credenciais do sandbox, passe-as como variáveis: a API key fcm_test_…, o keyid (ck_…) da sua chave pública registrada e o caminho para a sua chave privada, nunca o PEM colado:
claude mcp add grip-rails \
-e GRIP_RAILS_API_KEY=fcm_test_… \
-e GRIP_RAILS_KEY_ID=ck_… \
-e GRIP_RAILS_SIGNING_KEY=/caminho/para/sua-chave-privada.pem \
-- node /caminho/absoluto/grip-rails-mcp/package/dist/main.jsFica na sua configuração local. Não use --scope project com a API key: ela ficaria escrita no .mcp.json do repositório.
No Cursor (~/.cursor/mcp.json) ou no Claude Desktop (claude_desktop_config.json). Com config.json, sem o bloco env:
{
"mcpServers": {
"grip-rails": {
"command": "node",
"args": ["/caminho/absoluto/grip-rails-mcp/package/dist/main.js"],
"env": {
"GRIP_RAILS_API_KEY": "fcm_test_…",
"GRIP_RAILS_KEY_ID": "ck_…",
"GRIP_RAILS_SIGNING_KEY": "/caminho/para/sua-chave-privada.pem"
}
}
}
}Primeiro teste
Peça ao agente: “rode rails_check_setup”. Ele responde listo com a sua entidade, a diferença de relógio e a versão da API. Depois, experimente um comando guiado.
Ferramentas
Uma por operação da API, com os nomes e os esquemas do contrato:
| Grupo | Ferramentas |
|---|---|
| Entidade e contas | rails_get_entity, rails_list_accounts, rails_get_account, rails_list_account_numbers, rails_get_account_number |
| Transferências de saída | rails_create_counterparty_validation, rails_create_outgoing_transfer, rails_list_outgoing_transfers, rails_get_outgoing_transfer |
| Créditos recebidos | rails_list_incoming_transfers, rails_get_incoming_transfer |
| Eventos e idempotência | rails_list_events, rails_get_event, rails_get_idempotency_key, rails_get_jwks |
| Simuladores (só sandbox) | rails_simulate_incoming_transfer, rails_simulate_rail_result, rails_simulate_late_settlement_review, rails_get_sandbox_clock, rails_advance_sandbox_clock |
E oito de apoio:
| Ferramenta | O que faz |
|---|---|
rails_check_setup | Revisa a sua configuração: credenciais, diferença de relógio, chave registrada e versão da API. Se algo falhar, diz o quê e como resolver. |
rails_search_docs, rails_read_doc | Buscam e leem esta documentação, com o link para cada seção. |
rails_get_code_example | Os exemplos oficiais de assinatura de requisições e verificação de webhooks, em TypeScript, Python e Go. |
rails_check_signature | Você passa a requisição que o seu código assinou e ela diz qual parte da assinatura está errada: componentes, Content-Digest, created, keyid. |
rails_verify_webhook | Verifica um webhook recebido contra o JWKS e explica cada controle. |
rails_wait_for_outgoing_transfer, rails_wait_for_events | Esperam o estado final de uma transferência ou os eventos novos, sem consultar manualmente. |
Sem credenciais, existe também rails_create_sandbox: veja Crie o seu sandbox em segundos.
Comandos guiados
São prompts MCP; no Claude Code aparecem com /.
| Comando | O que faz |
|---|---|
integrar | Guia para integrar o Grip Rails no seu código: assinatura com o exemplo oficial, idempotência persistida, conciliação por sequence e webhooks verificados. Aceita a linguagem. |
recorrido_sandbox | O percurso completo do sandbox: crédito recebido, validação de contraparte, transferência de saída, os caminhos de falha (valores que terminam em …13, …70 e …99) e a liquidação tardia. |
checklist_produccion | O que você precisa ter resolvido antes de pedir produção. |
Em breve
- Instalação em uma linha pelo npm.