关于 Open Banking (open-banking.io)
Open Banking 是只读 MCP 服务,通过 open-banking.io PSD2 API 获取账户、余额、交易和连接状态。敏感字段使用用户私钥在本地解密,不提供资金转移或授权管理操作。
主要功能
- 01列出账户和银行连接
- 02获取余额与交易记录
- 03在本地解密敏感数据
- 04以精确十进制字符串返回金额
- 05只读工具与交易分页
适用场景
- 01查看多个银行账户的余额
- 02汇总指定日期范围内的支出
- 03检查连接状态和到期日期
MCP 相关
该服务向 MCP 客户端提供账户、余额、交易和银行连接的只读工具。它通过 Python SDK 和配置的凭据访问 open-banking.io API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
open-banking.io MCP 服务
一个精简的、只读 Model Context Protocol 服务,适用于 open-banking.io PSD2 API。它让 AI Agent(Claude Desktop、Cursor、 任何 MCP 客户端)能够查询你自己的银行账户,例如 “我的余额是多少?” 和 “总结一下上个月的交易”。
该服务封装了官方 open-banking-io Python SDK,
并继承了其零知识特性:服务只返回密文,所有敏感字段(IBAN、持有人姓名、金额、交易对手)都使用你导出的
私钥在进程内解密。明文绝不会接触第三方;包括大模型在内,只能看到 MCP 客户端发送给它的内容。
工具
| 工具 | 参数 | 描述 |
|---|---|---|
list_accounts | — | 银行账户:银行、国家、IBAN、持有人、显示名称、币种、余额、needs_reconnect 标记 |
get_balances | account_id | 单个账户的 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);使用分开的环境变量时必填 |
在应用中选择 → Settings → Credentials,即可导出凭据包文件。
Claude Desktop
claude_desktop_config.json(Claude → Settings → 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
可向 Agent 提出的问题示例
- “显示每个账户的已记账余额。”
- “我 7 月在食品杂货上花了多少钱?”(
get_transactions+ 分组) - “我的哪些银行连接即将过期?”(
list_connections)
设计说明
- 从设计上确保只读。 只公开 SDK 的
get_*方法。SDK 中虽有sync/sync_all,但有意不提供;Agent 无法通过此服务转移资金或更改授权。 - 金额精确。 金额以精确的十进制字符串(
"1234.56")返回,绝不使用浮点数。 - 清晰的错误信息。 凭据缺失、日期无效、账户 ID 未知和上游 HTTP 错误都会显示为可操作的工具错误(例如,账户 ID 不存在时列出有效的账户 ID)。
- 适配上下文窗口。
get_transactions默认返回 50 条,并限制最多返回 500 条,以保护 Agent 的上下文窗口;使用offset分页。
局限性(如实列出)
- 没有写入工具:无法同步、发起付款或创建/续期授权。授权续期始终在 open-banking.io 应用中进行(PSD2 SCA)。
- 没有银行/机构目录工具:上游 API(SDK v1.0.0)未提供公开的 ASPSP 搜索端点——如果 API 添加了该端点,再考虑实现。
- 尚未发布到 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 仓库 ·
THREAT_MODEL.md。
许可证
MIT——与 clients SDK 仓库相同。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。