# mcp-santander

Wires Santander Brasil's banking API into your coding agent: Pix payments, boletos, account statement, balance. Built for projects that settle with the bank directly instead of a PSP.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 274
- Author: codespar
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/codespar/mcp-dev-latam/tree/HEAD/packages/banking/santander
- Updated: 2026-09-27
- HTML: https://affpapa.org/en/nevibecode/mcp/mcp-santander

## What it does

There are 23 tools. You can fire an outbound Pix, make a dynamic charge with a QR code, refund one you received, look up or register DICT keys. Boleto issuing and cancellation sit next to statement reads, balance checks, TED transfers, transfers between Santander accounts, utility bill payments through Arrecadação and Open Finance consents.

Each call carries two credentials. The server fetches an OAuth2 token with `client_credentials` from `/auth/oauth/v2/token`, keeps it cached until roughly a minute before it dies, then sends it as a bearer header. On top of that, mutual TLS: a client certificate and private key are read from `SANTANDER_CERT_PATH` and `SANTANDER_KEY_PATH`, and every request goes out through a Node `https.Agent` built from them. Both the cert bundle and the OAuth pair come from Santander's Developer Portal once your merchant contract is signed, and they are separate things.

This is `0.1.0-alpha.1`. Only the gateway hosts, the token route and the Cobrança v2 base are checked against public guides. Pix, Arrecadação and Extrato paths follow the BACEN standard and patterns borrowed from other banks; the source marks them `TODO(verify)`. Cobrança is scoped by `workspace_id` set up in the portal beforehand, so `create_boleto` has nothing to work with until that exists. Pin the exact package version while you are on `0.1.x`.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `SANTANDER_CLIENT_ID`, `SANTANDER_CLIENT_SECRET`, `SANTANDER_CERT_PATH`, `SANTANDER_KEY_PATH`, `SANTANDER_ENV` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env SANTANDER_CLIENT_ID=<SANTANDER_CLIENT_ID> --env SANTANDER_CLIENT_SECRET=<SANTANDER_CLIENT_SECRET> --env SANTANDER_CERT_PATH=<SANTANDER_CERT_PATH> --env SANTANDER_KEY_PATH=<SANTANDER_KEY_PATH> --env SANTANDER_ENV=<SANTANDER_ENV> --transport stdio santander -- npx -y @codespar/mcp-santander
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add santander --env SANTANDER_CLIENT_ID=<SANTANDER_CLIENT_ID> --env SANTANDER_CLIENT_SECRET=<SANTANDER_CLIENT_SECRET> --env SANTANDER_CERT_PATH=<SANTANDER_CERT_PATH> --env SANTANDER_KEY_PATH=<SANTANDER_KEY_PATH> --env SANTANDER_ENV=<SANTANDER_ENV> -- npx -y @codespar/mcp-santander
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "santander": {
            "command": "npx",
            "args": [
                "-y",
                "@codespar/mcp-santander"
            ],
            "env": {
                "SANTANDER_CLIENT_ID": "<SANTANDER_CLIENT_ID>",
                "SANTANDER_CLIENT_SECRET": "<SANTANDER_CLIENT_SECRET>",
                "SANTANDER_CERT_PATH": "<SANTANDER_CERT_PATH>",
                "SANTANDER_KEY_PATH": "<SANTANDER_KEY_PATH>",
                "SANTANDER_ENV": "<SANTANDER_ENV>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "santander": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@codespar/mcp-santander"
            ],
            "env": {
                "SANTANDER_CLIENT_ID": "<SANTANDER_CLIENT_ID>",
                "SANTANDER_CLIENT_SECRET": "<SANTANDER_CLIENT_SECRET>",
                "SANTANDER_CERT_PATH": "<SANTANDER_CERT_PATH>",
                "SANTANDER_KEY_PATH": "<SANTANDER_KEY_PATH>",
                "SANTANDER_ENV": "<SANTANDER_ENV>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e SANTANDER_CLIENT_ID=<SANTANDER_CLIENT_ID> -e SANTANDER_CLIENT_SECRET=<SANTANDER_CLIENT_SECRET> -e SANTANDER_CERT_PATH=<SANTANDER_CERT_PATH> -e SANTANDER_KEY_PATH=<SANTANDER_KEY_PATH> -e SANTANDER_ENV=<SANTANDER_ENV> santander npx -y @codespar/mcp-santander
```
Replace <…> with your own values

## When to use it
- send an outbound Pix from the merchant account
- issue a boleto and hand over a second-copy PDF
- list received Pix for a date range
- resolve a DICT key before paying
- pay a tax or utility bill through Arrecadação

## Example prompts
- Send a Pix for 150 reais to the key in `clients.csv` and print the endToEndId
- Create a boleto in workspace `ws_1042` for the order total and give me the PDF link
- Pull every received Pix from last week and match it against the payments table

## Similar
- [World Monitor](https://affpapa.org/en/nevibecode/mcp/world-monitor.md) — MCP server · ★ 89408
- [CCXT](https://affpapa.org/en/nevibecode/mcp/ccxt.md) — MCP server · ★ 44583
- [Finance Toolkit](https://affpapa.org/en/nevibecode/mcp/finance-toolkit.md) — MCP server · ★ 5458
- [EdgarTools](https://affpapa.org/en/nevibecode/mcp/edgartools.md) — MCP server · ★ 2814
- [LetsFG — Flights & Hotels](https://affpapa.org/en/nevibecode/mcp/letsfg-flights-hotels.md) — MCP server · ★ 2188
- [AutoTS](https://affpapa.org/en/nevibecode/mcp/autots.md) — MCP server · ★ 1434

From the same set: [codespar/mcp-dev-latam](https://affpapa.org/en/nevibecode/by/codespar/mcp-dev-latam.md) — 124 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
