That distinction is the whole value: a balance question is answered by running the balance command, so the arithmetic is Ledger's and the model only has to phrase the question and the answer. The raw command tool is the escape hatch and also the sharp edge — it runs Ledger against your financial data, so keep it to clients you trust and be deliberate about which file paths you expose.
An MCP server that wraps Ledger CLI, the command-line double-entry accounting tool. Each tool maps to a Ledger command, so answers come from your actual ledger file rather than from a model's reading of it.
- `ledger_balance` — account balances with query, date range and display filters
- `ledger_register` — transaction history with filtering and sorting
- `ledger_accounts`, `ledger_payees` and `ledger_commodities` — the names in your file, optionally filtered
- `ledger_print` — matching transactions in ledger format
- `ledger_stats` — a statistical summary of the file
- `ledger_budget` — budget analysis over a reporting period
- `ledger_raw_command` — any Ledger CLI invocation, passed as a list of arguments
Ledger CLI installed and on your PATH, plus a ledger file. Point the server at it with the `LEDGER_FILE` environment variable or a command-line argument. Run it with uv, or use the published Docker image and mount your ledger file into the container.
One command — docker pull minhyeoky/mcp-ledger
