Skip to main content
Glama
elcukro

bank-mcp

by elcukro

🏦 bank-mcp

AIアシスタントに銀行口座への安全な読み取り専用アクセス権を与えましょう。

npm version License: MIT CI Node.js TypeScript


多くの人は、銀行のポータルサイトにログインし、CSVをダウンロードし、スプレッドシートを作成することで財務を管理しています。bank-mcpは、AIアシスタントが銀行口座(残高、取引、支出の内訳)を自然な会話を通じて直接照会できるようにすることで、その手間を解消します。Model Context Protocolを介して実際の銀行APIに接続するため、MCP互換クライアント(Claude Code、Claude Desktopなど)であれば、あなたの財務状況を理解できるようになります。

  • 5つのプロバイダー、15,000以上の金融機関 — 米国および欧州の銀行に対応

  • 設計上読み取り専用 — 書き込みアクセス、送金、変更は一切不可

  • あらゆるMCPクライアントで動作 — Claude Code、Claude Desktop、Cursorなどに対応

  • プラグイン可能なアーキテクチャ — 100行以内で独自のプロバイダーを追加可能

目次

サポートされているプロバイダー

プロバイダー

地域

金融機関数

認証方法

設定難易度

Enable Banking

欧州

2,000以上

RSAキー + セッション

Teller

米国

7,000以上

mTLS証明書

Plaid

米国 / カナダ / 欧州

12,000以上

クライアントID + シークレット

簡単

Tink

欧州

3,400以上

OAuth2トークン

簡単

Mock

デモ

なし

即時

米国の銀行

PlaidおよびTellerを通じてサポートされており、米国の主要20行およびその他数千行をカバーしています:

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

欧州の銀行

Enable BankingおよびTinkを通じてサポートされており、EUおよび英国全域の主要銀行をカバーしています:

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

クイックスタート

1. セットアップウィザードを実行する

npx @bank-mcp/server init

対話型ウィザードが、プロバイダーの選択、認証情報の入力、銀行の承認、口座の確認まで、洗練されたターミナル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. MCPクライアントに追加する

セットアップの最後に、ウィザードが使用しているMCPクライアントを尋ね、正確な設定方法を表示します:

  • Claude Code — コマンド1つ: claude mcp add bank -- npx @bank-mcp/server

  • Cursor.cursor/mcp.json に追加

  • Windsurf~/.codeium/windsurf/mcp_config.json に追加

  • Gemini CLI~/.gemini/settings.json に追加

  • Codex CLI~/.codex/config.json に追加

他のツールを使用していますか? Claude Desktop、VS Code、Zedを含むすべてのサポート対象クライアントについては、クライアント設定を参照してください。

3. 試してみる

AIアシスタントに自然言語で財務について尋ねてみてください:

"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"

デモモード

まだ銀行の認証情報を持っていませんか?まずはリアルな偽データから始めましょう:

npx @bank-mcp/server --mock

これは、決定論的なサンプル口座と取引を生成するモックプロバイダーで起動します。実際の口座を接続する前に、セットアップのテストやbank-mcp上での開発を行うのに最適です。

クライアント設定

bank-mcpは、MCP互換のあらゆるクライアントで動作します。以下のツールから選択してください。

Claude Code

プロジェクトルートの .mcp.json (またはすべてのプロジェクトに対して ~/.claude/.mcp.json)に追加します:

{
  "mcpServers": {
    "bank": {
      "command": "npx",
      "args": ["@bank-mcp/server"]
    }
  }
}

またはCLI経由で追加:

claude mcp add bank -- npx @bank-mcp/server

Claude Desktop

claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "bank": {
      "command": "npx",
      "args": ["@bank-mcp/server"]
    }
  }
}

設定ファイルの場所:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Cursor

プロジェクトルートの .cursor/mcp.json (またはグローバルに ~/.cursor/mcp.json)に追加します:

{
  "mcpServers": {
    "bank": {
      "command": "npx",
      "args": ["@bank-mcp/server"]
    }
  }
}

VS Code (Copilot)

ワークスペースの .vscode/mcp.json に追加します:

