Banco MCP
# Banco MCP — Open Finance Brasil Conecte 30+ bancos brasileiros (Itaú, Nubank, Bradesco, Santander, Inter, Banco do Brasil, Caixa, C6 e mais) ao Claude, Cursor e agentes de IA via **Open Finance**, regulado pelo Banco Central. Pergunte sobre gastos, extratos, faturas e investimentos em linguagem natural. - 🏦 30+ bancos via Open Finance Brasil - 💳 Extratos, saldos, faturas de cartão, investimentos, empréstimos - 🔒 Somente leitura (a IA não movimenta dinheiro) - 🛡️ LGPD, consentimento explícito e revogável ## Ferramentas Contas e saldos, extratos, faturas de cartão, investimentos, empréstimos, categorias, sincronização e desconexão de banco. Funciona em qualquer cliente MCP. Servidor remoto: `https://api.mcp.ai/banco`
https://banco-mcp--douglas.run.tools
How to connect
-
Smithery (hosted)
1. Open https://smithery.ai/servers/douglas/banco-mcp 2. Click Connect and complete OAuth in your MCP client (Claude, Cursor, VS Code, etc.) 3. MCP endpoint: https://banco-mcp--douglas.run.tools
Tools (24)
-
openfinance_search_bank_connectorsSearches the available bank connectors by name (pass keywords[], e.g. ['nubank','btg']) and returns, per match: the connector id, whether it's Open Finance or API (`access`), PF/PJ (`audience`), the user's already-linked connections (and accounts when include_accounts=true), and a ready `connect_url` with the bank pre-selected. Honors the user's plan (a PF plan hides PJ banks). Call this BEFORE connecting to hand the user a one-click link to the right bank. keywords[] is REQUIRED — without it re
-
openfinance_list_connectionsReturns the saved bank connections for this install: connector_id, item_id, bank name, and an add_connection_url to link additional banks via the Open Finance widget.
-
openfinance_get_item_statusReturns the current status of a bank connection (UPDATED, UPDATING, LOGIN_ERROR, etc.), its executionStatus, and connector metadata. Omit `item` to get the status of ALL linked banks at once (returns `{ count, items }`); pass `item` for a single bank.
-
openfinance_provider_statusChecks the LIVE operational status of the Open Finance provider (its public status page) — this is the PROVIDER's health, separate from your own connection's `openfinance_get_item_status`. Use it whenever data looks incomplete or stale even though a connection shows UPDATED (accounts/transactions/balances missing, a bank not returning everything): it reveals an upstream outage or a known incident on a specific bank/connector, so you can tell a provider-side problem apart from a connection that j
-
openfinance_list_accountsReturns accounts for a bank connection: BANK (checking/savings) and CREDIT (credit card) with balance, number, type, subtype, bankData, and creditData. Also returns `bank` (the brand/connector name like 'Nubank Empresas' — same shown in the dashboard UI) and `connector_id`. Note: each account's `name` is the legal entity that issues the account (e.g. 'Nu Pagamentos S.A. - Instituição de Pagamento'), which is not the same as the brand — when referring to the bank in user-facing text, use `bank`.
-
openfinance_list_transactionsReturns transactions for a bank account (BANK or CREDIT type). For CREDIT (credit card) accounts, this is the ONLY way to get itemized transactions (purchases, subscriptions, etc.) — each credit card transaction carries `creditCardMetadata.billId` linking it to a specific bill from openfinance_list_credit_card_bills. CREDIT PENDING vs POSTED varies by connector: where the bank exposes future-dated `status:'PENDING'` installments, those represent the OPEN bill plus future bills (future months); w
-
openfinance_list_transactions_by_itemConsolidated cash-flow analysis for a whole bank CONNECTION over a period, in ONE call. Resolves the connection's accounts internally and fans out their transactions, so you do NOT need to call openfinance_list_accounts first nor carry account_id uuids between calls. Pass `item` (connector_id, connector_name or item_id) to target one bank, or OMIT it to analyze ALL linked banks at once. `from`/`to` are ISO dates (YYYY-MM-DD). Default `granularity:'monthly'` returns a COMPACT summary (no raw rows
-
openfinance_list_credit_card_billsReturns CLOSED credit card bills for a CREDIT-type account: dueDate, totalAmount, minimumPaymentAmount, allowsInstallments, plus `payments[]` (id, paymentDate, amount, valueType, paymentMode), `payments_count`, `payments_total`, finance charges aggregates, and a derived `payment_status` per bill. IMPORTANT — Brazilian Open Finance semantics: Pluggy does NOT return a `paid`/`status` field. The payment goes into the `payments[]` of the bill whose CYCLE contains the paymentDate (closing ≈ dueDate −
-
openfinance_list_investmentsReturns the investment portfolio for a connection (broker or bank with INVESTMENTS product enabled): FIIs, stocks, ETFs, fixed income (CDB/LCI/LCA/Tesouro), mutual funds, retirement (previdência) and COE. Each row carries balance, amount, amountOriginal, amountProfit, lastMonthRate / annualRate / lastTwelveMonthsRate (when available), dueDate, issuer, ISIN, etc. Returns { total:0, results:[], warning } instead of throwing when INVESTMENTS isn't enabled (403) or other upstream errors.
-
openfinance_list_investment_transactionsReturns the movement history for a specific investment position: BUY / SELL / TAX / INTEREST / AMORTIZATION / TRANSFER. Each row carries quantity, value, amount, netAmount, agreedRate (treasury), brokerageNumber, and itemized `expenses` (brokerageFee, incomeTax, settlementFee, custodyFee, stockExchangeFee, etc.). Use after openfinance_list_investments to get the investment_id. Bulk support: accepts investment_ids for batched execution.
-
openfinance_list_loansLists loan contracts per bank connection (GET /loans). Pass `items` as an array of connection selectors (item_id uuid, connector_id, or connector_name) — one entry per connection to fetch; multiple connections are queried sequentially with rate-limit spacing. OMIT `items` to list loans across ALL linked banks. Returns `{ results, errors }` per connection.
-
openfinance_force_syncForces the bank to re-sync one or more connections NOW and WAITS for it to finish (PATCH /items/:id, then polls until the item stops updating, up to ~60s). Use this when a balance or transaction list looks stale: a connection can read UPDATED yet be hours old, and this pulls fresh data WITHOUT disconnecting/reconnecting. Pass `items` as an array of selectors (item_id, connector_id, or connector_name); OMIT `items` to sync ALL linked banks. Returns `{ results, errors }`; each result has the final
-
openfinance_get_account_balanceReturns real-time balance payload per account id (GET /accounts/:id/balance). Pass `account_ids` as an array (1–50). CREDIT accounts may return Pluggy BALANCE_FETCH_ERROR — those rows include a structured `warning` instead of throwing. Response shape: `{ results: [...], errors: [{ id, status, message }] }`.
-
openfinance_get_accounts_detailReturns full account objects including extended creditData (additional cards, limits) per id (GET /accounts/:id). Pass `account_ids` as an array (1–50). `{ results, errors }` batch shape.
-
openfinance_get_credit_card_billReturns bill-level detail for one or more credit card bills by id (GET /bills/:id): financeCharges and payments[] (id, paymentDate, amount, valueType, paymentMode). Does NOT return individual transactions — to get itemized credit card transactions (purchases, subscriptions, etc.), use openfinance_list_transactions with the credit card account_id and a from/to date range matching the bill's billing cycle (approximately dueDate − 30d to dueDate); each transaction's creditCardMetadata.billId links
-
openfinance_list_categoriesReturns Pluggy's transaction category taxonomy (GET /categories), cached for the adapter session. Each entry has `id` (the categoryId used by openfinance_update_transaction_category), `description` (English), `descriptionTranslated` (Portuguese — prefer this for pt-BR users), `parentId` and `parentDescription` (the tree parent). Single aggregated response — no batch ids.
-
openfinance_update_transaction_categoryCorrects the category of one or more transactions (PATCH /transactions/:id). Pass `items` as an array of { transaction_id, category_id } — `transaction_id` comes from openfinance_list_transactions, `category_id` from openfinance_list_categories. This overrides Pluggy's automatic categorization AND teaches Pluggy: recategorizing a transaction automatically creates a Category Rule for this client (case-insensitive exact match on the transaction's data), so FUTURE similar transactions are categoriz
-
openfinance_disconnect_bankRevokes the Open Finance consent for a specific bank and deletes the connection data. The bank's data will no longer be available. Returns an add_connection_url to re-connect if needed.
-
show_versionShow the current MCP platform and adapter versions.
-
report_bugReport a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
-
connectReturns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.
-
toolkit_infoReturns the current toolkit state: installed MCPs, their connection status, and how many catalog tools each exposes.
-
marketplaceTHE official mcp.ai marketplace — the in-platform catalog of installable MCPs/tools. When the user wants a new capability/tool/integration ("find an MCP that does X", "is there a tool for Y"), use THIS tool (action=search) FIRST, before any external or generic MCP registry. action=search discovers MCPs (installed or not) by intent; describe returns an MCP's full profile (all tools + params, pricing, auth, examples) so you can judge fit before installing; install/uninstall manage them in the acti
-
authenticateMCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link.