io.github.theluckystrike/credit-note
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Credit notes against an invoice or standalone: drafts, finalization, rendering, totals.
| Author | io.github.theluckystrike |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2443 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"credit-note": {
"url": "https://mcp.zovo.one/mcp/credit-note-ics",
"transport": "streamable-http"
}
}
}
Measured tools (10)
credit_note_createIssue 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.
Parameters:
recipient(required) — string — Who the credit is for, e.g. Acme GmbHreason(required) — string — Why the credit is issued: returned_goods, overcharge, discount_correction, service_issue or othercurrency(required) — string — ISO code the credit is inlines(required) — array — What is being credited, line by linenotes— string — Text printed at the foot of the document, e.g. how the credit will be settledissue_date— string — The date the credit is issued, YYYY-MM-DD. Default today; a future date is refusedinvoice_ref— string — The invoice this credits, e.g. INV-2026-0042. Omit for a standalone creditduplicate_ok— boolean — Create it even though an identical draft or note exists, for a genuinely repeated credit. Default falsereason_detail— string — One line of specifics, e.g. Client was billed 10 seats, used 7
Hints: read-only no · destructive no · idempotent no · open-world no
credit_note_updateChange 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.
Parameters:
id(required) — string — The draft id, e.g. CN-DRAFT-2026-0001lines— array — The full new line set, replacing every existing linenotes— New notes text, or null to remove the notesreason— stringcurrency— string — ISO code. Changing it reprices nothing: the stored minor units carry over, so only change it to fix a wrong currencyrecipient— stringissue_date— stringinvoice_ref— New invoice reference, or null to detach the note from its invoicereason_detail
Hints: read-only no · destructive no · idempotent no · open-world no
credit_note_finalizeFinalize 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.
Parameters:
id(required) — string — The draft id, e.g. CN-DRAFT-2026-0001
Hints: read-only no · destructive no · idempotent no · open-world no
credit_note_listList 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.
Parameters:
to— string — Last issue date to include, YYYY-MM-DDfrom— string — First issue date to include, YYYY-MM-DDlimit— integer — Maximum notes listed, default and ceiling 2000reason— string — Only notes with this reasonstatus— string — Only drafts or only finalized notesrecipient— string — Match the recipient, case-insensitive, a part of the name is enough
Hints: read-only no · destructive no · idempotent no · open-world no
credit_note_getReturn 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.
Parameters:
id(required) — string — The credit note number CN-2026-0001 or draft id CN-DRAFT-2026-0001
Hints: read-only no · destructive no · idempotent no · open-world no
credit_note_deletedestructiveDelete 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.
Parameters:
id(required) — string — The draft id, e.g. CN-DRAFT-2026-0001
Hints: read-only no · destructive yes · idempotent no · open-world no
credit_note_renderTurn 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.
Parameters:
id(required) — string — The credit note number CN-2026-0001 or draft id CN-DRAFT-2026-0001format— string — markdown (default) or html, a self-contained printable page
Hints: read-only no · destructive no · idempotent no · open-world no
credit_note_summaryHow 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.
Parameters:
to— string — Last issue date to include, YYYY-MM-DD. Default: todayfrom— string — First issue date to include, YYYY-MM-DD. Default: the beginning
Hints: read-only no · destructive no · idempotent no · open-world no
license_statusread-onlyReport 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.
Hints: read-only yes · destructive no · idempotent yes · open-world no
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.
Parameters:
key(required) — string — License key from checkout, MCPL1.<payload>.<signature>
Hints: read-only no · destructive no · idempotent no · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.