{
  "servers": {
    "bank": {
      "type": "stdio",
      "command": "npx",
      "args": ["@bank-mcp/server"]
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json に追加します:

{
  "mcpServers": {
    "bank": {
      "command": "npx",
      "args": ["@bank-mcp/server"]
    }
  }
}

OpenAI Codex CLI

~/.codex/config.toml (またはプロジェクト内の .codex/config.toml)に追加します:

[mcp_servers.bank]
command = "npx"
args = ["@bank-mcp/server"]

またはCLI経由で追加:

codex mcp add bank -- npx @bank-mcp/server

Gemini CLI

~/.gemini/settings.json (またはプロジェクト内の .gemini/settings.json)に追加します:

{
  "mcpServers": {
    "bank": {
      "command": "npx",
      "args": ["@bank-mcp/server"]
    }
  }
}

Zed

Zedの settings.json に追加します:

{
  "context_servers": {
    "bank": {
      "command": {
        "path": "npx",
        "args": ["@bank-mcp/server"]
      }
    }
  }
}

お使いのツールが見当たりませんか? bank-mcpは標準のMCP stdioトランスポートを使用しています。MCP stdioサーバーをサポートするクライアントであれば、コマンドとして npx @bank-mcp/server を使用して接続できます。

利用可能なツール

ツール

説明

主要パラメータ

list_accounts

すべての接続先の銀行口座を一覧表示

connectionId?

list_transactions

フィルタリングして取引を取得

accountId, from?, to?, minAmount?, maxAmount?

search_transactions

説明や加盟店に対する全文検索

query, accountId?, from?, to?

get_balance

現在および利用可能な残高

accountId, connectionId?

spending_summary

加盟店またはカテゴリ別にグループ化された支出

accountId, from?, to?, groupBy?

スクリーンショット

以下のすべての例は、モックプロバイダー (npx @bank-mcp/server --mock) を使用したClaude Codeのものです。

口座の一覧表示"List my bank accounts"

Listing bank accounts

残高の確認"What's my current balance?"

Account balances

取引履歴"Show my transactions from the last 15 days"

Recent transactions with spending breakdown

取引の検索"Find all Starbucks purchases in last 2 weeks"

Finding Starbucks purchases

カテゴリ別の支出"Show my spending by category this month"

Category breakdown with chart

主要な加盟店"Which merchants am I spending the most at?"

Merchant spending breakdown

サブスクリプションの追跡"Show my recurring subscriptions"

Recurring subscription analysis

食料品の比較"Compare Trader Joe's vs Whole Foods spending"

Trader Joe's vs Whole Foods analysis

財務状況の全体像"Give me my full February financial picture"

Monthly income, expenses, and savings

アーキテクチャ

ファイル構造

~/.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/              # EU Open Banking via Tink API
    mock/              # Deterministic fake data
  tools/               # MCP tool implementations
  utils/
    cache.ts           # In-memory TTL cache
    http.ts            # Fetch with timeout + retry

プロバイダーインターフェース

すべてのプロバイダーは同じ抽象クラスを継承しているため、新しい統合を簡単に追加できます:

abstract class BankProvider {
  abstract listAccounts(config): Promise<BankAccount[]>;
  abstract listTransactions(config, accountId, filter?): Promise<Transaction[]>;
  abstract getBalance(config, accountId): Promise<Balance[]>;
  abstract getConfigSchema(): ConfigField[];
}

プロバイダー設定ガイド

Enable Banking (PSD2)

必要なもの:

  • [ ] Enable Banking アカウント(アプリ登録済み)

  • [ ] RSA秘密鍵(アプリ作成時にダウンロードした .pem ファイル)

npx @bank-mcp/server init
# Select: Enable Banking → enter App ID + key path
# Pick your country → select your bank
# Log in at your bank → paste the redirect URL
# → Session created, accounts verified!

ヒント: ウィザードがOAuthフロー全体(リダイレクトURIの設定、銀行の選択、セッション作成)を処理します。セッションは90日で期限切れになります(PSD2規制)。更新するには init を再実行してください。

Teller (米国の銀行)

必要なもの:

  • [ ] Teller 開発者アカウント

  • [ ] アプリケーションID(Tellerダッシュボードから取得)

npx @bank-mcp/server init
# Select: Teller → enter Application ID
# Pick environment (sandbox for testing)
# → Teller Connect opens in your browser
# → Link your bank, token captured automatically!

ヒント: サンドボックスから始めてください。証明書は不要で、テストデータが即座に利用可能です。開発/本番環境では、ウィザードがmTLS証明書のパスを要求します。無料枠で最大100件のライブ接続をサポートしています。

Plaid (米国/カナダ/欧州)

必要なもの:

npx @bank-mcp/server init
# Select: Plaid → enter client ID + secret
# Pick environment (sandbox for testing)
# → Sandbox: token created automatically!
# → Dev/Prod: paste an existing access token

ヒント: サンドボックスから始めてください。ウィザードが自動的にテストトークンを作成するため、ブラウザは不要です。Plaidは最も豊富な取引カテゴリ(信頼スコア付きの104のサブカテゴリ)を提供しており、LLM主導の支出分析に最適です。

Tink (欧州オープンバンキング)

必要なもの:

  • [ ] Tink 開発者アカウント(テスト用は無料)

  • [ ] クライアントIDとクライアントシークレット(Tinkコンソールから取得)

npx @bank-mcp/server init
# Select: Tink → enter Client ID + Secret
# Pick your market (country)
# → Tink Link opens in your browser
# → Connect your bank, paste redirect URL

ヒント: Tinkは欧州全域の3,400以上の銀行をカバーしています。サンドボックスには、テスト認証情報(ウィザードに表示)を使用してDemo Bankを使用してください。取引には、加盟店情報が充実したPFMカテゴリが含まれます。

キャッシュ

すべてのデータはメモリ内にキャッシュされます(ディスクへの永続化は行われません。プロセス終了とともにキャッシュは消滅します):

データ

TTL

理由

口座一覧

1時間

口座情報はめったに変更されないため、API呼び出しを最小化

取引履歴

15分

新規取引と鮮度のバランス

残高

5分

最も時間的制約が厳しく、ユーザーは最新データを期待するため

キャッシュは接続ごと、口座ごとに管理されます。サーバーを再起動するとすべてのキャッシュがクリアされます。

複数の接続

必要なだけ銀行接続を設定できます。異なるプロバイダー間でも可能です:

{
  "connections": [
    { "id": "ing-main", "provider": "enable-banking", "..." : "..." },
    { "id": "chase-checking", "provider": "plaid", "..." : "..." },
    { "id": "revolut", "provider": "tink", "..." : "..." }
  ]
}

すべてのツールは、特定の接続をターゲットにするためのオプションの connectionId パラメータを受け入れます。省略された場合はすべての接続が照会され、結果がマージされます。そのため、「すべての残高を表示して」という指示が銀行をまたいで自動的に機能します。

セキュリティ

設計原則

bank-mcpは機密性の高い財務情報を扱います。そのセキュリティ体制は、攻撃対象領域を最小限に抑えることに基づいています:

  • 設計上読み取り専用BankProvider インターフェースは読み取りメソッド(listAccounts, listTransactions, getBalance)のみを公開します。書き込みメソッドは存在せず、送金、口座変更、支払い開始は一切できません。これは慣習ではなく、型レベルで強制されています。

  • ネットワークリスナーなし — bank-mcpはHTTPサーバーではなく、stdioプロセス(stdin/stdout)として実行されます。開いているポートはなく、ネットワークからの攻撃対象領域もありません。

  • 最小限の依存関係 — 実行時の依存関係は4つのみ(@modelcontextprotocol/sdk, @clack/prompts, jsonwebtoken, zod)。依存関係が少ないほど、サプライチェーンのリスクも低減されます。

  • オープンソース — すべての行が監査可能です。難読化されたコード、コンパイル済みのバイナリ、テレメトリは一切ありません。

認証情報の保存

  • ~/.bank-mcp/config.json の設定ファイルは 600 パーミッション(所有者のみ読み書き可能)で作成されます

  • RSAキーと証明書は、同様の制限付きパーミッションで ~/.bank-mcp/keys/

Install Server
A
security – no known vulnerabilities
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/elcukro/bank-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server