Openfinance Br Mcp

io.github.brunovicco由 GitHub 账号 brunovicco 发布v0.2.0更新于 Oct 27, 2026

Secure Open Finance Brasil MCP server with typed tools and a credential-free mock mode

发布方自己的服务:OpenFinance — Easy Trading: Crypto, Stocks, Perps & Prediction Markets

已验证STDIO仅桌面金融开发者工具

概览

AI 生成的概览

实验性的 Open Finance Brasil MCP 服务器,提供账户、卡片、投资、PIX 与同意的类型化工具,并带无需凭据的模拟模式。

可以做什么
  • 列出账户、查询余额并列出交易,可选择由 Claude 分类
  • 列出信用卡及其账单
  • 列出投资、基金、可变收益与国债
  • 列出 PIX 密钥并发起 PIX 支付
  • 启动、完成、查询与撤销数据同意和支付同意
  • 提供银行资源、月度支出分析提示词,以及发起授权流程时可选用的 URL 引导
适用场景
适合在无凭据的情况下,用十家巴西银行的模拟数据试用 Open Finance Brasil 风格的银行查询,例如按类别汇总支出。真实机构接入仍属实验性且未经校验,宜作为沙箱或原型使用,而非生产级财务工具。
运行要求
本机需 Python 3.12 或 3.13 及 uv,可通过 uvx 或源码运行。模拟模式无需任何凭据。沙箱或生产模式需 CLIENT_ID、PRIVATE_KEY_PATH、PRIVATE_KEY_KID,生产模式还需 MTLS_CERT_PATH 与 MTLS_KEY_PATH。仅 categorize=true 时需要 ANTHROPIC_API_KEY;REDIS_URL 可选,用于共享状态。
安装前请注意
非模拟模式需要在磁盘上放置 RSA 私钥与 mTLS 密钥材料,并配置已注册的客户端 ID,请勿放入共享配置。指向生产环境时,PIX 支付与同意工具可发起真实支付、授予或撤销访问权限。categorize=true 时交易数据与分类提示词可能发送给 Anthropic。项目声明其未获认证,也未针对真实机构校验。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Openfinance Br Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

English · Português

openfinance-br-mcp

Experimental MCP server for Open Finance Brasil, with a complete mock environment and evolving FAPI-BR integration. It is not certified or validated against real institutions; see VALIDATION.md before using it outside environment=mock.

[Python 3.12] [uv] [Code style: black] [Ruff]


What it is

An MCP Server that abstracts away the complexity of Open Finance Brasil (FAPI 1.0 Advanced, OAuth2, consent, mTLS) and exposes simple tools to 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..."

Supported banks

The mock environment simulates Nubank, Sicoob, Caixa, Banco do Brasil, Bradesco, Itaú, Santander, XP, PicPay, and BTG Pactual with in-memory data and no network access. These are simulations, not certified integrations.

Real adapters and the Payments API journey are experimental and unvalidated. Payments use the v5 payments-consents/payments-pix Directory families, dedicated per-consent tokens, verified response JWS, PAR/JAR, consent-payload binding, and persistent idempotency. list_pix_keys is a demonstration extension rather than a standardized Open Finance Brasil endpoint. See VALIDATION.md for the exact scope.

Available MCP tools

The server exposes 18 tools grouped by journey:

  • Accounts: list_accounts, get_balance, list_transactions
  • Cards: list_credit_cards, get_credit_card_bills
  • Investments: list_investments, list_funds, list_variable_incomes, list_treasure_titles
  • PIX: list_pix_keys, initiate_pix
  • Data consent: start_consent, complete_consent, check_consent_status, revoke_consent
  • Payment consent: start_payment_consent, complete_payment_consent, check_payment_consent_status

It also exposes the openfinance://banks/ resource, the analyze_monthly_spending prompt, and optional URL elicitation when starting an authorization flow.

Quick start

Prerequisites

  • Python 3.12 or 3.13
  • uv installed
bash
# Run the published release in credential-free mock modeuvx --from openfinance-br-mcp==0.2.0 openfinance-mcp

From source

bash
git clone https://github.com/brunovicco/openfinance-br-mcp.gitcd openfinance-br-mcp
# Optional: needed only for sandbox/production or DSPy categorizationcp .env.example .env
# Install dependenciesuv sync
# Run the serveruv run openfinance-mcp

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

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

Development

bash
# Install with dev-dependenciesuv sync
# Run the testsuv run pytest tests/ -v
# Lint and formattinguv run ruff check src/ tests/uv run black src/ tests/
# Type checkuv run mypy src/

Containers and Kubernetes

bash
docker compose up openfinance-mcpdocker compose --profile test up

The k8s/ directory contains a two-replica Streamable HTTP example with Redis-backed state. Replace every credential, signing-key, OAuth issuer, resource-server, and domain placeholder before applying it. The server fails closed when HTTP is exposed outside loopback without MCP client OAuth.

Architecture

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 variables

VariableRequiredDescription
ENVIRONMENT❌mock (default, no credentials needed), sandbox, or production
CLIENT_ID⚠️ non-mockClient ID registered with the institution
PRIVATE_KEY_PATH⚠️ non-mockRSA private key for private_key_jwt/JAR signing
PRIVATE_KEY_KID⚠️ non-mockkid matching the registered client JWKS
MTLS_CERT_PATH⚠️ prodPath to the mTLS certificate
MTLS_KEY_PATH⚠️ prodmTLS private key
ANTHROPIC_API_KEY⚠️ DSPyRequired for categorize=true
REDIS_URL❌Shares TokenStore/ConsentManager state across replicas
MCP_TRANSPORT❌stdio (default) or streamable-http
MCP_HTTP_ALLOWED_ORIGINS⚠️ remote HTTPRequired allowlist for any non-loopback bind
LANGFUSE_OTLP_ENDPOINT❌Enables tracing to Langfuse (with LANGFUSE_PUBLIC_KEY/LANGFUSE_SECRET_KEY)
LOG_LEVEL❌INFO, DEBUG, WARNING (default: INFO)
LOG_FORMAT❌json or console (default: json)

See .env.example for the full list.

Documentation

  • Authorization - the two token universes and why they can never cross
  • Contributing - dev setup, CI checks, and adding an adapter
  • Security - scope, disclaimer, and vulnerability reporting
  • Sources - specifications and RFCs followed by the implementation
  • Validation - what has and has not been validated
  • Changelog - release history
  • Releasing - maintainer release procedure

License

MIT

来源:README.md,提交 0b42e27

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Openfinance 集成