Credit Note

io.github.theluckystrikePublished by GitHub account theluckystrikev0.22.8Updated Oct 24, 2026

Credit notes against an invoice or standalone: drafts, finalization, rendering, totals.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowFinance

Overview

AI-generated overview

A local MCP server for freelancers and small businesses to create, finalize, render and total credit notes against invoices or standalone.

What you can do
Create and revise draft credit notes with recipient, reason, line items, tax rates and currency, and delete drafts entered wrongly. Finalize a draft to burn a final CN number and freeze it, or list and read notes filtered by recipient, reason, status and date. Render a note as Markdown for an email or as a printable HTML page, with drafts marked DRAFT. Summarize amounts credited per currency, reason and month over finalized notes. Check or activate a free or Pro license.
When to use it
Use it when you issue credit memos or credit notes for clients and want an assistant to draft, finalize, render and total them without leaving the chat. Suited to occasional crediting by a freelancer or small business rather than high-volume invoicing.
Requirements
Runs as a local process (an mcpb package over stdio) or as a remote endpoint. The remote endpoint requires a bearer token in the Authorization header, either a Pro license key or an anonymous token; an optional MCP_LICENSE_KEY enables Pro offline. The npm package is not yet published, so a clone and build is currently needed for local use.
Before you install
Finalizing is irreversible: a finalized note cannot be edited or deleted, and the free tier allows 10 finalized notes lifetime. Pro is a paid one-time purchase. Data is stored locally in the user's data directory; license keys are verified offline. The README also points to a third-party documentation service for reading the repo docs.

Installation

In SourceWeft

  1. Open Credit Note in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. 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%2Fcredit-note/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": {
    "credit-note": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/credit-note-ics",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

mcp-credit-note

[theluckystrike/mcp-credit-note MCP server]

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.

Install

Claude Desktop

macOS ~/Library/Application Support/Claude/claude_desktop_config.json, Windows %APPDATA%\Claude\claude_desktop_config.json:

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

Claude Code

sh
claude mcp add credit-note -- npx -y @theluckystrike/mcp-credit-note

Cursor

~/.cursor/mcp.json (global) or .cursor/mcp.json (project), same entry as Claude Desktop.

Tools

toolwhat it does
credit_note_createIssue a credit note against an invoice or standalone: recipient, reason, lines with quantity, unit price in minor units and tax rate, currency. Returns a CN-DRAFT-YYYY-NNNN draft
credit_note_updateRevise 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
credit_note_finalizeBurn the final CN-YYYY-NNNN number and freeze the note: from here it cannot be edited or deleted, only rendered and listed
credit_note_listList credit notes with number, recipient, reason, status, issue date and total. Filter by recipient, reason, status, and issue-date period
credit_note_getRead one credit note in full by CN number or draft id: every line, the tax lines, the totals, the reason and the notes
credit_note_deleteDelete a draft entered wrongly. A finalized note is refused: it is a document the client may have seen
credit_note_renderRender a credit note as Markdown to paste into an email, or as a self-contained printable HTML page. Drafts render with a DRAFT banner
credit_note_summaryTotal credited per currency over finalized notes, broken down by reason and by month, in an optional issue-date period
license_status / license_activateFree or Pro, and the key

Free vs Pro

FreePro
Finalized credit notes10, lifetimeUnlimited
Drafts (credit_note_create, credit_note_update)UnlimitedUnlimited
Delete a draft (credit_note_delete)YesYes
Listing, reading (credit_note_list, credit_note_get)UnlimitedUnlimited
Rendering (credit_note_render)Unlimited, one-line footerUnlimited, no footer
Totals (credit_note_summary)UnlimitedUnlimited

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:

  1. 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.
  2. Tax is computed per line and rounded half-up per line: tax = round_half_up(gross * rate / 100).
  3. 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:

Source: servers/credit-note/README.md at commit 6535b33

Tools

10

credit_note_create

Issue a credit note

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.

Parameterslinesrequirednotesreasonrequiredcurrencyrequiredrecipientrequiredissue_dateinvoice_refduplicate_okreason_detail

credit_note_update

Revise a draft credit note

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.

Parametersidrequiredlinesnotesreasoncurrencyrecipientissue_dateinvoice_refreason_detail

credit_note_finalize

Finalize a credit note

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.

Parametersidrequired

credit_note_list

List credit notes

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.

Parameterstofromlimitreasonstatusrecipient

credit_note_get

Read one credit note in full

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.

Parametersidrequired

credit_note_delete

Delete a draft credit note

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.

Parametersidrequired

credit_note_render

Render a credit note as Markdown or printable HTML

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.

Parametersidrequiredformat

credit_note_summary

Total credited by period, currency and reason

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.

Parameterstofrom

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.22.8LatestOct 14, 2026
  2. v0.22.4Sep 26, 2026
  3. v0.22.3Sep 23, 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