Home · Setup · Cline

MCP Petty Cash in Cline

A petty cash float on the imprest system: vouchers out of the tin, a count that reconciles them to the minor unit, and the replenishment that puts the float back. You open a tin with an imprest amount and a custodian, and then you type the receipts as they come: amount in whole minor units, date, category, description, payee, receipt reference. Whenever you count the cash, reconcile tells you what the paperwork said the tin should hold, what you actually counted, the difference to the minor unit, and every voucher that count covers, all marked reconciled. A count is treated as a FACT, so it moves the book balance: the difference is carried forward as an over or short rather than re-reported at every later count, which is what makes a tin that is short by a little every month readable as a run rather than as one number. When the tin runs low, replenish_request works out what the cheque has to be, and this is the decision the whole server rests on: it is imprest minus balance, never the sum of the vouchers. The two differ by exactly what the counts found over or short. The difference comes back as its own cash_over_short journal line rather than folded into an expense category where it would look like postage, and under the imprest system the petty_cash account does not move at a replenishment at all: the journal credits cash and debits the expenses per category, in the cash book's own account ids, so a category spelled Office Supplies, office supplies and OFFICE SUPPLIES is one account and not three. A voucher larger than the balance on its own date is refused, and so is a back-dated one that would make any LATER day negative, which the at-the-date check alone does not catch. A reconciled voucher cannot be deleted, because the cash it took out was already counted. No balance is stored anywhere: every balance is derived on the call from the imprest, the top-ups, the vouchers and what each count found.

reconcile, replenish_request and float_report are the safe ones to auto-approve in spirit, but only replenish_request and float_report write literally nothing: reconcile records the count and marks vouchers reconciled, which is a write, and it is a write you cannot take back because a reconciled voucher can no longer be deleted. Keep reconcile and voucher_add behind a click, voucher_add because it is the tool that spends one of the twenty free vouchers a month. Nothing here ever writes into another server's store.

What you get in Cline

You sayTool
Open a EUR 500 office float on 2026-03-01, Anna holds the tin.float_open
Stamps 1,250 minor units on 2026-03-02, postage. Taxi 3,480 on the 5th, travel, receipt 4471.voucher_add
I counted 29,795 in the tin on 2026-03-31. What is the difference, and what does the replenishment cheque have to be?reconcile

The cheque is not the sum of the vouchers, and nothing in the voucher trail says so. Measured on this server's worked month: a 50,000 minor unit imprest, five vouchers totalling 20,194, 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 no receipt will ever explain. The replenishment is therefore 20,205, not 20,194. Reimbursing the voucher total instead is not obviously wrong: it is what the paperwork adds up to, it reconciles against the receipts, and the next count comes back short by 11 again, which reads as a fresh 11 rather than the same one. The unit suite runs three cycles of exactly that and the float ends at 49,967 against a 50,000 imprest, 33 minor units light, with three clean-looking reconciliations behind it, each reporting a difference of exactly 11 and nothing worse. The tin gets smaller and no single number in the record ever looks wrong.

Install it in Cline

The file is mcp.json, and the key inside it is mcpServers.

ScopePath
Cline CLI~/.cline/mcp.json
The editor extensionopened from the Cline panel, not by path; the documentation deliberately calls it the MCP settings JSON used by the extension
{
  "mcpServers": {
    "petty-cash": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-petty-cash"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

No full-app restart. The MCP settings actions include restarting an unresponsive server if its tools do not appear.

The npm publish of @theluckystrike/mcp-petty-cash is pending; until then use the .mcpb bundle or a clone and build from the latest release.

No install: the hosted endpoint

The same server runs at https://mcp.zovo.one/mcp/https://mcp.zovo.one/mcp/petty-cash over MCP streamable HTTP, no install. Mint a free token with curl https://mcp.zovo.one/mcp/token, or use a Pro key. It has no filesystem, so a file comes back as a one-hour download link.

Write the transport in. Omitting type falls back to the legacy sse transport, which will not talk to this endpoint:

{
  "mcpServers": {
    "petty-cash": {
      "type": "streamableHttp",
      "url": "https://mcp.zovo.one/mcp/https://mcp.zovo.one/mcp/petty-cash",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

Cline notes worth knowing first

Cline is the one client here with an unsafe transport default. `type` selects it, and omitting `type` falls back to the legacy sse transport, so a streamable HTTP endpoint needs it written in or you will debug a server that is fine. Local entries carry "disabled" and an "autoApprove" array.

Free: reconcile is free and unlimited on every tier. 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 rather than a tool, so the count and its difference are never metered. voucher_delete and topup_record are free for the same reason: a voucher typed in twice would otherwise cost a slot with no way back but a key, and the cash physically going back into the tin is not a feature to sell. The meter is on the volume of record keeping instead: one float, and twenty vouchers a calendar month, which is a real one-tin office. Pro is $19 once, verified offline.

Questions

Where does the config live?

The CLI reads ~/.cline/mcp.json. For the extension, do not hunt for a path: MCP Servers icon, Configure tab, Configure MCP Servers. cline mcp opens a wizard, and cline config mcp --json is the non-interactive form.

The hosted endpoint will not connect.

Set the transport explicitly. Omitting type falls back to the legacy sse transport, so streamable HTTP needs "type": "streamableHttp" written in. It is the one default here that sends you debugging a server that works.

Should I auto-approve MCP Petty Cash's tools?

Approve the read-only ones and leave the writing ones behind a click: each entry carries an autoApprove array and a disabled flag.

Related

MCP Petty Cash in detail · The same server in Windsurf and Claude.ai and Claude Desktop connectors · Every server in Cline · Guides · Cline docs · Buy Pro