mcpField
M
Monobank MCP Server

Monobank MCP Server

Local
github.com/todesstossFinance0Updated 19w ago

About Monobank MCP Server

Monobank MCP Server exposes Monobank accounts, transactions, exchange rates, and webhook settings to MCP clients. It formats responses for LLM use and caches frequently read data to reduce repeated API requests.

Key features

  1. 01Read account and jar details
  2. 02Retrieve transaction statements
  3. 03Query exchange rates
  4. 04Inspect and change webhook settings
  5. 05Cache frequently accessed data

Use cases

  1. 01Review account balances and jars
  2. 02Fetch transactions for an account
  3. 03Check currency rates or webhook URL

MCP support

Provides Monobank data and webhook operations as tools for Claude and other MCP clients. Personal account tools require a `MONOBANK_API_TOKEN`; currency-rate tools are public.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"monobank": {
"command": "npx",
"args": [
"-y",
"@dirgen/monobank-mcp"
],
"env": {
"MONOBANK_API_TOKEN": "<MONOBANK_API_TOKEN>"
}
}
}
}
Run commandnpx -y @dirgen/monobank-mcp
Environment variables to set
MONOBANK_API_TOKENSecret

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@dirgen/monobank-mcp

Tools

2

Saved tool list · updated 3w ago

This tool takes no parameters.

Details

From the project README

monobank-mcp

npm version License: MIT Node.js

MCP server for Monobank — exposes your accounts, transactions, exchange rates, and webhook configuration as tools for Claude and other MCP clients.

Responses are pre-processed for LLM consumption: amounts are in base currency units (not cents), timestamps are ISO 8601, currency codes are ISO 4217 strings, and permissions are decoded to human-readable names. Frequently-accessed data is cached server-side for 1 hour so repeated reads never hit the Monobank rate limit.

Quick Start — Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "monobank": {
      "command": "npx",
      "args": ["-y", "@dirgen/monobank-mcp"],
      "env": {
        "MONOBANK_API_TOKEN": "your_token_here"
      }
    }
  }
}

Quick Start — Claude Code

claude mcp add monobank -- npx -y @dirgen/monobank-mcp

Then add your token to .claude/settings.json:

{
  "mcpServers": {
    "monobank": {
      "env": { "MONOBANK_API_TOKEN": "your_token_here" }
    }
  }
}

Getting a Token

Open api.monobank.ua and scan the QR code with the Monobank app to generate your personal API token. The token never leaves your machine — it is passed directly to the server process as an environment variable.

Available Tools

Public — no token required
ToolDescription
monobank-bank-currencyAll Monobank exchange rates. Returns baseCurrency / quoteCurrency (ISO 4217), date (ISO 8601), and rateSell / rateBuy (traded pairs) or rateCross (cross rates).
monobank-bank-currency-rateExchange rate for a single currency pair. Inputs: baseCurrency, quoteCurrency (defaults to UAH). Faster than fetching the full list.
Personal — requires MONOBANK_API_TOKEN
ToolDescription
monobank-personal-client-infoFull client profile: identity, decoded token permissions, all accounts and jars including FOP/business accounts (managedClients). Account id fields are what you pass to the statement tool.
monobank-personal-accountsCompact account and jar list (id, type, currencyCode, balance, maskedPan). Use this for quick account discovery before fetching statements.
monobank-personal-statementTransaction history for an account. Inputs: accountId (from client-info, or "0" for default UAH account), fromDate, toDate (ISO 8601 with timezone). Maximum range: 31 days per request.
monobank-get-webhookReturns the webhook URL currently configured for this token. Empty string means no webhook is set.
monobank-set-webhook⚠️ Destructive. Sets the webhook URL. Overwrites the existing URL immediately with no confirmation — check the current value with monobank-get-webhook first.
monobank-unset-webhook⚠️ Destructive. Removes the webhook by setting the URL to empty string.

Caching

The server caches responses to stay within Monobank's rate limits and avoid redundant API calls:

DataCache TTL
Client info (/personal/client-info)1 hour
Currency rates (/bank/currency)1 hour
Statement with a fixed toDate1 hour
Statement without toDateNot cached (open-ended range → stale data risk)

Webhook mutations automatically invalidate the client-info cache so the next read reflects the updated URL.

Rate Limits

Monobank personal endpoints allow 1 request per 60 seconds. If the limit is hit, the server returns a clear error message telling you to wait 60 seconds. The 1-hour cache means most repeated reads are served locally without hitting the API at all.

Developer Setup

Requires Node.js ≥ 24.17.0 and pnpm.

git clone https://github.com/todesstoss/monobank-mcp
cd monobank-mcp
pnpm install

Create a .env file:

MONOBANK_API_TOKEN=your_token_here
pnpm start       # run the MCP server
pnpm inspect     # open MCP Inspector in the browser for interactive testing
pnpm typecheck   # type-check without emitting
pnpm lint        # lint src/

Troubleshooting

Invalid token / 401 — regenerate your token at api.monobank.ua. Tokens expire if unused.

Rate limit / 429 — wait 60 seconds. The server will tell you when this happens. Repeated reads within an hour are served from cache and won't trigger this.

Statement range > 31 days — split the request into multiple calls, each covering ≤ 31 days. The tool will tell you if the range is too wide.

Currency pair not found — use monobank-bank-currency to see all available pairs. Only UAH pairs and EUR/USD are available.

No managedClients in client-info — this field only appears if you are registered as a FOP (sole proprietor) with Monobank. All tokens are the same personal token — managedClients is simply absent if you have no FOP accounts.

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.