Cash Float

io.github.theluckystrikePublished by GitHub account theluckystrikev0.22.5Updated Oct 24, 2026

Run a cash float: record what was paid out, count the tin, and raise the top-up.

VerifiedSTDIODesktop onlyProductivity & WorkflowFinance

Overview

AI-generated overview

A local MCP server for running a petty cash float on the imprest system: open a float, record vouchers, count the tin and work out the top-up.

What you can do
Open a float with an imprest amount, currency and custodian, and record cash top-ups into the tin, marking earlier vouchers reimbursed. Add, or delete while still uncounted, individual vouchers with amount, date, category, payee and receipt reference. Reconcile by counting the cash, returning the expected balance, the difference and the vouchers the count covers. Compute a replenishment request with the amount, covered vouchers, a per-category expense payload and the double entry, without posting anything. Produce a float report on balance against imprest, unreconciled vouchers, the last count and the history of differences. Check or activate a license.
When to use it
Useful for a small office, team or sole custodian who keeps a petty cash tin and wants an assistant to log vouchers, check the count against the paperwork and prepare the replenishment figures for whoever keeps the books.
Requirements
Runs as a local process on the desktop. The README says the npm package is not yet published, so the .mcpb bundle or a clone-and-build is the working install path. Data is stored locally under the user's data directory. No account, API key or network call is needed; an optional Pro license key is supplied through the MCP_LICENSE_KEY environment variable and verified offline.
Before you install
The free tier limits use to one float and 20 vouchers per calendar month, and replenishment and reporting are Pro-only; Pro is a paid one-time purchase. Vouchers can be deleted, and top-ups and reconciliations change stored records. All data stays in local files, and the server posts nothing to any other system, so the returned journal and expense payload must be entered elsewhere by the user.

Installation

In SourceWeft

  1. Open Cash Float in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Track a petty cash float from Claude

In the official MCP Registry (io.github.theluckystrike/petty-cash). A petty cash float, kept the way the paperwork keeps it. Open a tin with an imprest amount and a custodian, record a voucher for every receipt that comes out of it, count the cash whenever you like, and get the difference to the minor unit along with the list of vouchers that count covers. When the tin runs low it works out the replenishment: what the cheque has to be to put the float back to its imprest, which vouchers it reimburses, the totals per category as an expense_add-ready payload, and the double entry in the cash book's own account names. Every amount is an integer number of minor units, no balance is ever stored, and nothing is posted anywhere: the payload is handed back for whoever owns the books.

Built by theluckystrike.

npm publish for @theluckystrike/mcp-petty-cash is pending, so npx -y @theluckystrike/mcp-petty-cash returns 404 today. Until then, the .mcpb one-click bundle or a clone+build is the working path.

Install

Claude Desktop

macOS ~/Library/Application Support/Claude/claude_desktop_config.json, Windows %APPDATA%\Claude\claude_desktop_config.json:

json
{  "mcpServers": {    "petty-cash": {      "command": "npx",      "args": ["-y", "@theluckystrike/mcp-petty-cash"]    }  }}

Claude Code

sh
claude mcp add petty-cash -- npx -y @theluckystrike/mcp-petty-cash

Cursor

~/.cursor/mcp.json (global) or .cursor/mcp.json (project), same entry as Claude Desktop.

Tools

toolwhat it does
float_openOpen a float on the imprest system: name, currency, imprest amount in minor units, custodian. Returns FLOAT-YYYY-NNNN and the opening journal
topup_recordRecord cash going into the tin: amount, date, source. Marks every voucher up to that date reimbursed
voucher_addRecord one voucher out of the tin: amount, date, category, description, payee, receipt reference. Returns VOU-YYYY-NNNN
voucher_deleteDelete a voucher entered wrongly, while it is still uncounted
reconcileCount the cash: the expected balance, the difference, the vouchers since the last count, all marked reconciled, and the count recorded
replenish_requestWhat restores the imprest: the amount, the vouchers it covers, the per-category expense_add payload and the double entry. Writes nothing
float_reportBalance against imprest, unreconciled vouchers, the last count, and the history of every difference a count found
license_status / license_activateFree or Pro, and the key

Free vs Pro

FreePro
Floats open1Unlimited
Vouchers a calendar month20Unlimited
Reconciliation (reconcile)UnlimitedUnlimited
Delete a voucher (voucher_delete)YesYes
Record a top-up (topup_record)YesYes
Replenishment (replenish_request)-Yes
Report (float_report)-Yes

The count is never metered. Whether the cash in the tin matches the paperwork is the question this server exists to answer, and a free tier that withholds the answer is a demo. What is metered is the volume of record keeping: a second float is a second tin, and twenty vouchers a month is a real one-tin office. voucher_delete is free for the same reason the cap is on records held: a voucher typed in twice would otherwise cost a slot with no way back but a key.

Get Pro: https://mcp.zovo.one/buy/petty-cash, $19 one-time for this server, or $39 for the bundle.

A measured insight

The cheque is not the sum of the vouchers, and the gap is invisible in the voucher trail.

The worked month in test/unit.test.mjs: a EUR 500.00 imprest, five vouchers totalling 20,194 minor units, so the paperwork says the tin holds 29,806 on the 31st. It holds 29,795. The count is short by exactly 11 minor units, eleven cents that no voucher explains and no receipt will ever be found for.

The replenishment is then 20,205, not 20,194. Reimbursing the voucher total instead is the natural thing to do, it is what the vouchers add up to, and it restores the float 11 short. The same suite runs three cycles of that: the float ends at 49,967 against a 50,000 imprest, 33 minor units light, and every one of the three reconciliations in between reported a difference of exactly 11 and nothing worse. Nothing ever looks broken. The tin just gets smaller.

That is why replenish_request computes imprest - balance and never sum(vouchers), and why the difference comes back as its own cash_over_short journal line rather than being folded into an expense category where it would look like postage.

Privacy

All data stays local, in ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/petty-cash/. Three files: floats.json, vouchers.json, counter.json. Nothing is sent anywhere, there is no account, no API key and no network call in this server at all. License keys are verified offline. The journal and the expense_add payload are returned to you; this server posts nothing into any other store.

Built by theluckystrike. https://github.com/theluckystrike

Frequently asked questions

Is there an MCP server for petty cash?

Yes. The petty-cash server at mcp.zovo.one runs a petty cash float on the imprest system: vouchers, top-ups, per-category balances and reconciliation. Free tier, hosted endpoint, local-first storage.

How do I track petty cash from Claude?

Connect https://mcp.zovo.one/mcp/petty-cash and say: 'Record a 15 EUR voucher for office supplies.' Replenishment and reconciliation are single prompts.

Use these docs as an MCP server

Any MCP client (Claude, Cursor, Windsurf, VS Code) can read this repository's documentation directly via GitMCP - no install:

Source: servers/petty-cash/README.md at commit 1bd9d69

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.22.5LatestOct 14, 2026
  2. v0.21.0Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts