Open Banking (open-banking.io) について
Open Banking は、open-banking.io の PSD2 API から口座、残高、取引、接続状況を取得する読み取り専用 MCP サーバーです。機密フィールドはユーザーの秘密鍵でローカル復号し、送金や同意管理は扱いません。
主な機能
- 01口座と銀行接続の一覧取得
- 02残高と取引明細の取得
- 03機密データのローカル復号
- 04正確な十進文字列での金額返却
- 05読み取り専用ツールと取引ページング
活用シーン
- 01複数口座の残高確認
- 02指定期間の支出集計
- 03接続状況と有効期限の確認
MCP 対応
口座、残高、取引、銀行接続を扱う読み取り専用ツールを MCP クライアントに公開します。Python SDK と設定済みの認証情報を使って open-banking.io API に接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
open-banking.io MCP サーバー
open-banking.io PSD2 API 向けのシンプルな、読み取り専用の Model Context Protocol サーバーです。 AI エージェント(Claude Desktop、Cursor、任意の MCP クライアント)が、ご自身の銀行口座について 「残高はいくらですか?」 や 「先月の取引を要約してください」 といった質問に答えられるようにします。
公式の open-banking-io Python SDK をラップしており、
そのゼロ知識の特性を引き継ぎます。サービスが返すのは常に暗号文のみで、すべての
機密フィールド(IBAN、所有者名、金額、取引相手)は、エクスポートした秘密鍵を使って
プロセス内で復号されます。平文がサードパーティに渡ることは一切ありません。LLM にも、
MCP クライアントが送信した情報だけが渡ります。
ツール
| ツール | 引数 | 説明 |
|---|---|---|
list_accounts | — | 銀行口座:銀行、国、IBAN、所有者、表示名、通貨、残高、needs_reconnect フラグ |
get_balances | account_id | 1 つの口座の ISO 20022 残高(ITBD = 記帳済み、ITAV = 利用可能) |
get_transactions | account_id、date_from?、date_to?、limit?(デフォルト 50、最大 500)、offset? | 取引明細。新しい順で、取引相手と送金情報を含みます |
list_connections | — | 銀行との接続/同意:ステータス、valid_until、last_synced_at、口座数 |
すべてのツールは読み取り専用です。同期、支払い開始、同意管理のツールは意図的に用意していません。 詳しくは制限事項をご覧ください。
設定
| 環境変数 | 必須 | 意味 |
|---|---|---|
OBI_CREDENTIALS | 推奨 | open-banking.io アプリからエクスポートした認証情報バンドルのパス(またはインライン JSON)。apiBaseUrl、apiKey、暗号化秘密鍵が含まれます |
OBI_API_KEY | 代替 | バンドルを使用しない場合の API キー |
OBI_PRIVATE_KEY | 代替 | OBI_API_KEY に対応する Base64 PKCS#8 EC(SECP256R1)秘密鍵 |
OBI_BASE_URL | 代替設定時に必要 | API のベース URL(バンドル内の apiBaseUrl)。環境変数を個別に設定する場合に必要です |
アプリの 設定 → 認証情報 から認証情報をエクスポートすると、バンドルファイルを取得できます。
Claude Desktop
claude_desktop_config.json(Claude → 設定 → Developer → Edit Config):
{
"mcpServers": {
"open-banking-io": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/open-banking-io/mcp-server.git",
"obi-mcp"
],
"env": {
"OBI_CREDENTIALS": "/absolute/path/to/credentials.json"
}
}
}
}
Cursor
.cursor/mcp.json:
{
"mcpServers": {
"open-banking-io": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/open-banking-io/mcp-server.git",
"obi-mcp"
],
"env": {
"OBI_CREDENTIALS": "/absolute/path/to/credentials.json"
}
}
}
}
uv が必要です(curl -LsSf https://astral.sh/uv/install.sh | sh)。
PyPI に公開された後は、--from git+… 引数を省略できます。
ローカル/ソースから実行
git clone https://github.com/open-banking-io/mcp-server.git
cd mcp-server
uv venv && uv pip install -e '.[dev]' --python .venv/bin/python
OBI_CREDENTIALS=/path/to/credentials.json .venv/bin/obi-mcp # speaks MCP over stdio
.venv/bin/python tests/smoke.py # network-free smoke test
uv run --python .venv/bin/python pytest -q # full test suite
エージェントへの質問例
- 「すべての口座の記帳済み残高を表示してください。」
- 「7 月に食料品にいくら使いましたか?」(
get_transactions+グループ化) - 「銀行との接続のうち、まもなく期限切れになるものはどれですか?」(
list_connections)
設計上の注意点
- 設計上、読み取り専用です。 SDK の
get_*メソッドのみを公開します。SDK にはsync/sync_allがありますが、意図的に提供していません。このサーバーを通じてエージェントが資金を移動したり、同意を変更したりすることはできません。 - 正確な金額。 金額は浮動小数点数ではなく、正確な 10 進数文字列(
"1234.56")で返されます。 - わかりやすいエラー。 認証情報の不足、無効な日付、不明な口座 ID、上流 HTTP エラーは、対処に役立つツールエラーとして通知されます(例:口座が見つからない場合に有効な口座 ID を一覧表示)。
- コンテキストに配慮。 エージェントのコンテキストウィンドウを保護するため、
get_transactionsのデフォルト件数は 50 で、最大 500 件に制限されています。ページ分割にはoffsetを使用してください。
制限事項(正直な一覧)
- 書き込みツールはありません。同期、支払いの開始、同意の作成・更新はできません。同意の更新は 常に open-banking.io アプリで行います(PSD2 SCA)。
- 銀行・金融機関のディレクトリツールはありません。上流 API(SDK v1.0.0)では、公開されている ASPSP 検索エンドポイントが提供されていません。API に追加された場合は TODO です。
- PyPI にはまだ公開されていません。上記の
uvx --from git+…またはソースからインストールしてください。open-banking-io-mcpとして PyPI に公開する予定です。 - データ最小化はご自身の責任で行ってください。取引には取引相手と送金目的のテキストが含まれます。このサーバーを信頼できる MCP クライアントにのみ接続し、プライバシー保護のため、ホスト型のものよりローカル MCP クライアント (Claude Desktop / Cursor)を優先してください。
ラップしている API の範囲
| SDK 呼び出し | HTTP(SDK の内部) |
|---|---|
get_accounts() | GET {apiBaseUrl}/api/accounts |
get_transactions(id, from, to, limit, offset) | GET {apiBaseUrl}/api/accounts/{id}/transactions |
get_connections() | GET {apiBaseUrl}/api/connections |
認証:X-Api-Key ヘッダー。レスポンスにはゼロ知識エンベロープが含まれます
(ECDH P-256 → HKDF-SHA256 → AES-256-GCM)。SDK がローカルで復号します。
完全なワイヤーフォーマットについては、clients repo ·
THREAT_MODEL.md を参照してください。
ライセンス
MIT — clients SDK リポジトリと同じです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。