Home · Setup · Claude.ai and Claude Desktop connectors

MCP Petty Cash in Claude.ai and Claude Desktop connectors

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.

This server reads no sibling store at all, so the hosted route needs nothing but what you type: the float, its vouchers and its counts live in the hosted store behind the token, which means the one free float, the twenty free vouchers a calendar month and the VOU-YYYY-NNNN numbers follow the key rather than the machine. There is no network call inside the server on any route, so the expected balance, the difference a count finds and the replenishment amount are the same here as on a laptop, down to the minor unit, and no balance is stored on either route because every balance is derived on the call. replenish_request returns the double entry and its per-category expense_add payload as text, which is exactly what the expense-tracker connector on the same token takes.

What you get

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.

Connect it, no install

https://mcp.zovo.one/mcp/connect mints an anonymous token and prints a URL per server, including this one, shaped like https://mcp.zovo.one/mcp/https://mcp.zovo.one/mcp/petty-cash/t/<token>. That URL works with no headers: the token is in the path, not in an Authorization field this form does not have.

  1. Open https://mcp.zovo.one/mcp/connect and copy the URL printed for MCP Petty Cash.
  2. There is no config file here: the Add custom connector form asks for a name and a Remote MCP server URL, with an Advanced settings section for an optional OAuth Client ID and Client Secret.
  3. Paste the URL as the Remote MCP server URL. Leave the optional OAuth Client ID and Client Secret blank; this endpoint does not use them.
  4. Click Connect, then turn the connector on for a conversation from the + button, Connectors.

Idle anonymous tokens are swept after 30 days. Since this route has no filesystem, a file MCP Petty Cash generates comes back as a download link that expires after one hour. A Pro key can replace the token in the same URL and removes the free-tier limits.

Claude.ai and Claude Desktop connectors notes worth knowing first

On an individual Pro or Max plan you add the connector yourself from Customize, Connectors. On Team and Enterprise it is the other way round: only an Owner or Primary Owner can add a custom connector, at Organization settings, Connectors, and members then connect to what the Owner added rather than pasting their own URL.

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, and binds to the token after checkout.

Questions

Does this need OAuth?

No. Add custom connector offers an Advanced settings section with an OAuth Client ID and Client Secret, but the connect-by-URL route does not use it. Leave both blank: the token in the URL path is what authenticates.

I am on a Team or Enterprise plan and cannot add a connector.

That is documented, not a bug: on Team and Enterprise, only an Owner or Primary Owner can add a custom connector, at Organization settings, Connectors, Add, Custom, Web. After that, members connect to the URL the Owner added from Customize, Connectors.

Can I use my Pro key instead of the free anonymous token?

Yes. The token segment of the URL from /mcp/connect can be replaced with a Pro key, which removes the free-tier limits on MCP Petty Cash for that connector.

Why did a generated file come back as a link instead of opening?

The connector runs server-side with no filesystem of its own, so any file MCP Petty Cash produces is handed back as a download link that expires after one hour, rather than a path on disk.

Related

MCP Petty Cash in detail · How connect-by-URL works · Every server for Claude.ai and Claude Desktop connectors · All clients · Claude.ai and Claude Desktop connectors docs · Buy Pro