Credit Note

io.github.theluckystrike由 GitHub 账号 theluckystrike 发布v0.22.8更新于 Oct 24, 2026

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

已验证Streamable HTTP可网页运行效率与工作流金融

概览

AI 生成的概览

面向自由职业者和小企业的本地 MCP 服务器,可针对发票或独立开具、定稿、渲染并汇总贷项通知单(红字发票)。

可以做什么
创建和修改草稿贷项通知单,包含收件人、原因、明细行、税率和币种,并可删除误录的草稿。定稿草稿以占用最终 CN 编号并冻结,或按收件人、原因、状态和日期筛选并列出、读取通知单。将通知单渲染为可粘贴进邮件的 Markdown 或可打印的 HTML 页面,草稿带 DRAFT 标记。按币种、原因和月份汇总已定稿通知单的抵扣金额。查询或激活免费或 Pro 许可证。
适用场景
当你需要为客户开具贷项通知单或红字发票,并希望助手在对话中完成起草、定稿、渲染和汇总时使用。适合自由职业者或小企业的偶发抵扣场景,而非高频开票。
运行要求
以本地进程(stdio 上的 mcpb 包)或远程端点运行。远程端点需要在 Authorization 请求头中提供 bearer 令牌,可以是 Pro 许可证密钥或匿名令牌;可选的 MCP_LICENSE_KEY 可离线启用 Pro。npm 包尚未发布,本地使用目前需要克隆并构建。
安装前请注意
定稿不可撤销:已定稿的通知单不能编辑或删除,免费版终身仅允许 10 张定稿通知单。Pro 为一次性付费购买。数据保存在用户本地数据目录,许可证密钥离线校验。README 还提到可通过第三方文档服务读取该仓库文档。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Credit Note,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.theluckystrike%2Fcredit-note/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "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:

来源:servers/credit-note/README.md,提交 6535b33

工具

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.

输入参数lines必填notesreason必填currency必填recipient必填issue_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.

输入参数id必填linesnotesreasoncurrencyrecipientissue_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.

输入参数id必填

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.

输入参数tofromlimitreasonstatusrecipient

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.

输入参数id必填

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.

输入参数id必填

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.

输入参数id必填format

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.

输入参数tofrom

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.

无需输入参数。

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.

输入参数key必填

版本历史

4
  1. v0.22.8最新Oct 14, 2026
  2. v0.22.4Sep 26, 2026
  3. v0.22.3Sep 23, 2026
  4. v0.21.0Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分