Token导航 LogoToken导航TokenDH.com
bank MCP logo
AI代理stdio官方级别未说明来源级核验

bank MCP

MCP Server

@bank-mcp/server

bank-mcp是一款为AI助手提供银行账户只读访问权限的工具,支持通过自然语言查询余额、交易记录和消费分类。

工具数

5

提示词数

0

GitHub Stars

13

资源数

0
TypeScriptClaude只读访问Claude DesktopClaudeCursorWindsurfVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

elcukro

提供方

elcukro

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @bank-mcp/server init

详细介绍

🏦 mcp银行

让你的AI助手安全、只读地访问你的银行账户。

](https://www.npmjs.com/package/@bank-mcp/server) ![License: MIT](https://opensource.org/licenses/MIT) ![CI](https://github.com/elcukro/bank-mcp/actions/workflows/ci.yml) ](https://nodejs.org/) ![TypeScript](https://www.typescriptlang.org/)

______________________________________________________________________

大多数人通过登录银行门户、下载CSV和构建电子表格来管理他们的财务。银行mcp通过让你的人工智能助手通过自然对话直接查询你的银行账户——余额、交易、支出明细——消除了这种摩擦。它通过以下方式连接到真实的银行API 模型上下文协议 因此,任何兼容MCP的客户端(Claude Code、Claude Desktop等)都可以了解您的财务状况。

  • 5家供应商,15000多家机构 --涵盖美国和欧洲银行
  • 按设计只读 --无写访问、无传输、无修改
  • 适用于任何MCP客户端 --克劳德代码、克劳德桌面、光标等
  • 可插拔架构 --在100行以内添加自己的提供商

目录

支持的提供商

提供者地区机构授权方式设置难度
启用银行服务欧洲2000+RSA密钥+会话中等
出纳员美国7000+mTLS证书中等
格子呢美国/加拿大/欧盟12000+客户ID+机密简单
叮当欧洲3400+OAuth2代币简单
模拟演示--即时

美国银行

通过Plaid和Teller提供支持,覆盖美国前20大机构和数千家机构:

摩根大通·美国银行·富国银行·花旗银行·Capital One·美国银行、PNC·Truist·高盛·道明银行·Citizens·Fifth Third·M&T Bank·Huntington·KeyBank·Ally·Regions·BMO·American Express·USAA

欧洲银行

通过Enable Banking和Tink提供支持,覆盖欧盟和英国的主要银行:

汇丰银行、法国巴黎银行、德意志银行、荷兰国际集团、法国农业信贷银行、桑坦德银行、法国兴业银行、联合信贷银行、联合圣保罗银行、巴克莱银行、劳埃德银行、西班牙对外银行、CaixaBank、德国商业银行、荷兰合作银行、荷兰银行、瑞典银行、Handelsbanken、北欧银行、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 mcp add bank -- npx @bank-mcp/server
  • 光标 --添加到 .cursor/mcp.json
  • 帆板运动 --添加到 ~/.codeium/windsurf/mcp_config.json
  • Gemini CLI --添加到 ~/.gemini/settings.json
  • Codex CLI --添加到 ~/.codex/config.json
使用不同的工具?客户端设置 适用于所有支持的客户端,包括Claude Desktop、VS Code和Zed。

3.试试看

用自然语言向你的人工智能助手询问你的财务状况:

"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

这将与一个模拟提供者一起启动,该提供者生成确定性的示例帐户和交易,非常适合在连接真实帐户之前测试您的设置或在银行mcp上构建。

客户端设置

bank mcp可与任何兼容mcp的客户端配合使用。选择下面的工具。

克劳德代码

增添 .mcp.json 在项目根目录中(或 ~/.claude/.mcp.json 对于所有项目):

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

或者通过CLI添加:

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

克劳德桌面

添加到您的 claude_desktop_config.json:

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

配置文件位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json

光标

增添 .cursor/mcp.json 在项目根目录中(或 ~/.cursor/mcp.json 全球):

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

VS代码(副本)

增添 .vscode/mcp.json 在您的工作空间中:

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

帆板运动

增添 ~/.codeium/windsurf/mcp_config.json:

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

OpenAI Codex命令行界面

增添 ~/.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 settings.json:

{
  "context_servers": {
    "bank": {
      "command": {
        "path": "npx",
        "args": ["@bank-mcp/server"]
      }
    }
  }
}
没看到你的工具? 银行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?

截图

下面的所有示例都使用Claude Code和模拟提供者(npx @bank-mcp/server --mock).

列出帐户 — *“列出我的银行账户”*

检查余额 — *“我目前的余额是多少?”*

Account balances

交易历史记录 — *“显示我过去15天的交易记录”*

Recent transactions with spending breakdown

搜索交易记录 — *“查找过去两周内星巴克的所有购物记录”*

Finding Starbucks purchases

按类别划分的支出 — *“按类别显示我本月的支出”*

Category breakdown with chart

More examples (merchant analysis, subscriptions, grocery comparison, financial overview)

顶级商家 — *“我在哪些商家消费最多?”*

Merchant spending breakdown

订阅跟踪 — *“显示我的定期订阅”*

Recurring subscription analysis

杂货比较 — *“比较Trader Joe’s与Whole Foods的支出”*

Trader Joe's vs Whole Foods analysis

完整的财务状况 — *“给我完整的2月份财务状况”*

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;
  abstract listTransactions(config, accountId, filter?): Promise;
  abstract getBalance(config, accountId): Promise;
  abstract getConfigSchema(): ConfigField[];
}

