mcp-credit-note
Create, revise, finalize, list, read, delete, render, and summarize credit notes/credit memos locally, with free/Pro licensing.
Create credit notes against an invoice or standalone with recipient, reason, currency, issue date, invoice reference, notes, and line items (quantity, unit price in minor units, tax rate).
Update drafts, including replacing all lines; finalized notes are immutable.
Finalize a draft to assign the final CN-YYYY-NNNN number and freeze it; Free allows 10 finalized notes, Pro unlimited.
List and filter notes by recipient, reason, status, and issue-date range.
Read a full credit note by final number or draft id.
Delete drafts; deleting finalized notes is refused.
Render notes as Markdown or self-contained printable HTML, with a DRAFT banner for drafts.
Summarize finalized credits by currency, reason, and month within a date range.
Check license status and activate a Pro key offline.
Keep all data local with no network calls.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-credit-note issue a credit note for $45.00 to Acme for returned goods on invoice INV-2024-0312"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-credit-note
MCP server for credit notes and credit memos against an invoice or standalone. Credit notes against an invoice or standalone: drafts, finalization, rendering and totals, all in integer minor units.
Works with Claude Desktop, Claude Code, Cursor and any Model Context Protocol client. Runs on your own machine, or hosted with no install.
Product page: https://mcp.zovo.one/s/credit-note - what it does, the tools it exposes, and a live token endpoint.
Install
Hosted, nothing to install. Get a token from https://mcp.zovo.one/mcp/connect (the connect page) or https://mcp.zovo.one/mcp/token (the same token as JSON); a free anonymous one is issued on the spot and a Pro key works the same way. Then point an MCP client at https://mcp.zovo.one/mcp/credit-note over streamable-http and send the token as Authorization: Bearer <token>.
If your client cannot set headers, put the token in the path instead: https://mcp.zovo.one/mcp/credit-note/t/<token>. Both forms work. The bare URL with no token answers 401 on tools/call, so the token is not optional.
Claude Desktop, one click. Download credit-note.mcpb from the latest release and double-click it.
From source. The mirror is self-contained: every @theluckystrike/* dependency is vendored, so a fresh clone builds with no extra setup.
git clone https://github.com/theluckystrike/mcp-credit-note.git
cd mcp-credit-note
npm install && npm run buildThen point your client at the built entry point:
{
"mcpServers": {
"credit-note": {
"command": "node",
"args": ["/absolute/path/to/mcp-credit-note/dist/index.js"]
}
}
}
@theluckystrike/mcp-credit-noteis not published on npm yet, so annpx -y @theluckystrike/mcp-credit-notecommand will fail. The three paths above are the working ones and each is exercised by CI.

Read-only mirror of mcp-servers/servers/credit-note. See MIRROR.md.
In the official MCP Registry (io.github.theluckystrike/credit-note).
Credit notes (credit memos) for freelancers and small businesses, kept the way the paperwork keeps them. Issue a credit against an invoice or standalone: the recipient, the reason (returned goods, overcharge, discount correction, service issue, other), line items with quantity, unit price and tax rate, and the currency. Every credit note starts as a draft you can revise and delete; finalizing burns the final CN-YYYY-NNNN number and freezes it, because a finalized credit note is a document the client may have seen. Render one to Markdown to paste into an email, or to a self-contained printable HTML page, and get the totals credited per currency, reason and month. Every amount is an integer number of minor units, and nothing is sent anywhere.
Built by theluckystrike.
npm publish for @theluckystrike/mcp-credit-note is pending, so npx -y @theluckystrike/mcp-credit-note returns 404 today. Until then, a clone+build is the working path.
Related MCP server: mcp-server-billing
Install
Claude Desktop
macOS ~/Library/Application Support/Claude/claude_desktop_config.json, Windows %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"credit-note": {
"command": "npx",
"args": ["-y", "@theluckystrike/mcp-credit-note"]
}
}
}Claude Code
claude mcp add credit-note -- npx -y @theluckystrike/mcp-credit-noteCursor
~/.cursor/mcp.json (global) or .cursor/mcp.json (project), same entry as Claude Desktop.
Tools
tool | what it does |
| Issue a credit note against an invoice or standalone: recipient, reason, lines with quantity, unit price in minor units and tax rate, currency. Returns a |
| Revise a draft while it is still a draft: recipient, reason, lines, currency, invoice reference, issue date or notes. New lines replace all old ones. A finalized note is refused by name |
| Burn the final |
| List credit notes with number, recipient, reason, status, issue date and total. Filter by recipient, reason, status, and issue-date period |
| Read one credit note in full by CN number or draft id: every line, the tax lines, the totals, the reason and the notes |
| Delete a draft entered wrongly. A finalized note is refused: it is a document the client may have seen |
| Render a credit note as Markdown to paste into an email, or as a self-contained printable HTML page. Drafts render with a DRAFT banner |
| Total credited per currency over finalized notes, broken down by reason and by month, in an optional issue-date period |
| Free or Pro, and the key |
Free vs Pro
Free | Pro | |
Finalized credit notes | 10, lifetime | Unlimited |
Drafts ( | Unlimited | Unlimited |
Delete a draft ( | Yes | Yes |
Listing, reading ( | Unlimited | Unlimited |
Rendering ( | Unlimited, one-line footer | Unlimited, no footer |
Totals ( | Unlimited | Unlimited |
Finalizing is the metered act because that is what turns a draft into the document the client sees. Everything else is free and unlimited: a free tier that withholds the rendered document or the totals is a demo, and ten real finalized credit notes is a working year for a freelancer who credits an invoice now and then.
Get Pro: https://mcp.zovo.one/buy/credit-note, $19 one-time for this server, or $39 for the bundle.
The rounding rule
Every amount is an integer number of minor units (cents), and the line math is documented so the printed document reproduces on a calculator:
The unit price enters as integer minor units, so nothing is rounded on input. The line gross is quantity x unit price, rounded half-up once:
gross = round_half_up(quantity * unit_price_minor). A whole quantity is exact; a fractional one (2.5 hours at EUR 33.33) lands on the nearest cent, and 2.5 x 3333 = 8332.5 rounds to 8333, never banker's 8332.Tax is computed per line and rounded half-up per line:
tax = round_half_up(gross * rate / 100).The line total is gross + tax, and the note totals are plain integer sums of the already-rounded line values.
Round per line, then sum: a total can never drift from the printed lines by more than the rounding already visible on those lines, so the tax line at 23% is on its own base (the 23% lines only), not on the whole subtotal.
Numbering
Drafts carry a CN-DRAFT-YYYY-NNNN id no client sees. The final CN-YYYY-NNNN number is assigned only at finalize, in the issue date's year, and the counter is written before the record, so a crash burns a number rather than reusing one. Because drafts never hold a final number and finalized notes cannot be deleted, the final series never has a gap.
Privacy
All data stays local, in ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/credit-note/. Two files: notes.json, counter.json. Nothing is sent anywhere, there is no account, no API key and no network call in this server at all. License keys are verified offline. The Markdown and HTML renders are returned as text; this server writes no document files.
Built by theluckystrike. https://github.com/theluckystrike
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:
Docs MCP URL: https://gitmcp.io/theluckystrike/mcp-credit-note
Available Tools
10 toolscredit_note_createIssue a credit noteA
Issue a credit note against an invoice, or standalone: the recipient, the reason (returned goods, overcharge, discount correction, service issue, other), line items with quantity, unit price and tax rate, and the currency. Returns a draft you can still revise; credit_note_finalize burns the final CN number.
Inputs: lines (required), reason (required), currency (required), recipient (required), +5 more.
credit_note_deleteDelete a draft credit noteA
Delete a draft credit note entered wrongly, by its draft id. A finalized note is refused by name: it is a document the client may have seen, and deleting it would leave their copy pointing at nothing.
Inputs: id (required).
credit_note_finalizeFinalize a credit noteA
Finalize a draft: burn the final CN-YYYY-NNNN number and freeze the note. From here it cannot be edited or deleted, only rendered and listed, because it is now the document the client sees. Free tier: 10 finalized credit notes; Pro removes the limit.
Inputs: id (required).
credit_note_getRead one credit note in fullA
Return one credit note by its CN number or draft id: every line with quantity, unit price and tax, the totals per tax rate, the reason, the invoice it credits, and the notes. Reads only; use credit_note_list for the ids.
Inputs: id (required).
credit_note_listList credit notesA
List credit notes: number or draft id, recipient, reason, status, issue date and total. Filter by recipient (a part of the name is enough), by reason, by status draft or final, and by issue-date period with from and to.
Inputs: to, from, limit, reason, +2 more.
credit_note_renderRender a credit note as Markdown or printable HTMLA
Turn a credit note into the document: Markdown to paste into an email or ticket, or a self-contained printable HTML page with every style inline. Drafts render with a DRAFT banner so a half-finished credit cannot be sent by mistake. Writes nothing. Free; the free tier stamps a one-line footer.
Inputs: id (required), format.
credit_note_summaryTotal credited by period, currency and reasonA
How much you have credited: totals per currency over finalized credit notes, broken down by reason and by month, in an optional issue-date period. Drafts count for nothing until they are finalized. Currencies are never added together.
Inputs: to, from.
credit_note_updateRevise a draft credit noteA
Change a draft credit note while it is still a draft: recipient, reason, lines, currency, invoice reference, issue date or notes. Pass only what changes; new lines replace all old ones. A finalized note is immutable and is refused by name.
Inputs: id (required), lines, notes, reason, +5 more.
license_activateActivate licenseA
Activate a Pro key (MCPL1.xxx.yyy) from checkout: verified offline against a built-in public key, saved to your config file. A wrong, malformed or expired key is refused, unsaved. license_status reads it back.
Inputs: key (required).
license_statusLicense statusA
Report this server's licence state: product, tier free or pro, licence id, expiry, the key source and the upgrade URL. No arguments, no network. Explains a free-tier refusal; license_activate installs a key.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each credit note tool targets a distinct stage or view: create, update, finalize, list, get, delete, render, and summary are mutually exclusive operations. The two license tools are also clearly distinct from the credit note set and from each other.
All tools use a consistent snake_case noun_verb pattern, with credit_note_* for the core domain and license_* for server licensing. No mixed conventions or vague verbs.
Ten tools is well-scoped: eight cover the full credit note lifecycle, two handle licensing. No redundant or filler tools.
The credit note surface covers creation, drafting, revision, finalization, listing, retrieval, deletion of drafts, rendering, and summary reporting. License status and activation are also present, leaving no obvious dead ends for the stated domain.
Maintenance
Related MCP Connectors
Credit notes against an invoice or standalone: drafts, finalization, rendering, totals.
Credit notes against issued invoices and purchase orders to suppliers, with VAT and A4 PDFs.
Issue, deduct, refund and sell credits: checkout, subscriptions, saved cards, escrow and wallets.
Credit all or part of an invoice with the VAT reversed, raise purchase orders, print A4 PDFs.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables creation and management of invoices with JSON storage and LaTeX-based PDF rendering. Supports draft creation and professional PDF generation through customizable LaTeX templates.Apache 2.0
- FlicenseNot gradedqualityDmaintenanceMCP server providing guarded access to a B2B SaaS billing database (customers, subscriptions, invoices, credit notes) and live ECB exchange rates, with read-only tools and one capped, idempotent write for issuing credit notes.-
- AlicenseAqualityBmaintenanceEnables building client statements of account from existing invoices, credit notes, and deposits, with aged outstanding balances, PDF/plain-text output, and drafted payment chasers at friendly, firm, or final levels.860 npmMIT
- AlicenseAqualityBmaintenanceEnables users to track unpaid invoices and generate an escalating ladder of payment-reminder letters — first reminder, second reminder, and final notice — anchored to the due date, plus overdue listings, aging buckets, and a daily chase list of what to send today. It records payments and letters sent, rendering each letter as Markdown or printable HTML without ever emailing anything itself.1146 npmMIT