cash-book
One double-entry ledger derived from your invoices, bank, expenses, deposits and assets.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"cash-book": {
"command": "uvx",
"args": [
"https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/cash-book.mcpb"
]
}
}
}Runnable packages
0.22.0stdioRemote endpoints
https://mcp.zovo.one/mcp/cash-bookstreamable-httpWhat it can do
Tool inventory
Tools (9)
⚪ledger_build(from, to, currency)
Derive the double-entry ledger for one period in ONE currency from the invoice, credit note, deposit, expense, bank and asset stores, and register it. Nothing is written back. Free: 3 periods a month.
Input Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"maxLength": 10,
"description": "First day of the period, YYYY-MM-DD"
},
"to": {
"type": "string",
"maxLength": 10,
"description": "Last day of the period, YYYY-MM-DD, inclusive"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Needed when the period holds documents in more than one currency. Currencies are never added together"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴period_delete(from, to, currency)
Delete one built period from the register and give its free-tier slot back. Refused when a closed month's snapshot covers the period, and that month is named. No sibling book is touched.
Input Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"maxLength": 10,
"description": "First day of the period, YYYY-MM-DD"
},
"to": {
"type": "string",
"maxLength": 10,
"description": "Last day of the period, YYYY-MM-DD, inclusive"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Needed only when the same date range was built in more than one currency"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡trial_balance(from, to, currency)
Total the debits and the credits for a period and prove they are equal to the minor unit. When they are not, name the entries whose own legs do not add up and the source document behind each. Free and unlimited.
Input Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"maxLength": 10,
"description": "First day of the period, YYYY-MM-DD"
},
"to": {
"type": "string",
"maxLength": 10,
"description": "Last day of the period, YYYY-MM-DD, inclusive"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Needed when the period holds documents in more than one currency. Currencies are never added together"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢ledger_lines(from, to, currency, account, source, ...)
List the ledger lines for a period, filtered by account, source server, source_id or date; each carries its debit, credit and bank_ref, with the totals of the rows returned. Filtered totals do not balance. Free.
Input Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"maxLength": 10,
"description": "First day of the period, YYYY-MM-DD"
},
"to": {
"type": "string",
"maxLength": 10,
"description": "Last day of the period, YYYY-MM-DD, inclusive"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Needed when the period holds documents in more than one currency. Currencies are never added together"
},
"account": {
"type": "string",
"maxLength": 200,
"description": "Only this account, e.g. cash, receivables, vat_output, or a category prefix such as \"expenses\""
},
"source": {
"type": "string",
"maxLength": 200,
"description": "Only lines derived from this server: invoice, billing-docs, deposits, expense-tracker or asset-register"
},
"source_id": {
"type": "string",
"maxLength": 200,
"description": "Only lines derived from this document, e.g. INV-2026-0001"
},
"since": {
"type": "string",
"maxLength": 10,
"description": "Only lines dated on or after this date, YYYY-MM-DD"
},
"until": {
"type": "string",
"maxLength": 10,
"description": "Only lines dated on or before this date, YYYY-MM-DD"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 5000,
"description": "Maximum rows, default and ceiling 5000"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢month_close(month, currency, dry_run)
List what a month leaves unposted or unbalanced, with its trial balance and bank reconciliation, then store the close as a snapshot; a later call names any drift against it. dry_run writes nothing. Pro.
Input Schema
{
"type": "object",
"properties": {
"month": {
"type": "string",
"maxLength": 7,
"description": "The month to close, YYYY-MM"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Needed when the period holds documents in more than one currency. Currencies are never added together"
},
"dry_run": {
"type": "boolean",
"description": "Report the exceptions and the trial balance without writing the close. Default false"
}
},
"required": [
"month"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢ledger_export_csv(from, to, currency, account, source)
Return the period's ledger lines as RFC 4180 CSV, one row per leg, as a download link valid for one hour. Pro, but ledger_lines returns these same fields free and unlimited; this only lays them out as CSV columns.
Input Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"maxLength": 10,
"description": "First day of the period, YYYY-MM-DD"
},
"to": {
"type": "string",
"maxLength": 10,
"description": "Last day of the period, YYYY-MM-DD, inclusive"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Needed when the period holds documents in more than one currency. Currencies are never added together"
},
"account": {
"type": "string",
"maxLength": 200,
"description": "Only this account or category prefix"
},
"source": {
"type": "string",
"maxLength": 200,
"description": "Only lines derived from this server"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢ledger_report(from, to, currency)
Report a built period account by account: debits, credits, movement and closing balance, plus purchase commitments held as memos and the period's exceptions. Pro; ledger_lines gives the lines free.
Input Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"maxLength": 10,
"description": "First day of the period, YYYY-MM-DD"
},
"to": {
"type": "string",
"maxLength": 10,
"description": "Last day of the period, YYYY-MM-DD, inclusive"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Needed when the period holds documents in more than one currency. Currencies are never added together"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢license_status
Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪license_activate(key)
Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
Input Schema
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "License key from checkout, MCPL1.<payload>.<signature>"
}
},
"required": [
"key"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence