McpStamp Deposits

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

Track client security and retainer deposits: hold, apply to an invoice, refund, statements.

VerifiedStreamable HTTPWeb executableFinanceBusiness & Commerce

Overview

McpStamp Deposits's hosted MCP server (mcp.zovo.one); no sign-in required; Streamable HTTP; 11 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 Deposits 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%2Fdeposits/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-deposits": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/deposits"
    }
  }
}

README

mcp-deposits

Security and retainer deposits, held per client, on the same engine as your invoices.

A deposit is the client's money sitting on your account. It has to be recorded when it arrives, set against an invoice when the work is billed, given back when it is not, and answered for at any point in between: how much of theirs are you holding, in which currency, since when. This server does those four things, against the invoices and the clients the mcp-invoice server already holds. When a deposit is applied to an invoice, the payment is recorded on that invoice, so invoice_list and overdue_report stop chasing money you already have. Everything stays on your machine.

Built on @theluckystrike/mcp-invoice/lib for the money, currency and store code, and on @theluckystrike/mcp-billing-docs/lib for the A4 page, so a deposit statement looks like the credit note and the invoice next to it and agrees with them to the minor unit.

In the official MCP Registry (io.github.theluckystrike/deposits).

[deposits demo]

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

Install

Claude Desktop (claude_desktop_config.json):

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

Claude Code:

sh
claude mcp add deposits -- npx -y @theluckystrike/mcp-deposits

Cursor (.cursor/mcp.json):

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

Run mcp-invoice alongside it: this server reads that server's invoices and clients, writes the payment an applied deposit makes onto the invoice, and both take their name, address, VAT id and default currency from one shared business profile.

Tools

toolwhat it does
deposit_recordRecord a security or retainer deposit received: amount in minor units, currency, date, reference
deposit_listEvery deposit with received, applied, refunded and held. Filter by client, status, kind or date
deposit_applyApply part or all of a held deposit to an invoice, as a payment on that invoice
deposit_refundGive part or all of a held deposit back, with the date and the method
deposit_deleteRemove a deposit recorded by mistake, if none of it was ever applied or refunded
deposit_balanceWhat is held, per client and per currency: received, applied, refunded, held
deposit_statement_textThe plain-text statement to paste into an email
deposit_statement_pdfThe A4 PDF, titled DEPOSIT STATEMENT (Pro)
deposits_reportHeld per currency, the oldest held deposits, and what has sat unapplied for N days (Pro)
license_status, license_activateFree or Pro, and how to upgrade

One resource, deposits://held, and one prompt, settle_deposits.

Free vs Pro

FreePro
Deposits recorded per calendar month5Unlimited
Applying to invoices, refunds, balances, listsYes, unlimitedYes
deposit_delete for a deposit that never moved moneyYes, unlimitedYes
deposit_statement_textYes, unlimitedYes
deposit_statement_pdfNoYes, plus your logo and no footer credit
deposits_reportNoYes

The free cap is on recording new deposits only. Money already held can always be applied, refunded and accounted for, on any tier: a limit that trapped a client's deposit would be a limit on their money, not on yours.

The cap counts the deposits stored with a received date in that month, so deposit_delete gives the slot straight back: a deposit typed in twice or with the wrong amount costs nothing but the id. deposit_record also refuses a deposit that matches one already stored on client, amount, currency, kind, received date and reference, names that id and stores nothing, so the same money is never held twice and no free slot is spent on a retry.

Get Pro: https://mcp.zovo.one/buy/deposits ($19 one-time for this server, $39 for the bundle).

A measured thing

The invoice server's own payment tool SETS the amount paid, so routing a deposit through it erases the payment that came before. Measured against servers/invoice/dist/index.js on a EUR 1,000.00 invoice: invoice_mark_paid {amount: 200} for a bank transfer, then invoice_mark_paid {amount: 300} for the deposit, leaves paid_minor at 30000 and the reply reads "balance due EUR 700.00". The EUR 200.00 that actually arrived is gone from the record, and the client gets chased for it.

deposit_apply writes the same three fields on the same record, paid_minor, paid_date, status, but ADDS: the same two payments leave paid_minor at 50000 and a balance due of EUR 500.00. Asserted in test/unit.test.mjs, "a second application ADDS to paid_minor, it does not replace it".

The general form: a store shared between two servers is safe to write only if you have read how the owning server writes it. The field names matching is not the contract; the arithmetic on them is.

Privacy

All data stays local: ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/deposits/. No account, no API key, no network call, ever. Licence keys are verified offline.

Built by theluckystrike. Support: [email protected]

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/deposits/README.md at commit 6535b33

Tools

11

deposit_record

Record a deposit received

Record a security or retainer deposit received from a client, in minor units, with its currency, the date it arrived and the bank reference. Returns the DEP-YYYY-NNNN id.

Parameterskindrequirednotesclientrequiredcurrencyreferenceamount_minorrequiredclient_emailclient_vat_idreceived_dateclient_address

deposit_list

List deposits

List deposits newest first: DEP number, client, kind, date, reference and what was received, applied, refunded and still held, with the same four totalled per currency. Filter by client, status, kind, date.

Parameterstofromkindclientstatus

deposit_apply

Apply a deposit to an invoice

Apply part of a held deposit to one invoice: it records that amount as a PAYMENT through the invoice server. amount_minor defaults to the lesser of held and owed. More than either, or a pre-arrival date, is refused.

Parametersidrequireddatenoteinvoicerequiredamount_minor

deposit_refund

Refund a deposit

Give part or all of a held deposit back to the client, with the date and how it was sent. Refuses more than is still held. The invoice server is not touched: a refund is not a payment.

Parametersidrequireddatenotemethodamount_minor

deposit_delete

Delete a deposit recorded by mistake

Delete a deposit that never moved money, freeing that month's free-tier slot. One with anything applied or refunded is refused, naming it, since a payment or refund would be left with nothing behind it.

Parametersidrequired

deposit_balance

What is held for a client

Answer "how much of theirs am I holding?" for one client or everyone: received, applied to invoices, refunded and still held, one row per currency, never added across them. Reads only; deposit_list shows each deposit.

Parametersas_ofclient

deposit_statement_text

Plain-text deposit statement

Turn one client's deposits into a plain-text statement to paste into an email: every movement in date order and the closing balance held. Pass currency when they have more than one. Also a .txt download link valid one hour. Free on every tier.

Parametersas_ofclientrequiredcurrencygreetingsign_off

deposit_statement_pdf

Render the deposit statement as a PDF

Call this tool to render one client's A4 deposit statement and return a download link valid for one hour. Titled DEPOSIT STATEMENT, every movement in date order, closing with what is still held. Pro.

Parametersas_ofclientrequiredcurrencyout_path

deposits_report

What is held, and for how long

The deposit book at a date: held per currency, received, applied and refunded, the oldest holdings with days held, and every deposit older than N days with nothing applied. Pro; deposit_balance is free.

Parametersas_oflimitolder_than_days

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

4
  1. v0.23.0LatestNov 3, 2026
  2. v0.22.6Oct 14, 2026
  3. v0.22.0Sep 17, 2026
  4. 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