提供商设置指南

启用银行服务(PSD2)

您需要什么:

  • 启用银行服务 注册应用程序的帐户
  • \[\]您的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 刷新。

出纳员(美国银行)

您需要什么:

  • A. 出纳员 开发人员帐户
  • \[\]您的应用程序ID(来自柜员仪表板)
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(欧盟开放银行)

您需要什么:

  • A. 叮当 开发人员帐户(免费测试)
  • \[\]您的客户ID和客户密码(来自 叮当控制台)
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覆盖了欧洲3400多家银行。对于沙盒,使用带有测试凭据的演示银行(如向导所示)。交易包括具有商家丰富性的PFM类别。

缓存

所有数据都缓存在内存中(没有磁盘持久性——缓存随进程一起死亡):

数据TTL为什么
帐户列表1小时帐户很少更改;最小化API调用
交易15分钟平衡新交易与新鲜度
平衡5分钟时间最敏感;用户期望当前数据

缓存是针对每个连接和每个帐户的。重新启动服务器会清除所有缓存。

多个连接

根据需要配置尽可能多的银行连接,甚至跨不同的提供商:

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

所有工具都接受可选 connectionId 参数以针对特定连接。如果省略,则会查询每个连接并合并结果,因此“显示我的所有余额”会自动跨银行工作。

安全

设计原则

mcp银行处理敏感的财务凭证。其安全态势建立在尽量减少攻击面之上:

  • 按设计只读 --the BankProvider 接口只公开读取方法(listAccounts, listTransactions, getBalance).没有写入方法——没有转账,没有账户修改,没有付款启动。这是在类型级别强制执行的,而不是按照惯例。
  • 无网络侦听器 --bank mcp作为stdio进程(stdin/stdout)运行,而不是HTTP服务器。没有开放端口,没有来自网络的攻击面。
  • 最小依赖性 --只有4个运行时依赖项(@modelcontextprotocol/sdk, @clack/prompts, jsonwebtoken, zod).更少的依赖意味着更少的供应链风险。
  • 开源 --每一行都是可审计的。没有混淆的代码,没有编译的blob,没有遥测。

凭据存储

  • 配置文件位于 ~/.bank-mcp/config.json 是通过以下方式创建的 600 权限 (仅限所有者读/写)
  • RSA密钥和证书存储在 ~/.bank-mcp/keys/ 具有相同的限制权限
  • 凭据是 从未登录 --服务器在任何调试输出之前都会对配置对象进行清理
  • 进程生命周期后没有凭据缓存——当服务器停止时,凭据仅存在于磁盘上

