mcpField
O
openfinance-br-mcp

openfinance-br-mcp

本地服务
github.com/brunovicco金融数据215 周前更新

关于 openfinance-br-mcp

openfinance-br-mcp 是面向 Open Finance Brasil 的实验性 MCP 服务,供需要访问模拟金融数据或探索 FAPI-BR 集成的客户端使用。免凭据 mock 模式可模拟多家银行;真实机构集成尚未验证。

主要功能

  1. 0118 个类型化金融工具
  2. 02内存中的银行模拟数据
  3. 03账户、信用卡与投资数据
  4. 04授权同意与 PIX 支付流程
  5. 05银行资源与支出提示词

适用场景

  1. 01无凭据测试金融数据工作流
  2. 02查看模拟账户和信用卡信息
  3. 03探索授权同意与 PIX 支付流程

MCP 相关

通过 stdio 或 Streamable HTTP 提供 18 个工具、`openfinance://banks/` 资源和 `analyze_monthly_spending` 提示词。可选 URL elicitation 支持银行授权流程。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"brunovicco-openfinance-br": {
"command": "uvx",
"args": [
"openfinance-br-mcp"
],
"env": {
"ENVIRONMENT": "<ENVIRONMENT>",
"CLIENT_ID": "<CLIENT_ID>",
"PRIVATE_KEY_PATH": "<PRIVATE_KEY_PATH>",
"PRIVATE_KEY_KID": "<PRIVATE_KEY_KID>",
"MTLS_CERT_PATH": "<MTLS_CERT_PATH>",
"MTLS_KEY_PATH": "<MTLS_KEY_PATH>",
"REDIS_URL": "<REDIS_URL>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>"
}
}
}
}
启动命令uvx openfinance-br-mcp
需要配置的环境变量
ENVIRONMENT'mock' (default, no credentials needed - runs entirely in-memory), 'sandbox', or 'production'
CLIENT_IDClient ID registered with the participating institution. Required unless ENVIRONMENT=mock
PRIVATE_KEY_PATH密钥Path to the RSA private key used for private_key_jwt and JAR signing outside mock mode
PRIVATE_KEY_KID密钥Key ID matching the registered client JWKS entry outside mock mode
MTLS_CERT_PATHPath to the client mTLS certificate used outside mock mode
MTLS_KEY_PATH密钥Path to the client mTLS private key used outside mock mode
REDIS_URL密钥Optional Redis connection URL for persistent consent and token state
ANTHROPIC_API_KEY密钥Required only when calling list_transactions with categorize=true (DSPy transaction categorization)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiopenfinance-br-mcp0.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

English · Português

openfinance-br-mcp

面向 Open Finance Brasil 的实验性 MCP 服务,包含完整的模拟环境和不断完善的 FAPI-BR 集成。该服务未经认证,也未通过真实机构验证;在 environment=mock 以外的环境中使用前,请参阅 VALIDATION.md。

Python 3.12 uv Code style: black Ruff


项目简介

一个 MCP 服务,用于抽象 Open Finance Brasil(FAPI 1.0 Advanced、OAuth2、授权同意、mTLS)的复杂性,并向 Claude 提供简单的工具:

Claude → "how much did I spend on food in March?"
Claude uses list_transactions(bank=nubank, categorize=true, date_from=2024-03-01)
Claude → "You spent R$ 847.30 on food in March..."

支持的银行

模拟环境通过内存数据模拟 Nubank、Sicoob、Caixa、Banco do Brasil、 Bradesco、Itaú、Santander、XP、PicPay 和 BTG Pactual,且不访问网络。这些是模拟场景,并非经过认证的集成。

真实适配器和 Payments API 流程均为实验性功能,尚未经过验证。 Payments 使用 v5 payments-consents/payments-pix Directory 系列、 每个授权同意专用的令牌、经过验证的响应 JWS、PAR/JAR、授权同意负载绑定和持久化幂等机制。 list_pix_keys 是演示扩展,并非标准化的 Open Finance Brasil 端点。确切范围请参阅 VALIDATION.md。

可用的 MCP 工具

该服务提供 18 个工具,按流程分组:

  • 账户: list_accounts、get_balance、list_transactions
  • 银行卡: list_credit_cards、get_credit_card_bills
  • 投资: list_investments、list_funds、 list_variable_incomes、list_treasure_titles
  • PIX: list_pix_keys、initiate_pix
  • 数据授权同意: start_consent、complete_consent、 check_consent_status、revoke_consent
  • 支付授权同意: start_payment_consent、complete_payment_consent、 check_payment_consent_status

