Skip to main content
Glama
krax1337

mcp-server-zenmoney

by krax1337

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TZNoProcess time zone (e.g. Asia/Almaty) if the agent host runs in a different zone
MCP_HTTP_HOSTNoHTTP bind address127.0.0.1
MCP_HTTP_PORTNoHTTP port3000
MCP_TRANSPORTNohttp serves Streamable HTTPstdio
MCP_HTTP_TOKENNoBearer token HTTP clients must send; required for non-loopback binds
ZENMONEY_CACHENo0/false/no/off keeps data in memory onlyon
ZENMONEY_TOKENNoZenMoney API token from https://zerro.app/token
ZENMONEY_API_URLNoPin a single API origin (fallback https://api.zenmoney.app)https://api.zenmoney.ru
ZENMONEY_SYNC_TTLNoSeconds before data is re-synced on the next tool call30
ZENMONEY_CACHE_DIRNoSnapshot cache directory (default: $XDG_CACHE_HOME/mcp-server-zenmoney, else ~/.cache/mcp-server-zenmoney)
ZENMONEY_READ_ONLYNo1/true/yes/on registers only read toolsfalse
ZENMONEY_TOKEN_FILENoFile containing the token (used when ZENMONEY_TOKEN is empty; ~ expanded)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_overviewA

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_accountsA

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.

list_categoriesA

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.

list_payeesA

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.

list_transactionsA

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).

summarize_transactionsA

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.

get_budgetB

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.

list_plannedA

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

list_debtsA

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.

suggest_categoryA

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

syncA

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

create_transactionsA

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.

update_transactionsA

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.

delete_transactionsA

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

restore_transactionsA

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.

create_categoryA

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

update_categoryB

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

delete_categoryA

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.

set_budgetsA

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.

create_accountB

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

update_accountA

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.

adjust_account_balanceA

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

Prompts

Interactive templates invoked by user choice

NameDescription
monthly_reviewIncome, spending by category vs. the previous month, budget status, upcoming payments and anomalies
categorize_transactionsFind transactions without a category and propose categories from payee history and ZenMoney suggestions
plan_budgetPropose monthly category budgets from the last three months of spending and current budgets

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 22 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions, and descriptions explicitly disambiguate overlaps (e.g., list_transactions vs. summarize_transactions). However, several tools provide overlapping aggregate views (get_overview, list_transactions totals, get_budget, summarize_transactions) that an agent could confuse for a given reporting question.

Naming Consistency4/5

The set follows a consistent snake_case verb_noun pattern (list_accounts, create_transactions, update_category, delete_transactions, etc.). The lone bare verb 'sync' is a minor deviation, but the convention is otherwise predictable and readable.

Tool Count4/5

22 tools is on the heavy side for the 3-15 sweet spot, but each tool maps to a distinct finance operation (accounts, categories, transactions, budgets, planned, debts, analytics) and the domain genuinely supports this breadth. It is slightly over-scoped rather than bloated.

Completeness4/5

Coverage is strong: full CRUD for transactions (including restore), categories, and accounts, plus budgeting, debt, and analytics views. Gaps remain for planned/recurring operation creation and editing (only list_planned exists) and payee management (only list/suggest), which agents must work around.

Maintenance

ActivityMaintained
ResponsivenessNo issues