Koskamo

theluckystrike Cash Book MCP

A double-entry ledger server that derives accounting entries from existing invoices, bank lines, expenses, deposits, and assets. It provides tools to build ledgers, list lines, calculate trial balances, close months, and export data, ensuring debits equal credits to the minor unit.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

theluckystrike Cash Book MCP logo, by theluckystrikeCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by theluckystrike
You need:Free tier needs no keyGet a free token. It lasts 30 days and allows 600 calls per hour.
MCP endpoint (Streamable HTTP)
https://mcp.zovo.one/mcp/cash-book
Vendor documentation

What its tools do

9 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

9 of 9 have a description · 9 of 9 declare behavior hints · 8 of 8 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Derive double-entry ledger entries from source records
  • List ledger lines filtered by account or date
  • Calculate and prove trial balance totals
  • Close a month and export ledger to CSV

Source and maintenance

Community listingRegistry 0.23.0
Maintenance checked

Protocol and capabilities

Server
mcp-cash-book 0.22.6
MCP protocol negotiated in check
2025-11-25
Tools
9 advertised
Resources
2 advertised
Resource templates
0 advertised
Prompts
2 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "prompts": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

A double-entry cash book derived from the user's other McpStamp records. It covers a period's ledger in one currency built from invoices, credit notes, deposits, expenses, bank transactions and assets, proof that debits equal credits, ledger lines, month close with unposted items and bank reconciliation, and movement and balance per account. Source records are read, never changed. Built periods are stored per user account on McpStamp's hosted service. The free tier builds 3 periods a month; month close, CSV export and per-account totals need Pro. One lifetime key unlocks this server and all 58 others: https://mcp.zovo.one/buy/bundle?src=instr.cash-book

Tools

9 advertised

ledger_build — Build the ledger for a period
Advertised by the server during the last successful anonymous check.

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.

ledger_build input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 10,
      "description": "Last day of the period, YYYY-MM-DD, inclusive"
    },
    "from": {
      "type": "string",
      "maxLength": 10,
      "description": "First day of the period, YYYY-MM-DD"
    },
    "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"
    }
  },
  "additionalProperties": false
}
ledger_build annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
period_delete — Delete a built period
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

period_delete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 10,
      "description": "Last day of the period, YYYY-MM-DD, inclusive"
    },
    "from": {
      "type": "string",
      "maxLength": 10,
      "description": "First day of the period, YYYY-MM-DD"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "Needed only when the same date range was built in more than one currency"
    }
  },
  "additionalProperties": false
}
period_delete annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
trial_balance — Prove the ledger balances
Advertised by the server during the last successful anonymous check.

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.

trial_balance input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 10,
      "description": "Last day of the period, YYYY-MM-DD, inclusive"
    },
    "from": {
      "type": "string",
      "maxLength": 10,
      "description": "First day of the period, YYYY-MM-DD"
    },
    "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"
    }
  },
  "additionalProperties": false
}
trial_balance annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
ledger_lines — List ledger lines
Advertised by the server during the last successful anonymous check.

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.

ledger_lines input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 10,
      "description": "Last day of the period, YYYY-MM-DD, inclusive"
    },
    "from": {
      "type": "string",
      "maxLength": 10,
      "description": "First day of the period, YYYY-MM-DD"
    },
    "limit": {
      "type": "integer",
      "maximum": 5000,
      "minimum": 1,
      "description": "Maximum rows, default and ceiling 5000"
    },
    "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"
    },
    "source": {
      "type": "string",
      "maxLength": 200,
      "description": "Only lines derived from this server: invoice, billing-docs, deposits, expense-tracker or asset-register"
    },
    "account": {
      "type": "string",
      "maxLength": 200,
      "description": "Only this account, e.g. cash, receivables, vat_output, or a category prefix such as \"expenses\""
    },
    "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"
    },
    "source_id": {
      "type": "string",
      "maxLength": 200,
      "description": "Only lines derived from this document, e.g. INV-2026-0001"
    }
  },
  "additionalProperties": false
}
ledger_lines annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
month_close — Close a month
Advertised by the server during the last successful anonymous check.

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.

