zaim_check_auth_statusLABSCO 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_statusconfirms the credentials work;zaim_get_user_inforeturns the accountzaim_get_money_recordsreads ledger entries with filtering and paginationzaim_create_payment,zaim_create_incomeandzaim_create_transferwrite the three kinds of entryzaim_update_money_recordedits an existing entry andzaim_delete_money_recordremoves it- Reference data:
zaim_get_user_categories,zaim_get_user_genres,zaim_get_user_accounts,zaim_get_default_categories,zaim_get_default_genresandzaim_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
Run a container — build the image from the repository, then point your client at it
USE CASES
Logging a purchase on the spot
Say what you spent and on what; it files under the right category without opening the app.
Asking where the money went
Pull a month's records and have them grouped and summarised in the conversation.
Fixing a mis-filed entry
Find the record, then update it or delete it in place.
Checking the credentials before you rely on it
Run the auth status check first rather than debugging a failed write.
14 tools
Listed in project docs. Your client may show a different list.
zaim_get_user_infozaim_get_money_recordszaim_create_paymentzaim_create_incomezaim_create_transferzaim_update_money_recordzaim_delete_money_recordzaim_get_user_categorieszaim_get_user_genreszaim_get_user_accountszaim_get_default_categorieszaim_get_default_genreszaim_get_currenciesBEFORE YOU INSTALL
What to know first
Tools you get
14 tools named in the project's documentation.
Requires
- docker on PATH
- Node.js 22+
- ZAIM_CONSUMER_KEY in your environment
- ZAIM_CONSUMER_SECRET in your environment
- ZAIM_ACCESS_TOKEN in your environment
- ZAIM_ACCESS_TOKEN_SECRET in your environment
INSTALLATION
Connect your client
Build the image from the repository, then point your client at it.
Server setup
git clone https://github.com/yone-k/zaim-api-mcp.git
cd zaim-api-mcp
docker build -t zaim-api-mcp .MCP Clients
Claude Desktop — Docker
{
"mcpServers": {
"zaim-api": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"ZAIM_CONSUMER_KEY=<YOUR_ZAIM_CONSUMER_KEY>",
"-e",
"ZAIM_CONSUMER_SECRET=<YOUR_ZAIM_CONSUMER_SECRET>",
"-e",
"ZAIM_ACCESS_TOKEN=<YOUR_ZAIM_ACCESS_TOKEN>",
"-e",
"ZAIM_ACCESS_TOKEN_SECRET=<YOUR_ZAIM_ACCESS_TOKEN_SECRET>",
"zaim-api-mcp"
]
}
}
}Claude Desktop — local build
npm install
npm run build{
"mcpServers": {
"zaim-api": {
"command": "node",
"args": [
"<YOUR_PATH_TO_ZAIM_API_MCP>/dist/index.js"
],
"env": {
"ZAIM_CONSUMER_KEY": "<YOUR_ZAIM_CONSUMER_KEY>",
"ZAIM_CONSUMER_SECRET": "<YOUR_ZAIM_CONSUMER_SECRET>",
"ZAIM_ACCESS_TOKEN": "<YOUR_ZAIM_ACCESS_TOKEN>",
"ZAIM_ACCESS_TOKEN_SECRET": "<YOUR_ZAIM_ACCESS_TOKEN_SECRET>"
}
}
}
}Run npm install and npm run build in the zaim-api-mcp folder the clone step creates; <YOUR_PATH_TO_ZAIM_API_MCP> is that folder's full path — the build writes dist/index.js there.