Home · Setup · Claude Code
Credit notes and purchase orders written against the invoices the invoice server already holds, with the VAT unwound at the rate you charged. It credits an invoice in full, by a gross amount or by named lines and quantities, storing every money field negative in minor units so a period's documents sum to the net of what was billed, and it refuses to give back more than the invoice's remaining creditable amount. It also raises purchase orders to suppliers with line items, VAT, currency and an expected delivery date, receives them in full or in part, and reports credited and on-order totals per currency alongside deliveries past their date.
Both servers read one XDG data directory per machine, so `claude mcp add billing-docs` alongside `claude mcp add invoice` at any scope sees the same invoices and the same client list, and the 5-document monthly allowance is counted once for the box rather than once per project.
| You say | Tool |
|---|---|
| Credit invoice INV-2026-0001 in full, the client sent the work back. | credit_note_create |
| Raise a purchase order to Nordic Print for 500 brochures at 1.20 each, due the 20th. | purchase_order_create |
| Which purchase orders are past their delivery date? | billing_docs_report |
Crediting ten percent of a mixed-VAT invoice at a single rate and splitting it across the invoice's own rates give the same gross, EUR 177.00, and VAT lines that differ by EUR 6.10, 22.6 percent. The client's document and the payment are identical either way, so nothing downstream ever surfaces the error; only the VAT return does. The split is done at the point the document is written.
The file is .mcp.json, and the key inside it is mcpServers.
| Scope | Path |
|---|---|
| local (default) | ~/.claude.json, this project only |
| project | .mcp.json at the repository root |
| user | ~/.claude.json, every project |
claude mcp add billing-docs -- npx -y @theluckystrike/mcp-billing-docs
claude mcp list # health-check it before the first prompt
# or --scope project, committed to .mcp.json for the team
No restart. The entry is picked up in the next session, and `/mcp` reconnects one on demand.
The npm publish of @theluckystrike/mcp-billing-docs is pending; until then use the .mcpb bundle or a clone and build from the latest release.
There is no hosted endpoint for this one yet. MCP Billing Docs runs locally over stdio with the config above, which is also the only form in which it reads and writes files on your own disk. Three of the servers in this collection are served at https://mcp.zovo.one/mcp/<name> over MCP streamable HTTP: time-tracker, price-tracker and invoice.
The `--` is load-bearing: it separates Claude Code's own options, such as --transport, --env and --scope, from the command that runs the server. And the default scope is local, private to you and to the directory you ran it in, so adding it in the wrong folder leaves the tools absent with no error at all.
Free: 5 documents a calendar month, credit notes and purchase orders together, counted by issue date. Both text exports are never metered, and full, partial and per-line credit notes, VAT, multiple currencies and receiving orders are all on the free tier. Pro is $19 once, verified offline.
Local, the default, writes ~/.claude.json and is private to you and that directory. --scope project writes .mcp.json at the repository root, shared through version control. --scope user loads it everywhere.
Measured, not documented: of three fresh projects, one first prompt made zero tool calls although initialize answered in 1.05 seconds. Run claude mcp list once first: it prints Connected, and the next run used the tool.
Not yet. MCP Billing Docs runs locally over stdio, which is also how it reads and writes files on your disk. The hosted endpoints at https://mcp.zovo.one/mcp currently cover time-tracker, price-tracker and invoice.
MCP Billing Docs in detail · The same server in Claude Desktop and Cursor · Every server in Claude Code · Guides · Claude Code docs · Buy Pro