Node.js/TypeScript implementation of the Monobank MCP Server originally written in Python.
Monobank MCP Server exposes your Monobank personal account (and public exchange rates) as Model Context Protocol (MCP) tools.
This is a Node.js/TypeScript port of the original Python implementation by @nklymok.
- Original Python version: https://github.com/nklymok/Monobank-MCP
- This TypeScript version: Maintains the same core personal-account tools with Node.js/TypeScript ecosystem benefits, plus a public rates tool that needs no token.
- TypeScript/Node.js MCP server using the official
@modelcontextprotocol/sdk - MCP tools:
get_client_info– client identity, accounts, and jars (requiresMONOBANK_API_TOKEN).get_statement– account statement for a time window (requires token). Validates the period before calling the API; responses use amounts in main units and ISO 8601 UTC times for transactions.get_currency_rates– public currency exchange rates from Monobank (GET /bank/currency). No API token required.
The easiest way to use this MCP server is via the published npm package:
-
Register the server in your MCP configuration
{ "mcpServers": { "monobank-mcp": { "command": "npx", "args": ["-y", "@alerix/monobank-mcp"], "env": { "MONOBANK_API_TOKEN": "your_token_here" } } } }Set
MONOBANK_API_TOKENonly if you useget_client_infoorget_statement.get_currency_ratesworks without it. -
Run your MCP client – the tools will be available according to your configuration.
If you want to contribute or modify the server:
-
Clone and install dependencies
git clone https://github.com/aler1x/monobank-mcp.git cd monobank-mcp npm install -
Run the server after install (
preparerunsnpm run build). For personal tools, setMONOBANK_API_TOKEN.Windows (PowerShell):
$env:MONOBANK_API_TOKEN="your_token_here" node dist/index.js
Windows (Command Prompt):
set MONOBANK_API_TOKEN=your_token_here node dist\index.js
macOS/Linux:
export MONOBANK_API_TOKEN=your_token_here node dist/index.jsOr one line:
MONOBANK_API_TOKEN=your_token_here node dist/index.js
-
Development with hot reload (uses
tsx --watch):MONOBANK_API_TOKEN=your_token_here npm run dev
-
Build (TypeScript →
dist/):npm run build
| Tool | Description | Token | Rate limits (Monobank) |
|---|---|---|---|
get_client_info |
Fetches client profile, list of accounts and jars. | Yes | 1 request / 60 s |
get_statement |
Retrieves transactions for an account and period. Parameters: account_id (from get_client_info or '0' for default), from_timestamp (Unix seconds), optional to_timestamp (Unix seconds; omit for “now”). Period from from_timestamp to the end (to_timestamp or now) must be ≤ 31 days + 1 hour (aligned with the API). Amounts are returned in major units; times as ISO 8601 UTC. Omits id, invoiceId, counterEdrpou, counterIban. |
Yes | 1 request / 60 s |
get_currency_rates |
Public exchange rates (ISO 4217 numeric currency codes). Same data as Monobank GET /bank/currency. |
No | Per Monobank public API |
Personal tools need a Monobank personal API token. See the official docs: https://api.monobank.ua/index.html
| Name | Required | Description |
|---|---|---|
MONOBANK_API_TOKEN |
For get_client_info and get_statement only |
Your personal Monobank API token from https://api.monobank.ua/index.html. Not used by get_currency_rates. |
MIT