FIO Bank MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FIO Bank MCP Servershow me transactions from December 1 to December 31 2023"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FIO Bank MCP Server
An MCP (Model Context Protocol) server for FIO Bank API in the Czech Republic. Allows AI assistants like Claude to access FIO Bank account transactions.
Installation
pnpm install
pnpm buildRelated MCP server: folio-mcp
Configuration
Getting an API Token
Log in to your FIO Bank internet banking
Go to Settings → API
Create a new token (requires SMS or push notification)
Wait 5 minutes before using the token
Token Properties
Each token is valid for one account only
Maximum validity: 180 days
Can auto-renew on each login to internet banking
Usage
With Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"fio-bank": {
"command": "node",
"args": ["/path/to/fio-bank-mcp/dist/index.js"],
"env": {
"FIO_API_TOKEN": "your-64-character-token-here"
}
}
}
}Available Tools
fio_get_transactions
Get account transactions for a specific date range.
Parameters:
Name | Type | Required | Description |
| string | Yes | Start date (YYYY-MM-DD) |
| string | Yes | End date (YYYY-MM-DD) |
| string | No | API token (uses |
Returns:
Account info (IBAN, BIC, balance)
List of transactions with:
Transaction ID, date, amount, currency
Counter account (number, name, bank)
Payment symbols (variable, constant, specific)
Message for recipient, comments
Transaction type
Testing Locally
Use the MCP Inspector to test the server with a web UI:
npx @modelcontextprotocol/inspector node dist/index.jsThis opens a browser where you can see available tools, call them with parameters, and view responses.
To pass the API token:
FIO_API_TOKEN=your-token npx @modelcontextprotocol/inspector node dist/index.jsAPI Rate Limits
1 request per 30 seconds per token. The server automatically waits if needed.
Data Access
Data up to 90 days old: accessible immediately
Data older than 90 days: requires temporary unlock in internet banking (Settings → API → click lock icon, valid for 10 minutes)
Error Codes
Code | Description |
404 | Invalid URL or token |
409 | Rate limit exceeded (wait 30 seconds) |
413 | Too many transactions in response |
422 | Invalid request data |
500 | Internal server error |
Development
pnpm install # Install dependencies
pnpm build # Build TypeScript
pnpm lint # Run ESLint
pnpm typecheck # Type check without emittingResources
License
MIT
Available Tools
1 toolfio_get_transactionsA
Get account transactions for a date range from FIO Bank.
Returns account info (IBAN, BIC, balance) and transactions with:
Transaction ID, date, amount, currency
Counter account (number, name, bank)
Payment symbols (variable, constant, specific)
Message, comments, transaction type
Rate limit: 1 request per 30 seconds. Data older than 90 days requires unlock in internet banking.
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | FIO API token (64 chars). Optional if FIO_API_TOKEN env var is set. | |
| dateTo | Yes | End date (YYYY-MM-DD) | |
| dateFrom | Yes | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose two meaningful behavioral traits: throttling (1 req/30s) and a prerequisite on 90-day-old data. It omits error/retry behaviour, pagination, and token-failure handling, so it is good but not exhaustive for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose, then a scannable bulleted enumeration of returned fields, then two short constraint lines. No filler sentences; every line either frames the call or warns of an operational limit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the bulleted list of returned fields (IDs, amounts, counter account, payment symbols) is genuinely necessary and provided. Rate limit and the 90-day unlock prerequisite round it out; only pagination/volume behaviour and error semantics are left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (token, dateFrom, dateTo) are documented in the schema with formats. The description only restates the date-range concept and adds nothing about accepted range size, date boundary inclusivity, or token fallback, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get account transactions') plus the source system (FIO Bank) and the scoping dimension (date range). No siblings exist to disambiguate against, and the tool's identity is unambiguous from the first sentence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real operational guidance: a 1-request-per-30-second rate limit and the requirement to unlock data older than 90 days in internet banking. There are no sibling tools, so no alternative-routing is possible or expected, but it stops short of stating what to do when the date range is refused.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- First observed
fio_get_transactions
TDQS
Scored across 1 tool
With only one tool exposed, there is no possibility of the agent selecting the wrong tool. Its purpose (fetching account transactions over a date range) is stated unambiguously.
The single name fio_get_transactions follows a clean namespace_verb_noun convention that would extend predictably. There is no competing convention to clash with.
One tool is far too thin for a bank API surface, which naturally spans accounts, statements, and payment operations. The server exposes a single read endpoint, so the count is an extreme mismatch for the apparent domain.
The surface covers only transaction retrieval; there is no way to list accounts, fetch a formal statement, or initiate/verify payments. Agents needing anything beyond a read of transactions will hit a dead end.
Maintenance
Related MCP Connectors
Read-only bank access for your AI agent. Connects Claude, ChatGPT, Cursor, Gemini, Codex.
- BankSyncOAuthio.banksync
Connect AI agents to bank accounts, transactions, balances, and investments.
- Era ContextOAuthapp.era
Personal finance, bank account, and shared memory connector for Claude, ChatGPT, Gemini Spark & more
Brazilian Open Finance MCP — 30+ banks (Itaú, Nubank, etc.) to Claude/Cursor. Read-only.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables secure interaction with Plaid's Transactions API to sync, search, and analyze financial transactions from linked bank accounts using natural language queries.-
- AlicenseAqualityCmaintenanceEnables Claude to interact with a Folio business bank account for managing accounts, transactions, receipts, bookkeeping, and payments as drafts.143 npm6MIT
- FlicenseAqualityDmaintenanceExposes SimpleFIN bank data (accounts and transactions) as tools for Claude Code, enabling users to connect to bank accounts, list balances, and fetch transactions.4-
- AlicenseBqualityFmaintenanceQuery bank accounts, credit cards, and transactions via Sophtron's financial data API. Works with Claude Desktop and any MCP-compatible client.101Apache 2.0