io.github.theluckystrike/invoice-pdf-billing-generator

McpStamp Invoices

Numbered invoices with VAT as A4 PDFs, a client list, payments and a list of overdue invoices.

Endpointhttps://mcp.zovo.one/mcp/invoice (streamable-http)
Registry version0.23.0
Now13 tools · grade C (69) · pin ts_1047888b1a375c887504d18db7b714ad · protocol 2025-06-18
First / last listed2026-11-13 01:53 UTC / 2026-11-13 01:53 UTC
Grade over time2026-11-13: C (69), 13 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-11-13 01:53 UTC
13 tools, grade C (69)

Tools: business_set client_add client_delete client_list invoice_create invoice_from_hours invoice_list invoice_get invoice_mark_paid invoice_pdf overdue_report license_status license_activate

Current tools (13)

business_setThe ONE business profile for the whole suite: name, address, VAT id, bank details and defaults (currency, tax rate, terms, prefix, timezone). Saved to the shared profile every other server reads. Call it once, first.
params: name*, address, email, phone, timezone, vat_id, iban, bank, logo_path, default_currency, default_tax_rate, payment_terms_days, invoice_prefix, tax_rate, vat_rate, vat
client_addStore a client so invoice_create can refer to them by name. Re-adding the same name updates the stored address, email and VAT id; a record identical to a stored one is refused, naming the id that already holds it.
params: name*, address, email, vat_id
client_deleteDelete one stored client that nothing refers to. A client named on any invoice, quote, credit note, purchase order, deposit, statement or schedule is refused with those documents listed.
params: client*
client_listList every stored client with id, address, email and VAT id. No arguments, and it writes nothing. With none stored it says so: invoice_create also creates a client from the name you pass.
params: none
invoice_createCreate an invoice from line items and return the record with its next, never-reused number. unit_price is in MAJOR units; lines are rounded then summed. One currency per invoice. Free: 3 a month.
params: client*, items*, currency, issue_date, due_days, notes, discount_percent
invoice_from_hoursShortcut for the common case: bill one client for N hours at an hourly rate. Creates and returns a single-line invoice, converting the rate into target_currency when you supply fx_rates, and echoing back any entry_ids.
params: client*, hours*, rate*, description, tax_rate, currency, target_currency, fx_rates, entry_ids, issue_date, due_days, notes, discount_percent, round_total
invoice_listList invoices by number: client, dates, currency, subtotal, discount, tax lines, total, status, paid, credited and the balance still due after any credit note. Filter by status, client and date range.
params: status, client, from, to
invoice_getReturn the full stored record for one invoice number, including every line, tax breakdown, and the balance still open after any credit note issued against it (see credited_minor).
params: number*
invoice_mark_paidRecord a payment on one invoice. amount is in MAJOR units and ADDS to what is paid, never replaces it; omit it to settle the rest. An overpayment is refused, naming the open balance.
params: number*, paid_date, amount, method, reference
invoice_pdfCall this tool to write one stored invoice as an A4 PDF and return the path: issuer, BILL TO, dates, items, taxes and totals. Free stamps a credit line and no logo; Pro renders it unbranded with your logo.
params: number*, out_path
overdue_reportList every invoice not paid in full whose due date has passed, worst first, with days overdue and the amount, then a total per currency. Free. Use invoice_list for everything still open.
params: as_of
license_statusReport 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.
params: none
license_activateTurn 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.
params: key*

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.