Bank MCP
Give your AI assistant secure, read-only access to your bank accounts. MCP server supporting Plaid, Teller, Enable Banking, and Tink.
Install / Use
/learn @elcukro/Bank MCPQuality Score
Category
Development & EngineeringSupported Platforms
README
🏦 bank-mcp
<p align="center"> <img src="bank-mcp.png" alt="bank-mcp — Banking data for AI assistants" width="700"> </p>Give your AI assistant secure, read-only access to your bank accounts.
Most people manage their finances by logging into bank portals, downloading CSVs, and building spreadsheets. bank-mcp eliminates that friction by letting your AI assistant query your bank accounts directly — balances, transactions, spending breakdowns — through natural conversation. It connects to real bank APIs via the Model Context Protocol so any MCP-compatible client (Claude Code, Claude Desktop, and others) can understand your finances.
- 5 providers, 15,000+ institutions — US and European banks covered
- Read-only by design — no write access, no transfers, no modifications
- Works with any MCP client — Claude Code, Claude Desktop, Cursor, and more
- Pluggable architecture — add your own provider in under 100 lines
Table of Contents
- Supported Providers
- Quick Start
- Client Setup
- Available Tools
- Screenshots
- Architecture
- Provider Setup Guides
- Caching
- Multiple Connections
- Security
- Adding a New Provider
- Troubleshooting
- Development
- Contributing
- License
Supported Providers
| Provider | Region | Institutions | Auth Method | Setup Difficulty | |----------|--------|-------------|-------------|-----------------| | Enable Banking | Europe | 2,000+ | RSA key + session | Medium | | Teller | US | 7,000+ | mTLS certificate | Medium | | Plaid | US / CA / EU | 12,000+ | Client ID + secret | Easy | | Tink | Europe | 3,400+ | OAuth2 token | Easy | | Mock | Demo | — | None | Instant |
US Banks
Supported through Plaid and Teller — covering the top 20 US institutions and thousands more:
JPMorgan Chase · Bank of America · Wells Fargo · Citibank · Capital One · U.S. Bank · PNC · Truist · Goldman Sachs · TD Bank · Citizens · Fifth Third · M&T Bank · Huntington · KeyBank · Ally · Regions · BMO · American Express · USAA
European Banks
Supported through Enable Banking and Tink — covering major banks across the EU and UK:
HSBC · BNP Paribas · Deutsche Bank · ING · Crédit Agricole · Santander · Société Générale · UniCredit · Intesa Sanpaolo · Barclays · Lloyds · BBVA · CaixaBank · Commerzbank · Rabobank · ABN AMRO · Swedbank · Handelsbanken · Nordea · PKO Bank Polski
Quick Start
1. Run the setup wizard
npx @bank-mcp/server init
The interactive wizard walks you through everything — provider selection, credentials, bank authorization, and account verification — all with a polished terminal UI:
┌ bank-mcp — Connect your bank account
│
◇ Choose your banking provider
│ Plaid / Teller / Tink / Enable Banking
│
◇ Environment
│ Sandbox / Development / Production
│
◇ Found 3 account(s) ─────────────────────────╮
│ ****1591 (Bank of America Platinum Card) │
│ ****3588 (Bank of America My Checking) │
│ ****2450 (Bank of America Essential Savings)│
├───────────────────────────────────────────────╯
│
└ Setup complete!
2. Add to your MCP client
At the end of setup, the wizard asks which MCP client you use and shows the exact configuration:
- Claude Code — one command:
claude mcp add bank -- npx @bank-mcp/server - Cursor — add to
.cursor/mcp.json - Windsurf — add to
~/.codeium/windsurf/mcp_config.json - Gemini CLI — add to
~/.gemini/settings.json - Codex CLI — add to
~/.codex/config.json
Using a different tool? See Client Setup for all supported clients including Claude Desktop, VS Code, and Zed.
3. Try it
Ask your AI assistant about your finances in natural language:
"What's my checking account balance?"
"Show my spending by category this month"
"Find all Amazon purchases over $50"
"Compare my spending this month vs last month"
Demo Mode
Don't have bank credentials yet? Start with realistic fake data:
npx @bank-mcp/server --mock
This launches with a mock provider that generates deterministic sample accounts and transactions — perfect for testing your setup or building on top of bank-mcp before connecting real accounts.
Client Setup
bank-mcp works with any MCP-compatible client. Pick your tool below.
Claude Code
Add to .mcp.json in your project root (or ~/.claude/.mcp.json for all projects):
{
"mcpServers": {
"bank": {
"command": "npx",
"args": ["@bank-mcp/server"]
}
}
}
Or add via the CLI:
claude mcp add bank -- npx @bank-mcp/server
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"bank": {
"command": "npx",
"args": ["@bank-mcp/server"]
}
}
}
Config file location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Cursor
Add to .cursor/mcp.json in your project root (or ~/.cursor/mcp.json globally):
{
"mcpServers": {
"bank": {
"command": "npx",
"args": ["@bank-mcp/server"]
}
}
}
VS Code (Copilot)
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"bank": {
"type": "stdio",
"command": "npx",
"args": ["@bank-mcp/server"]
}
}
}
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"bank": {
"command": "npx",
"args": ["@bank-mcp/server"]
}
}
}
OpenAI Codex CLI
Add to ~/.codex/config.toml (or .codex/config.toml in your project):
[mcp_servers.bank]
command = "npx"
args = ["@bank-mcp/server"]
Or add via the CLI:
codex mcp add bank -- npx @bank-mcp/server
Gemini CLI
Add to ~/.gemini/settings.json (or .gemini/settings.json in your project):
{
"mcpServers": {
"bank": {
"command": "npx",
"args": ["@bank-mcp/server"]
}
}
}
Zed
Add to your Zed settings.json:
{
"context_servers": {
"bank": {
"command": {
"path": "npx",
"args": ["@bank-mcp/server"]
}
}
}
}
Don't see your tool? bank-mcp uses standard MCP stdio transport. Any client that supports MCP stdio servers can connect using
npx @bank-mcp/serveras the command.
Available Tools
| Tool | Description | Key Parameters |
|------|-------------|----------------|
| list_accounts | List all bank accounts across connections | connectionId? |
| list_transactions | Fetch transactions with filtering | accountId, from?, to?, minAmount?, maxAmount? |
| search_transactions | Full-text search on descriptions and merchants | query, accountId?, from?, to? |
| get_balance | Current and available balances | accountId, connectionId? |
| spending_summary | Expenses grouped by merchant or category | accountId, from?, to?, groupBy? |
Screenshots
All examples below use Claude Code with the mock provider (npx @bank-mcp/server --mock).
Listing accounts — "List my bank accounts"

Checking balances — "What's my current balance?"

Transaction history — "Show my transactions from the last 15 days"

Searching transactions — "Find all Starbucks purchases in last 2 weeks"

Spending by category — "Show my spending by category this month"

Top merchants — "Which merchants am I spending the most at?"

Subscription tracking — "Show my recurring subscriptions"

Grocery comparison — "Compare Trader Joe's vs Whole Foods spending"

Full financial picture — "Give me my full February financial picture"

Architecture
<p align="center"> <img src="architecture.png" alt="bank-mcp architecture diagram" width="700"> </p>File Structure
~/.bank-mcp/
config.json # Connections & credentials (permissions: 600)
keys/ # RSA keys and certificates
src/
providers/
base.ts # Abstract BankProvider class
registry.ts # Provider registration
enable-banking/ # PSD2 via Enable Banking API
teller/ # US banks via mTLS
plaid/ # US/CA/EU via Plaid API
tink/
Related Skills
node-connect
333.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Writing Hookify Rules
82.0kThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
Hook Development
82.0kThis skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.
