Banco MCP — API Skill
SkillCommerce & financeaccess to Banco MCP REST API to fetch OpenFinance bank data
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Banco MCP — API Skill skill
What this skill tells your AI
The instructions your AI receives, as published by barbieri/local-openfinance in .agents/skills/banco-mcp/SKILL.md and read by ahel’s review.
You have access to the Banco MCP REST API on MCP.AI.
Aggregates bank data (balances, bills and statements) via Brazil's Open Finance. Each institution becomes a connection; multiple banks per user are stored in credentials.connections[]. Read-only.
Base URL
https://api.mcp.ai/api/openfinance
Every endpoint is a POST to the base URL + the endpoint path below. All parameters go in the JSON body. Action-style endpoints take a required action field that selects the operation.
Authentication
Include in every request:
Authorization: Bearer sk_live_...
Content-Type: application/json
Response format
{ "ok": true, "tool": "<tool_id>", "result": <payload> }
cURL example
curl -X POST https://api.mcp.ai/api/openfinance/connectors/search \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"keywords":["btg","nubank"]}'
Discovering endpoints
This API self-documents. For the always-current version of this documentation, no auth required:
- Structured JSON (all endpoints + parameters + examples):
GET https://api.mcp.ai/api/openfinance/_endpoints - OpenAPI 3.1 spec (Swagger / Insomnia / Postman import):
GET https://api.mcp.ai/api/openfinance/_openapi - This skill in markdown:
GET https://api.mcp.ai/api/openfinance/_skill.md
Use these when learning a new MCP, refreshing a stale catalog, or integrating from a fresh agent context.
Reporting problems
If any endpoint returns an error, empty or unexpected data, or you suspect a platform bug, report it instead of silently giving up. This notifies the MCP.AI team so they can look into it.
report_bug
Report a problem, empty or unexpected data, or a suspected platform bug to the MCP.AI team (POST https://api.mcp.ai/api/openfinance/report)
| Parameter | Type | Required | Description |
|---|---|---|---|
message | string | Yes | What went wrong or what you expected to happen |
context | string | No | Endpoint that failed, error message, or what you were trying to do |
conversation | array | No | Recent messages for reproduction. Array of { role, content, tool_name? } |
Request body:
{
"message": "investments/list returned empty for one of my connections",
"context": "POST /api/openfinance/investments/list with item=...",
"conversation": []
}
Response example:
{
"ok": true,
"tool": "report_bug",
"result": {
"report_id": "bug_...",
"message": "Report received (bug_...). The MCP.AI team has been notified. Thank you!"
}
}
Available endpoints (16)
Connections
openfinance_search_bank_connectors
Search bank connectors (Open Finance/API) by name (POST https://api.mcp.ai/api/openfinance/connectors/search)
| Parameter | Type | Required | Description |
|---|---|---|---|
keywords | string[] | Yes | Bank name/id terms (OR match), e.g. ['nubank','btg']. Required. |
include_accounts | boolean | No | Include accounts (+ count) of each already-linked connection. One call per connection; default false. |
Request body:
{
"keywords": [
"btg",
"nubank"
]
}
Response example:
{
"ok": true,
"tool": "openfinance_search_bank_connectors",
"result": {
"banks": [
{
"id": "675",
"name": "BTGPactual",
"access": "open_finance",
"type": "PERSONAL_BANK",
"audience": "pf",
"connect_url": "https://app.mcp.ai/connect/mi_…?u=usr_…&flow=quick&field_bank_id=675"
}
],
"connect_url_base": "https://app.mcp.ai/connect/mi_…?u=usr_…&flow=quick",
"totals": {
"matched": 1,
"connected_connections": 0,
"connected_accounts": 0
}
}
}
openfinance_list_connections
List connected banks (POST https://api.mcp.ai/api/openfinance/connections/list)
Response example:
{
"ok": true,
"tool": "openfinance_list_connections",
"result": {
"connections": [
{
"connector_id": "612",
"connector_name": "Nubank",
"item_id": "uuid-aaa",
"status": "UPDATED"
}
],
"count": 1,
"add_connection_url": "https://app.mcp.ai/connect/mi_…?u=usr_…&add=1"
}
}
openfinance_get_item_status
Status of a connection (UPDATED, LOGIN_ERROR…) (POST https://api.mcp.ai/api/openfinance/connections/status)
| Parameter | Type | Required | Description |
|---|---|---|---|
item | string | No | item_id (uuid), connector_id ('612'), or connector_name ('Nubank'). Omit when only 1 connection. |
Request body:
{
"item": "612"
}
openfinance_force_sync
Force-sync one or more connections (POST https://api.mcp.ai/api/openfinance/connections/sync)
| Parameter | Type | Required | Description |
|---|---|---|---|
items | string[] | Yes | Connection selectors (item_id, connector_id, or connector_name). 1-50. |
Request body:
{
"items": [
"612",
"Itaú"
]
}
openfinance_disconnect_bank
Revoke Open Finance consent for a bank (POST https://api.mcp.ai/api/openfinance/connections/disconnect)
| Parameter | Type | Required | Description |
|---|---|---|---|
item | string | Yes | item_id (uuid), connector_id, or connector_name of the connection. |
Request body:
{
"item": "Nubank"
}
Accounts
openfinance_list_accounts
List accounts (BANK / CREDIT) of a connection (POST https://api.mcp.ai/api/openfinance/accounts/list)
| Parameter | Type | Required | Description |
|---|---|---|---|
item | string | No | Target connection. |
type | string | No | Filter by type. (BANK, CREDIT) |
CREDIT account rows include creditData with card brand/level/limits and, when the institution exposes them, balanceCloseDate (statement closing date) and balanceDueDate (payment due date).
Request body:
{
"item": "612",
"type": "BANK"
}
openfinance_get_accounts_detail
Full account detail by id (batch 1-50) (POST https://api.mcp.ai/api/openfinance/accounts/detail)
| Parameter | Type | Required | Description |
|---|---|---|---|
account_ids | string[] | Yes | Account uuids. 1-50. |
Request body:
{
"account_ids": [
"uuid-a",
"uuid-b"
]
}
openfinance_get_account_balance
Real-time balance per account (batch 1-50) (POST https://api.mcp.ai/api/openfinance/accounts/balance)
| Parameter | Type | Required | Description |
|---|---|---|---|
account_ids | string[] | Yes | Account uuids. 1-50. |
Request body:
{
"account_ids": [
"uuid-a",
"uuid-b"
]
}
Transactions
openfinance_list_transactions
Transactions per account (BANK or CREDIT) with date/keyword filters (POST https://api.mcp.ai/api/openfinance/transactions/list)
| Parameter | Type | Required | Description |
|---|---|---|---|
account_id | string | Yes | Account uuid. |
from | string | No | Start date ISO (YYYY-MM-DD). |
to | string | No | End date ISO (YYYY-MM-DD). |
page | number | No | Page (default 1). |
page_size | number | No | Items per page (1-500, default 50). |
search_queries | string[] | No | Keyword filter (OR). Triggers aggregated scan in from/to. |
detail | string | No | Response shape: omit for compact (default), rich for bill/merchant metadata (billId, purchaseDate, payeeMCC, merchant CNPJ/CNAE, …), or raw for the full upstream Open Finance object. Coverage varies by institution. |
Request body:
{
"account_id": "uuid-a",
"from": "2026-04-01",
"to": "2026-04-30",
"detail": "rich",
"search_queries": [
"uber",
"ifood"
]
}
openfinance_update_transaction_category
Fix transaction categories (auto-creates a rule) (POST https://api.mcp.ai/api/openfinance/transactions/category)
| Parameter | Type | Required | Description |
|---|---|---|---|
items | object[] | Yes | { transaction_id, category_id } pairs. 1-50. category_id comes from /categories/list. |
Request body:
{
"items": [
{
"transaction_id": "uuid-tx-1",
"category_id": "05080000"
}
]
}
Response example:
{
"ok": true,
"tool": "openfinance_update_transaction_category",
"result": {
"updated": 1,
"results": [
{
"transaction_id": "uuid-tx-1",
"category": "Food and drink",
"categoryId": "05080000"
}
],
"errors": []
}
}
Credit_cards
openfinance_list_credit_card_bills
Credit card bills (with derived payment_status) (POST https://api.mcp.ai/api/openfinance/credit-card-bills/list)
| Parameter | Type | Required | Description |
|---|---|---|---|
account_id | string | Yes | CREDIT account uuid. |
page | number | No | |
page_size | number | No | 1-100. |
Request body:
{
"account_id": "uuid-credit"
}
openfinance_get_credit_card_bill
Bill detail by id (batch 1-50) (POST https://api.mcp.ai/api/openfinance/credit-card-bills/detail)
| Parameter | Type | Required | Description |
|---|---|---|---|
bill_ids | string[] | Yes | Bill uuids. 1-50. |
Request body:
{
"bill_ids": [
"uuid-bill-1"
]
}
Investments
openfinance_list_investments
Investment portfolio per connection (POST https://api.mcp.ai/api/openfinance/investments/list)
| Parameter | Type | Required | Description |
|---|---|---|---|
item | string | No | |
type | string | No | Filter by type. (COE, EQUITY, ETF, FIXED_INCOME, MUTUAL_FUND, SECURITY, OTHER) |
page | number | No | |
page_size | number | No | 1-500, default 100. |
Request body:
{
"item": "612",
"type": "FIXED_INCOME"
}
openfinance_list_investment_transactions
Movement history of an investment position (BUY/SELL/TAX/…) (POST https://api.mcp.ai/api/openfinance/investments/transactions/list)
| Parameter | Type | Required | Description |
|---|---|---|---|
investment_id | string | Yes | Investment uuid. |
page | number | No | |
page_size | number | No | 1-500, default 100. |
Request body:
{
"investment_id": "uuid-inv"
}
Loans
openfinance_list_loans
Loan contracts per connection (batch) (POST https://api.mcp.ai/api/openfinance/loans/list)
| Parameter | Type | Required | Description |
|---|---|---|---|
items | string[] | Yes | Connection selectors. 1-50. |
Request body:
{
"items": [
"612"
]
}
Categories
openfinance_list_categories
Transaction category taxonomy (Pluggy) (POST https://api.mcp.ai/api/openfinance/categories/list)
Signals
- GitHub stars
- 22
- Forks
- 2
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
banco-mcp- Source
- github.com/barbieri/local-openfinance