# Monobank MCP Server (Node.js/TypeScript)

> **Node.js/TypeScript implementation** of the [Monobank MCP Server](https://github.com/nklymok/Monobank-MCP) originally written in Python.

Monobank MCP Server exposes your Monobank personal account as Model Context Protocol (MCP) tools.

## About This Version

This is a **Node.js/TypeScript port** of the original Python implementation by [@nklymok](https://github.com/nklymok). 

- **Original Python version**: https://github.com/nklymok/Monobank-MCP
- **This TypeScript version**: Maintains the same functionality with Node.js/TypeScript ecosystem benefits

## Features

- TypeScript/Node.js MCP server using the official @modelcontextprotocol/sdk
- Two ready-to-use MCP tools:
  - `get_client_info` – returns client, accounts and jars metadata.
  - `get_statement` – returns account statement for a given period (≤ 31 days).

## Usage (Published Package)

The easiest way to use this MCP server is via the published npm package:

1. **Register the server in your MCP configuration**
   ```json
   {
     "mcpServers": {
       "monobank-mcp": {
         "command": "npx",
         "args": ["-y", "@alerix/monobank-mcp"],
         "env": {
           "MONOBANK_API_TOKEN": "your_token_here"
         }
       }
     }
   }
   ```

2. **Run your MCP client** – the two tools will be available immediately.

## Development

If you want to contribute or modify the server:

1. **Clone and install dependencies**
   ```bash
   git clone https://github.com/your-username/Monobank-MCP.git
   cd Monobank-MCP
   npm install
   ```

2. **Set your Monobank API token** (choose one method):
   
   **Windows (PowerShell):**
   ```powershell
   $env:MONOBANK_API_TOKEN="your_token_here"
   npm start
   ```
   
   **Windows (Command Prompt):**
   ```cmd
   set MONOBANK_API_TOKEN=your_token_here
   npm start
   ```
   
   **macOS/Linux:**
   ```bash
   export MONOBANK_API_TOKEN=your_token_here
   npm start
   ```
   
   **Or run directly with environment variable:**
   ```bash
   MONOBANK_API_TOKEN=your_token_here npm start
   ```

3. **For development with hot reload:**
   ```bash
   MONOBANK_API_TOKEN=your_token_here npm run dev
   ```

## Tool Reference

| Tool              | Description                                                                                                                       | Rate limits      |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------- | ---------------- |
| `get_client_info` | Fetches client profile, list of accounts and jars.                                                                                | 1 request / 60 s |
| `get_statement`   | Retrieves transaction list for a specific account and time range.<br/>Parameters: `account_id`, `from_timestamp`, `to_timestamp`. | 1 request / 60 s |

## API Token

To use this server, you need a personal Monobank API token. You can get one from the official Monobank API documentation: https://api.monobank.ua/index.html

## Environment Variables

| Name                 | Required | Description                       |
| -------------------- | -------- | --------------------------------- |
| `MONOBANK_API_TOKEN` | ✅       | Your personal Monobank API token. Get it from https://api.monobank.ua/index.html |

## License

MIT