此外,它还提供 openfinance://banks/ 资源、analyze_monthly_spending 提示词,以及在启动授权流程时可选的 URL 引导功能。

快速开始

前置条件
  • Python 3.12 或 3.13
  • 已安装 uv
# Run the published release in credential-free mock mode
uvx --from openfinance-br-mcp==0.2.0 openfinance-mcp
从源代码运行
git clone https://github.com/brunovicco/openfinance-br-mcp.git
cd openfinance-br-mcp

# Optional: needed only for sandbox/production or DSPy categorization
cp .env.example .env

# Install dependencies
uv sync

# Run the server
uv run openfinance-mcp
Claude Desktop

将以下内容添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "openfinance-br": {
      "command": "uvx",
      "args": ["--from", "openfinance-br-mcp==0.2.0", "openfinance-mcp"]
    }
  }
}

开发

# Install with dev-dependencies
uv sync

# Run the tests
uv run pytest tests/ -v

# Lint and formatting
uv run ruff check src/ tests/
uv run black src/ tests/

# Type check
uv run mypy src/

容器和 Kubernetes

docker compose up openfinance-mcp
docker compose --profile test up

k8s/ 目录包含一个由 Redis 提供状态存储、运行两个副本的 Streamable HTTP 示例。应用前,请替换所有凭据、签名密钥、OAuth 颁发方、资源服务器和域名占位符。如果在回环地址以外暴露 HTTP,但未配置 MCP 客户端 OAuth,服务将拒绝启动。

架构

Claude (MCP Client)
        │ stdio or streamable-http
        ▼
openfinance-br-mcp (MCP Server)
  ├── Auth + Consent  (FAPI-BR 2.2.0: private_key_jwt, PAR/JAR, PKCE, mTLS)
  ├── MCP Primitives  (18 tools + 1 resource + 1 prompt)
  │   ├── Pydantic v2 input/output schemas
  │   ├── Optional URL elicitation for bank authorization
  │   └── Categorizer (DSPy + Claude for transaction classification)
  ├── Bank Adapters   (10 banks - extensible)
  └── Directory Client (resolves real bank endpoints from the BCB
                         Directory of Participants)
        │ HTTPS/mTLS
        ▼
Open Finance BR (BCB) - Directory of Participants
        │
        ▼
  Nubank · Sicoob · Caixa · + 100 participating institutions

环境变量

变量必填描述
ENVIRONMENT❌mock(默认,无需凭据)、sandbox 或 production
CLIENT_ID⚠️ 非 mock在机构注册的客户端 ID
PRIVATE_KEY_PATH⚠️ 非 mock用于 private_key_jwt/JAR 签名的 RSA 私钥
PRIVATE_KEY_KID⚠️ 非 mock与已注册客户端 JWKS 匹配的 kid
MTLS_CERT_PATH⚠️ 生产环境mTLS 证书路径
MTLS_KEY_PATH⚠️ 生产环境mTLS 私钥
ANTHROPIC_API_KEY⚠️ DSPycategorize=true 时必需
REDIS_URL❌在多个副本之间共享 TokenStore/ConsentManager 状态
MCP_TRANSPORT❌stdio(默认)或 streamable-http
MCP_HTTP_ALLOWED_ORIGINS⚠️ 远程 HTTP任何非环回绑定都必须设置允许列表
LANGFUSE_OTLP_ENDPOINT❌启用向 Langfuse 发送跟踪数据(需配合 LANGFUSE_PUBLIC_KEY/LANGFUSE_SECRET_KEY)
LOG_LEVEL❌INFO、DEBUG、WARNING(默认:INFO)
LOG_FORMAT❌json 或 console(默认:json)

完整列表请参阅 .env.example。

文档

  • 授权 - 两种令牌体系,以及它们为何绝不能互通
  • 贡献 - 开发环境设置、CI 检查和添加适配器
  • 安全 - 范围、免责声明和漏洞报告
  • 来源 - 实现所遵循的规范和 RFC
  • 验证 - 已验证和未验证的内容
  • 更新日志 - 发布历史
  • 发布 - 维护者发布流程

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。