month_close input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "month"
  ],
  "properties": {
    "month": {
      "type": "string",
      "maxLength": 7,
      "description": "The month to close, YYYY-MM"
    },
    "dry_run": {
      "type": "boolean",
      "description": "Report the exceptions and the trial balance without writing the close. Default false"
    },
    "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"
    }
  },
  "additionalProperties": false
}
month_close annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
ledger_export_csv — Export the ledger as CSV
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

ledger_export_csv input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 10,
      "description": "Last day of the period, YYYY-MM-DD, inclusive"
    },
    "from": {
      "type": "string",
      "maxLength": 10,
      "description": "First day of the period, YYYY-MM-DD"
    },
    "source": {
      "type": "string",
      "maxLength": 200,
      "description": "Only lines derived from this server"
    },
    "account": {
      "type": "string",
      "maxLength": 200,
      "description": "Only this account or category prefix"
    },
    "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"
    }
  },
  "additionalProperties": false
}
ledger_export_csv annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
ledger_report — Report movement and balance per account
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

ledger_report input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 10,
      "description": "Last day of the period, YYYY-MM-DD, inclusive"
    },
    "from": {
      "type": "string",
      "maxLength": 10,
      "description": "First day of the period, YYYY-MM-DD"
    },
    "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"
    }
  },
  "additionalProperties": false
}
ledger_report annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
license_status — License status
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

license_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
license_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
license_activate — Activate license
Advertised by the server during the last successful anonymous check.

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.

license_activate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "key"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "License key from checkout, MCPL1.<payload>.<signature>"
    }
  },
  "additionalProperties": false
}
license_activate annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

2 advertised

upgrade_to_pro — Explain the upgrade

Advertised by the server during the last successful anonymous check.

Explain what Pro on the cash-book server costs and exactly what the user has to do, without leaving the conversation.

feature
The capped feature that prompted this, if there was one
close_the_month — Close the month

Advertised by the server during the last successful anonymous check.

Walk a month close: build the ledger, prove the trial balance, work the exceptions, then close.

month
The month to close, YYYY-MM (required)

Resources

2 advertised

pricing — Pricing and upgrade

Advertised by the server during the last successful anonymous check.

What cash-book costs, what Pro unlocks, the checkout link that carries this connection's token, and the one step a person has to take. Machine-readable; read it before telling a user how to lift a free-tier cap.

pricing URI
pricing://cash-book

MIME type: application/json

accounts — Chart of accounts and the stores behind it

Advertised by the server during the last successful anonymous check.

The accounts this ledger posts to, which sibling endpoint feeds each one, and the one document this server writes.

accounts URI
ledger://accounts

MIME type: application/json

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1291 ms
95th percentile latency
1291 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1291 ms · metadata changed · 9 tool(s), 2 resource(s), 0 resource template(s), 2 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http cash-book-mcp-zovo https://mcp.zovo.one/mcp/cash-book

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add cash-book-mcp-zovo --url https://mcp.zovo.one/mcp/cash-book

Cursor

Merge this server into .cursor/mcp.json in your project, then enable cash-book-mcp-zovo in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "cash-book-mcp-zovo": {
      "url": "https://mcp.zovo.one/mcp/cash-book"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "cash-book-mcp-zovo": {
      "type": "streamableHttp",
      "url": "https://mcp.zovo.one/mcp/cash-book",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start cash-book-mcp-zovo and inspect its tools.
VS Code configuration
{
  "servers": {
    "cash-book-mcp-zovo": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/cash-book"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http cash-book-mcp-zovo https://mcp.zovo.one/mcp/cash-book

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.zovo.one/mcp/cash-book

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "cash-book-mcp-zovo": {
      "serverUrl": "https://mcp.zovo.one/mcp/cash-book"
    }
  }
}

Let your agent find its tools

Find servers like theluckystrike Cash Book MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.