Labsco
MCP SERVER

Zaim API

by yone-k

Record a expense, pull last month's spending, or list your Zaim categories — by saying so rather than opening the app.

Personal Finance & Budgeting
Summary
Six of the fourteen tools exist so the other eight write valid entries.

Categories, genres, accounts and currencies are all lookups, and they are there because Zaim rejects a payment filed under an id that does not exist for your account. Ask for the categories once and the model can file entries correctly for the rest of the session. Everything runs against your real ledger — the delete tool included.

What it is

A TypeScript server over the Zaim household-accounts API, authenticated with OAuth 1.0a. It covers both the ledger itself and the reference data you need to write to it correctly, with Zod schemas validating every argument before a call goes out.

What you get
  • `zaim_check_auth_status` confirms the credentials work; `zaim_get_user_info` returns the account
  • `zaim_get_money_records` reads ledger entries with filtering and pagination
  • `zaim_create_payment`, `zaim_create_income` and `zaim_create_transfer` write the three kinds of entry
  • `zaim_update_money_record` edits an existing entry and `zaim_delete_money_record` removes it
  • Reference data: `zaim_get_user_categories`, `zaim_get_user_genres`, `zaim_get_user_accounts`, `zaim_get_default_categories`, `zaim_get_default_genres` and `zaim_get_currencies`
Requirements

Four Zaim OAuth values — `ZAIM_CONSUMER_KEY`, `ZAIM_CONSUMER_SECRET`, `ZAIM_ACCESS_TOKEN` and `ZAIM_ACCESS_TOKEN_SECRET`. Docker is the recommended path: clone the repository and `docker build -t zaim-api-mcp .`, then run it with `docker run --rm -i` and those variables. For a local build, Node.js 22+ with `npm install` and `npm run build`, pointing the client at `dist/index.js`. The npm package name is `zaim-api-mcp`, version 1.0.0.

Setup effort

One command plus a key — docker build -t zaim-api-mcp ., then supply credentials