数据流

Your Bank's API ← HTTPS → bank-mcp (local process) ← stdio → MCP Client (local)
  • 交易数据直接从您的银行API流向您的本地MCP客户
  • 没有远程存储任何内容 --无云中继、无代理服务器、无中间存储
  • 无遥测 --零分析、无故障报告、无使用情况跟踪、无回家电话
  • 内存中的缓存是针对每个进程的,当服务器停止时就会终止

您的MCP客户看到了什么

MCP客户端(Claude、Cursor等)接收结构化工具结果,其中包含:

  • 账户名称、类型和余额
  • 交易描述、金额、日期和类别
  • 支出摘要

LLM在其上下文窗口中处理此问题。请注意,云托管的LLM会将您的对话(包括工具结果)发送到其服务器。如果这是一个问题,请使用本地模型或查看您的提供商的数据保留政策。

建议

  • 旋转令牌 --如果您的银行服务提供商支持代币轮换,请启用它
  • 先使用沙盒 --在连接真实账户之前,使用模拟数据或Plaid沙盒测试您的设置
  • 查看权限 --确保 ~/.bank-mcp/ 不是世界可读的(ls -la ~/.bank-mcp/)
  • 范围访问 --如果您的提供商支持,请请求所需的最小范围(只读帐户和事务访问)

报告漏洞

如果您发现安全问题,请直接向维护人员发送电子邮件,而不是公开问题。看 贡献.md 联系方式。

添加新提供者

可插拔架构使添加对其他银行API的支持变得简单:

  1. 创建您的提供商src/providers/your-provider/index.ts
  2. 扩展 BankProvider --执行 listAccounts, listTransactions, getBalance,以及 getConfigSchema
  3. 注册它src/providers/registry.ts
  4. 添加初始化流src/init/flows/your-provider.ts --交互式设置使用 @clack/prompts

src/providers/enable-banking/ 作为参考实现。模拟提供商 src/providers/mock/ 对于理解预期的数据形状也很有用。

故障排除

npx 正在运行旧版本

npx缓存包。强制使用最新版本:

npx @bank-mcp/server@latest

读取配置时“权限被拒绝”

配置文件应该是用户可读的:

ls -la ~/.bank-mcp/config.json
# Should show: -rw------- (600)
# Fix: chmod 600 ~/.bank-mcp/config.json

“会话已过期”(启用银行服务)

PSD2会话在90天后过期。重新运行init向导:

npx @bank-mcp/server init
# Select your existing Enable Banking connection to update the session

MCP客户端中未显示工具

  1. 验证服务器是否启动: npx @bank-mcp/server --mock (应在stdout上输出MCP协议)
  2. 检查配置文件路径是否与客户端的预期位置匹配
  3. 添加配置后重新启动MCP客户端
  4. 检查客户端的MCP日志是否存在连接错误

“ETLS”或证书错误(出纳员)

Teller需要mTLS。验证您的证书文件:

ls -la ~/.bank-mcp/keys/teller/
# Should contain: certificate.pem, private_key.pem
# Both should be chmod 600

发展

git clone https://github.com/elcukro/bank-mcp.git
cd bank-mcp
npm install
npm test          # Run tests (vitest)
npm run build     # Compile TypeScript
npm run dev       # Watch mode (recompile on change)
npm run lint      # ESLint

贡献

欢迎投稿!请看 贡献.md 作为指导方针。

如果要添加新的提供者,请先打开一个问题来讨论方法——我们希望确保集成符合项目的架构。

许可证

麻省理工学院 --随心所欲地使用它。

______________________________________________________________________

Built for the Model Context Protocol ecosystem

目录标签

目录标签

TypeScriptClaude只读访问银行数据本地部署AI助手金融查询MCP协议

支持客户端

Claude DesktopClaudeCursorWindsurfVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Node.js

部署方式(deploymentType,部署类型)

local-only

来源包(packageName,安装包名)

@bank-mcp/server

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauthlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP