Skip to main content
Glama
zenmoney-mcp

zenmoney-mcp

by artarasov

zenmoney-mcp

MCP server for ZenMoney — access your personal finance data from any MCP-compatible AI client (Claude Desktop, Cursor, etc.).

Features

Tool

Description

sync_data

Sync data with ZenMoney (run first)

list_accounts

List wallets, cards, and cash accounts

list_categories

List expense/income categories with hierarchy

list_merchants

List known merchants/payees

list_transactions

List and filter recent transactions

add_expense

Add an expense transaction

add_income

Add an income transaction

add_transfer

Transfer money between accounts (including cross-currency)

update_transaction

Change an existing transaction — category, amount, date, payee, comment, account

suggest_category

Get auto-suggested category for a payee

Related MCP server: mcp-server-zenmoney

Prerequisites

Quick start

No cloning or building needed — just add to your MCP client config:

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "zenmoney": {
      "command": "npx",
      "args": ["-y", "zenmoney-mcp"],
      "env": {
        "ZENMONEY_TOKEN": "your_token_here"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "zenmoney": {
      "command": "npx",
      "args": ["-y", "zenmoney-mcp"],
      "env": {
        "ZENMONEY_TOKEN": "your_token_here"
      }
    }
  }
}

Claude Code

claude mcp add zenmoney -- npx -y zenmoney-mcp

Replace your_token_here with your token from zerro.app/token.

Claude Desktop (MCPB bundle)

If you prefer a one-click install without editing JSON, build a .mcpb bundle and drag it into Claude Desktop → Settings → Extensions:

npm install
npm run pack:mcpb
# → dist/zenmoney-mcp-<version>.mcpb

On install, Claude Desktop will prompt for your ZenMoney token (stored in the OS keychain).

From source

git clone https://github.com/artarasov/zenmoney-mcp.git
cd zenmoney-mcp
npm install
npm run build
cp .env.example .env  # add your token

Usage

Once configured, start a conversation and ask your AI client to:

  1. Sync first — "Sync my ZenMoney data"

  2. Browse — "Show me my accounts", "List my categories"

  3. Query — "Show expenses for the last 7 days", "List transactions from January 1–31", "How much did I spend on groceries?"

  4. Add transactions — "Add a 500 RUB expense for coffee today"

  5. Transfer — "Transfer 1000 USD from Checking to Euro Card, received 920 EUR"

  6. Fix mistakes — "Recategorize yesterday's Amazon expense to Household", "Change the comment on that 500 RUB coffee"

list_transactions prints each transaction's id, and update_transaction takes one id or a list of them — so a whole batch can be recategorized in a single call.

Contributing

PRs welcome! Feel free to open issues for bugs or feature requests.

License

MIT

Available Tools

10 tools
add_expenseC

Add an expense transaction to ZenMoney. Requires account name/id, amount, and date. Optionally accepts category, payee, and comment.

Inputs: date (required), amount (required), account (required), payee, +2 more.

add_incomeC

Add an income transaction to ZenMoney.

Inputs: date (required), amount (required), account (required), payee, +2 more.

add_transferA

Transfer money between two accounts in ZenMoney. For cross-currency transfers, specify both outcome_amount (source) and income_amount (destination). For same-currency transfers, just use outcome_amount (or amount as alias).

Inputs: date (required), to_account (required), from_account (required), amount, +3 more.

list_accountsA

List all user accounts (wallets, cards, cash). Sync must be done first.

Inputs: include_archived.

list_categoriesA

List all expense/income categories (tags) with their hierarchy. Sync must be done first.

Inputs: no named parameters.

list_merchantsA

List known merchants/payees. Sync must be done first.

Inputs: no named parameters.

list_transactionsA

List transactions. By default returns the last 30 days; pass start_date/end_date for an arbitrary period (e.g. Jan 1–31). Sync must be done first.

Inputs: days, limit, account, category, +2 more.

suggest_categoryA

Get ZenMoney's auto-suggestion for category and merchant based on a payee name. Useful for categorizing receipts.

Inputs: payee (required).

sync_dataA

Sync data with ZenMoney. Run this first before using other tools. Use force_full=true to re-download everything.

Inputs: force_full.

update_transactionA

Change an existing transaction: its category, amount, date, payee, comment or account. Only the fields you pass are touched. Pass a single id or a list of ids to apply the same change to several transactions at once (handy for recategorizing). Ids come from list_transactions. Sync must be done first.

Inputs: id (required), date, payee, amount, +7 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 10 tools

    Disambiguation5/5

    Each tool targets a clearly distinct resource and action: sync_data, the three add_* tools map to distinct transaction types (income/expense/transfer), the four list_* tools target distinct entities, and suggest_category/update_transaction are unique operations. There is no meaningful overlap in purpose.

    Naming Consistency5/5

    Every tool follows a consistent snake_case verb_noun pattern (sync_data, add_income, list_accounts, update_transaction). The convention is applied uniformly with no camelCase or stylistic deviations.

    Tool Count5/5

    Ten tools is well-scoped for a personal-finance integration, covering sync, listing of the main entities, and transaction creation/updating without redundancy. Each tool earns its place.

    Completeness4/5

    The set covers sync, reading (accounts, categories, merchants, transactions), creating all transaction types, and updating transactions in batch. The main gap is deleting transactions (and managing accounts/categories/merchants), but core record-keeping and recategorization workflows are covered.

    Maintenance

    ActivityStale
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables natural-language management of personal finances, including reading balances grouped by bank/category/card/month, retrieving transactions filtered by date and keyword, listing banks/cards/categories, creating/updating/deleting transactions individually or in bulk, and transferring money between the user's own accounts.
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables AI agents to access accounts, balances, transactions and reports, manage monthly budgets, planned operations and debts, categorize spending, and safely create or edit records through the official ZenMoney API.
      22
      92 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI assistants and other MCP clients to access and manage personal finance data, including transactions, categories, tags, budgets, recurring items, accounts, crypto, and balance history through the provider's API.
      41 npm
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI assistants and other MCP clients to read and manage personal finance data, including transactions, categories, tags, budgets, recurring items, manual and Plaid accounts, crypto holdings, and balance history, with full CRUD operations and token-efficient responses.
      41 npm
      MIT