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 整合