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.
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.
- `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`
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.
One command plus a key — docker build -t zaim-api-mcp ., then supply credentials
