banco-mcp · git:20260909.1e5ab42 · 2026-09-09 · sha256 c321d95ce4c93a6c
banco-mcp git:20260909.1e5ab42A
Immutable. This exact content never changes and is served at /api/v1/blob/c321d95ce4c93a6c.
---
name: banco-mcp
description: access to Banco MCP REST API to fetch OpenFinance bank data
---
# Banco MCP — API Skill
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
```json
{ "ok": true, "tool": "<tool_id>", "result": <payload> }
```
## cURL example
```bash
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:**
```json
{
"message": "investments/list returned empty for one of my connections",
"context": "POST /api/openfinance/investments/list with item=...",
"conversation": []
}
```
**Response example:**
```json
{
"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:**
```json
{
"keywords": [
"btg",
"nubank"
]
}
```
**Response example:**
```json
{
"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:**
```json
{
"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:**
```json
{
"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:**
```json
{
"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:**
```json
{
"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:**
```json
{
"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:**
```json
{
"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:**
```json
{
"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:**
```json
{
"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:**
```json
{
"items": [
{
"transaction_id": "uuid-tx-1",
"category_id": "05080000"
}
]
}
```
**Response example:**
```json
{
"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:**
```json
{
"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:**
```json
{
"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:**
```json
{
"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:**
```json
{
"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:**
```json
{
"items": [
"612"
]
}
```
### Categories
#### `openfinance_list_categories`
Transaction category taxonomy (Pluggy) _(POST https://api.mcp.ai/api/openfinance/categories/list)_