Read-only banking integrations are common; this one issues and cancels collections, which is where the real time goes in a Brazilian back office. That also makes the sandbox flag the first thing to set — rehearse the issue-and-cancel path there before pointing it at a live account. mTLS with a certificate file is the setup cost, and it is the bank's requirement, not this server's.
An MCP server for the Banco Inter Empresas API. It covers two areas of the bank: the account side, meaning balance and statements, and the collections side, meaning boletos — issuing them, listing them by period and status, cancelling them, summarising them and downloading their PDFs. Authentication is OAuth2 over mTLS with the client certificate the bank issues.
- `consultar_saldo` — the account's available balance, no parameters
- `consultar_extrato` — transactions over a period, taking `dataInicial` and `dataFinal`, with `baixar_pdf_extrato` producing the same statement as a saved PDF
- `emitir_boleto` — issue a new boleto with `seuNumero`, `valorNominal`, `dataVencimento` and the payer details
- `listar_boletos` — list issued collections over a period, filtered by `situacao`, and `sumario_boletos` for a quantitative summary of the same window
- `cancelar_boleto` — cancel an existing collection by `codigoSolicitacao` with a stated `motivo`
- `baixar_pdf_boleto` — generate and save the PDF of one boleto
Banco Inter developer credentials: `CLIENT_ID`, `CLIENT_SECRET`, a digital certificate and private key referenced by `CERT_PATH` and `KEY_PATH`, and the account number in `X_CONTA_CORRENTE`. `INTER_IS_SANDBOX` switches between the sandbox and production. Node.js 18 or higher, or Docker; the package is `mcp-banco-inter` (1.0.3 in package.json and server.json) and the local client entry runs `npx -y mcp-banco-inter` over stdio. `MCP_TRANSPORT=streamable-http` with `MCP_HOST` and `MCP_PORT` serves it at `http://localhost:3000/mcp` instead, which is how the Docker image runs by default. Generated PDFs land under `STORAGE_PATH`. The OAuth2 token is held in memory only and refreshed automatically.
One command plus a key — npx -y mcp-banco-inter, then supply credentials
