# ZenMoney (npm · mcp-server-zenmoney)

ZenMoney (Дзен-мани) finance for AI agents: transactions, reports, budgets, debts

- Trust score: 79/100 (medium)
- Change this week: +7
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-17

## Components

- npm · `mcp-server-zenmoney`: 79/100 (this document), [markdown](https://verifymcp.io/servers/krax1337-mcp-server-zenmoney/mcp-server-zenmoney.md), [page](https://verifymcp.io/servers/krax1337-mcp-server-zenmoney/mcp-server-zenmoney)

## Channel facts

- Registry: `npm`
- Package: `mcp-server-zenmoney`
- Version: `1.0.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-17.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 0 of 6 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 15 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 84/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2762 tokens (~125/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 53/100
  - Stability observed for 16 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 90/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 70% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the ZenMoney MCP server?

ZenMoney runs locally as an npm package, launched with npx -y mcp-server-zenmoney. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add krax1337-mcp-server-zenmoney -- npx -y mcp-server-zenmoney
```

### Cursor

```json
{
  "mcpServers": {
    "krax1337-mcp-server-zenmoney": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-zenmoney"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "krax1337-mcp-server-zenmoney": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-zenmoney"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add krax1337-mcp-server-zenmoney -- npx -y mcp-server-zenmoney
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "krax1337-mcp-server-zenmoney": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "mcp-server-zenmoney"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add krax1337-mcp-server-zenmoney --command npx --arg -y --arg mcp-server-zenmoney
```

### Hermes

```yaml
mcp_servers:
  krax1337-mcp-server-zenmoney:
    command: "npx"
    args: ["-y", "mcp-server-zenmoney"]
```

### Netclaw

```json
{
  "McpServers": {
    "krax1337-mcp-server-zenmoney": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "mcp-server-zenmoney"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add krax1337-mcp-server-zenmoney -t stdio -c npx -a -y mcp-server-zenmoney
```

### Other

```json
{
  "mcpServers": {
    "krax1337-mcp-server-zenmoney": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-zenmoney"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-15 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-13 (score 78, +6)

- [functional improvement] Stability: unverified → 0.40

### 2026-10-02 (score 72, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-10-01 (score 57)

First indexed and scored.

## MCP tools (22)

### `get_overview` (~44 tokens)

Financial overview

Start here. Returns today's date, the user's main currency, net worth, active account balances, this month's income/expenses with top categories, upcoming planned operations and data freshness.

### `list_accounts` (~100 tokens)

List accounts

Accounts with balances, currency, credit limit, bank and flags. balance_main is the balance converted to the main currency. Totals cover in-balance accounts. Debt bookkeeping is in list_debts.

Input parameters:

- `include_archived` (boolean): Also return archived accounts
- `search` (string): Substring of the account name or card number
- `types` (array): cash, ccard (card), checking, loan, deposit, emoney

### `list_categories` (~92 tokens)

List categories

Category tree (ZenMoney "tags"; one nesting level) with ids, kind (expense/income/both) and number of uses in the last 12 months. Use names, "Parent / Child" paths or ids elsewhere.

Input parameters:

- `include_archived` (boolean)
- `kind` (string): Only categories usable for this kind of transaction
- `search` (string): Substring of the category name

### `list_payees` (~63 tokens)

List payees

Known payees/merchants ranked by number of transactions, with last date and the category usually used for them. Useful for consistent categorization and payee spelling.

Input parameters:

- `limit` (integer)
- `search` (string): Substring of the payee name

### `list_transactions` (~393 tokens)

Search transactions

Find transactions with filters (dates/period, type, accounts, categories incl. subcategories, payee, free text, amount, currency). Newest first by default, paginated. Also returns income/expense totals of all matches in the main currency (in-balance accounts only, like ZenMoney reports), so "how much did I spend on X" needs only this call (or summarize_transactions for breakdowns).

Input parameters:

- `accounts` (array): Account names, ids or card last digits; matches money leaving or arriving
- `categories` (array): Category names, "Parent / Child" paths or ids; subcategories are included
- `currency` (string): Only transactions in this currency (ISO code)
- `date_from` (string): Inclusive start date, YYYY-MM-DD
- `date_to` (string): Inclusive end date, YYYY-MM-DD
- `ids` (array): Fetch specific transactions by id
- `include_deleted` (boolean): Include deleted transactions (they can be restored)
- `limit` (integer)
- `max_amount` (number): Maximum amount in the account's currency
- `min_amount` (number): Minimum amount in the account's currency
- `offset` (integer)
- `payee` (string): Substring of the payee / merchant name
- `period` (string): Date range relative to today (weeks start on Monday). date_from/date_to override either end.
- `search` (string): Free text matched against payee, merchant, comment and category names
- `sort` (string)
- `types` (array): Transaction types to include: expense | income | transfer (between own accounts) | debt_out (money given to a person: lending, or repaying them) | debt_in (money received from a person: borrowing, or…
- `uncategorized` (boolean): Only transactions without a category

### `summarize_transactions` (~401 tokens)

Spending / income report

Aggregate expenses and/or income by category, parent category, payee, account or time (day/week/month/year) with totals, counts and shares. measure=both gives income, expense and net per group (cash flow). Transfers and debts are excluded; amounts are converted with current rates. By default only in-balance accounts count, like ZenMoney reports.

Input parameters:

- `accounts` (array): Account names, ids or card last digits; matches money leaving or arriving
- `categories` (array): Category names, "Parent / Child" paths or ids; subcategories are included
- `currency` (string): Only transactions in this currency (ISO code)
- `date_from` (string): Inclusive start date, YYYY-MM-DD
- `date_to` (string): Inclusive end date, YYYY-MM-DD
- `group_by` (string)
- `include_off_balance` (boolean): Also count accounts excluded from the balance
- `max_amount` (number): Maximum amount in the account's currency
- `measure` (string)
- `min_amount` (number): Minimum amount in the account's currency
- `payee` (string): Substring of the payee / merchant name
- `period` (string): Date range relative to today (weeks start on Monday). date_from/date_to override either end.
- `report_currency` (string): ISO code to report in; defaults to the main currency
- `search` (string): Free text matched against payee, merchant, comment and category names
- `top` (integer): Max groups for non-time groupings; the rest is rolled up
- `types` (array): Transaction types to include: expense | income | transfer (between own accounts) | debt_out (money given to a person: lending, or repaying them) | debt_in (money received from a person: borrowing, or…
- `uncategorized` (boolean): Only transactions without a category

### `get_budget` (~82 tokens)

Monthly budget status

ZenMoney budget for a month: per category budget, actual, remaining, % used and still-planned operations, with subcategories and totals, in the main currency. Uses the profile's month start day. Rollover between months is not modelled.

Input parameters:

- `month` (string): YYYY-MM; defaults to the current month
- `side` (string)

### `list_planned` (~92 tokens)

Planned operations

Scheduled / recurring operations (ZenMoney reminders) that are still planned in a date range, with recurrence, overdue and forecast flags, plus expected expense/income totals.

Input parameters:

- `date_from` (string): Defaults to 7 days ago (to surface overdue items)
- `date_to` (string): Defaults to 30 days ahead
- `include_forecast` (boolean): Include ZenMoney's auto-generated forecast entries

### `list_debts` (~81 tokens)

Debts by person

Who owes whom: per-person debt balances from debt operations (positive = they owe you, negative = you owe them), per currency and in the main currency. Pass person to also get their debt transactions.

Input parameters:

- `include_settled` (boolean): Include people whose debts net to zero
- `person` (string): Substring of the person name

### `suggest_category` (~49 tokens)

Suggest category for payees

Category and merchant suggestions for payee names, from ZenMoney's suggestion service and from this user's own history.

Input parameters:

- `payees` (array, required): Payee names as they appear on a receipt or statement

### `sync` (~43 tokens)

Sync with ZenMoney

Pull the latest changes from ZenMoney now (tools already auto-sync when data is older than the configured TTL). full=true re-downloads everything.

Input parameters:

- `full` (boolean)

### `create_transactions` (~121 tokens)

Add transactions

Record one or more transactions (expense, income, transfer between own accounts, debt_out / debt_in with a person). Amounts are positive in the account currency. Without a category, one is picked from this payee's history or ZenMoney suggestions (auto_categorize). Returns the created transactions, updated balances and possible-duplicate warnings.

Input parameters:

- `auto_categorize` (boolean): Fill a missing expense/income category from history or ZenMoney suggestions
- `dry_run` (boolean): Preview the outcome without saving anything
- `transactions` (array, required)

### `update_transactions` (~86 tokens)

Edit transactions

Change one or more existing transactions: amount, account, main category (null = uncategorized), payee, comment, date, original currency amount; transfers also to_account / to_amount. The type cannot change (delete and re-create instead). Use list_transactions to find ids.

Input parameters:

- `dry_run` (boolean): Preview the outcome without saving anything
- `updates` (array, required)

### `delete_transactions` (~43 tokens)

Delete transactions

Delete transactions by id (soft delete; restore_transactions brings them back).

Input parameters:

- `dry_run` (boolean): Preview the outcome without saving anything
- `ids` (array, required)

### `restore_transactions` (~56 tokens)

Restore deleted transactions

Bring back deleted transactions (find them with list_transactions include_deleted=true). ZenMoney cannot undelete in place, so each comes back as a copy with a new id; already-restored ones are skipped.

Input parameters:

- `ids` (array, required)

### `create_category` (~85 tokens)

Create category

Create a category, optionally as a subcategory of a top-level category (ZenMoney allows one nesting level).

Input parameters:

- `kind` (string): Defaults to the parent's kind, else expense
- `parent` (string): Top-level parent category (name or id)
- `required` (boolean): Mark as a mandatory (non-discretionary) expense
- `title` (string, required)

### `update_category` (~106 tokens)

Edit category

Rename, move (parent null = top level), change kind, budget inclusion, mandatory flag or archive a category.

Input parameters:

- `archived` (boolean)
- `category` (string, required): Category name, path or id
- `include_in_budget` (boolean): Whether the category counts in budget calculations
- `kind` (string)
- `parent` (string|null): New top-level parent; null makes it top-level
- `required` (boolean)
- `title` (string)

### `delete_category` (~114 tokens)

Delete category

Delete a category. Its transactions and planned operations are moved to move_to (merge categories) or, with uncategorize=true, left without this category. Subcategories must be moved or deleted first.

Input parameters:

- `category` (string, required): Category name, path or id
- `dry_run` (boolean): Preview the outcome without saving anything
- `move_to` (string): Category that takes over its transactions
- `uncategorize` (boolean): Confirm removing the category from its transactions and planned operations when move_to is not given

### `set_budgets` (~78 tokens)

Set monthly budgets

Set exact monthly budget amounts (main currency) per category, for "total" (overall monthly budget) or "uncategorized". 0 removes that budget. Batch-friendly: e.g. copy last month's budgets to next month.

Input parameters:

- `budgets` (array, required)
- `dry_run` (boolean): Preview the outcome without saving anything

### `create_account` (~111 tokens)

Create account

Create a cash, card, checking or e-money account. Bank-synced accounts are created by ZenMoney itself.

Input parameters:

- `balance` (number): Opening balance
- `credit_limit` (number)
- `currency` (string): ISO code; defaults to the main currency
- `in_balance` (boolean): Count in the total balance and reports
- `savings` (boolean)
- `title` (string, required)
- `type` (string): cash, ccard (card), checking, emoney

### `update_account` (~92 tokens)

Edit account

Rename, archive/unarchive, include in or exclude from balance, mark as savings, or change the credit limit. To fix a balance use adjust_account_balance.

Input parameters:

- `account` (string, required): Account name, id or card last digits
- `archived` (boolean)
- `credit_limit` (number)
- `in_balance` (boolean)
- `savings` (boolean)
- `title` (string)

### `adjust_account_balance` (~94 tokens)

Reconcile account balance

Make an account balance match reality by recording the difference as an income or expense correction transaction (computed against freshly synced data).

Input parameters:

- `account` (string, required): Account name, id or card last digits
- `actual_balance` (number, required): The real current balance in the account's currency
- `category` (string): Optional category for the correction
- `comment` (string)
- `date` (string): Defaults to today

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/krax1337-mcp-server-zenmoney/mcp-server-zenmoney#diagnostics

## Score history

- 2026-10-17: 79
- 2026-10-16: 79
- 2026-10-15: 79
- 2026-10-14: 78
- 2026-10-13: 78
- 2026-10-12: 72
- 2026-10-11: 72
- 2026-10-07: 72
- 2026-10-04: 72
- 2026-10-03: 72
- 2026-10-02: 72
- 2026-10-01: 57

## Common questions

### What is the ZenMoney MCP server?

ZenMoney is an MCP server listed in the public MCP registry as io.github.krax1337/mcp-server-zenmoney. ZenMoney (Дзен-мани) finance for AI agents: transactions, reports, budgets, debts. This page covers its npm package (mcp-server-zenmoney).

### Is the ZenMoney MCP server safe to use?

ZenMoney scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 17 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the ZenMoney MCP server expose?

ZenMoney exposes 22 tools: get_overview, list_accounts, list_categories, list_payees, list_transactions, and 17 more. Their descriptions and schemas cost roughly 2,426 tokens of context every time the server is loaded.

### Is the ZenMoney MCP server still maintained?

ZenMoney is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the ZenMoney MCP server under?

ZenMoney declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/mcp-server-zenmoney
- Socket report: https://socket.dev/npm/package/mcp-server-zenmoney
- Repository: https://github.com/krax1337/mcp-server-zenmoney
- Changelog RSS feed: https://verifymcp.io/servers/krax1337-mcp-server-zenmoney/mcp-server-zenmoney.xml
- Changelog JSON feed: https://verifymcp.io/servers/krax1337-mcp-server-zenmoney/mcp-server-zenmoney.json
- HTML version of this page: https://verifymcp.io/servers/krax1337-mcp-server-zenmoney/mcp-server-zenmoney
