McpStamp Petty Cash

io.github.theluckystrikePublished by GitHub account theluckystrikev0.23.0Updated Nov 3, 2026

Run a petty cash float: numbered vouchers, cash counts, over and short, replenishment amounts.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowFinance

Overview

McpStamp Petty Cash's hosted MCP server (mcp.zovo.one); no sign-in required; Streamable HTTP; 9 tools.

No AI overview yet: these facts come from the registry entry and the server itself.

Endpoint
mcp.zovo.one
Last checked

Installation

In SourceWeft

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

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.theluckystrike%2Fpetty-cash/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "mcpstamp-petty-cash": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/petty-cash"
    }
  }
}

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 6535b33

Tools

9

float_open

Open a petty cash float

Open a petty cash float on the imprest system and return its id. The imprest is the cash the tin is topped back up to at every replenishment, in whole minor units. Free tier: one float.

Parametersnamerequirednoteopenedcurrencyrequiredcustodianimprest_minorrequired

topup_record

Record cash put into the float

Record cash put into the tin, in whole MINOR units, with the date and source, and return the new balance against the imprest. It also reimburses every voucher up to that date, as a replenishment does.

Parametersdaterequiredfloatsourcerequiredamount_minorrequired

voucher_add

Record a petty cash voucher

Record one voucher paid out of the tin and return its VOU-YYYY-NNNN number. More than the float holds is refused, and so is a byte-identical duplicate. Free tier: 20 vouchers a calendar month.

Parametersdaterequiredfloatpaid_torequiredcategoryrequireddescriptionrequiredreceipt_refamount_minorrequiredduplicate_ok

voucher_delete

Delete a voucher

Delete a voucher entered wrongly, by its VOU number. One already covered by a reconciliation is refused, naming the count it would falsify: record a correcting voucher instead. Free.

Parametersvoucherrequired

reconcile

Count the tin and reconcile

Count the tin: give the cash counted in whole MINOR units and the date, and get the expected balance, the difference, and every voucher since the last count, which this marks reconciled. Free.

Parametersdaterequiredfloatcounted_minorrequired

replenish_request

Request a replenishment

Work out what puts the float back to its imprest: the amount, the vouchers it reimburses, the totals per category as an expense_add-ready payload, and the double entry. Writes nothing. Pro.

Parametersdatefloat

float_report

Report the state of the float

Report each float: balance against imprest, what it takes to restore it, unreconciled vouchers with their total, the last count, and the history of what counts found over or short. Pro.

Parametersfloatlimit

license_status

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.

Takes no parameters.

license_activate

Activate license

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.

Parameterskeyrequired

Version history

5
  1. v0.23.0LatestNov 3, 2026
  2. v0.22.6Oct 14, 2026
  3. v0.22.1Oct 9, 2026
  4. v0.22.0Sep 17, 2026
  5. v0.21.0Sep 16, 2026

Score

100% 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 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts