
Overdue Invoice Reminder
io.github.theluckystrikePublished by GitHub account theluckystrikev0.22.5Updated Oct 24, 2026
Overdue invoice chasers: reminder 1, reminder 2, the final notice, and the day's chase list.
Overview
Local MCP server that tracks unpaid invoices and drafts a three-stage dunning ladder (reminder 1, reminder 2, final notice) as Markdown or printable HTML.
- What you can do
- Register unpaid invoices with client, reference, amount in integer cents, currency and due date, and get escalation dates.
- Record full or partial payments and see the outstanding balance and next letter amount.
- Render the current stage's chase letter as Markdown or self-contained printable HTML.
- Mark letters as sent so the ladder advances in order.
- List overdue invoices worst first, age the register into current/30/60/90+ buckets, and get the day's chase list.
- Inspect a single invoice's payments, letters and schedule, or delete a wrongly entered invoice.
- When to use it
- Useful for freelancers and small businesses that chase late-paying clients and want consistent reminder wording, a record of what was sent when, and an aging overview, without a full accounting system.
- Requirements
- Runs as a local process on the user's machine (desktop only), configured in Claude Desktop, Claude Code or Cursor. The README notes the npm package is not yet published, so a clone and build is currently the working path. Data is stored locally under the user's data directory. An optional Pro license key can be supplied via the MCP_LICENSE_KEY environment variable.
Installation
In SourceWeft
- Open Overdue Invoice Reminder in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Automated payment reminders for overdue invoices
[theluckystrike/mcp-dunning-letters MCP server]
In the official MCP Registry (io.github.theluckystrike/dunning-letters).
Chase overdue invoices without losing the thread. Register an unpaid invoice, client, invoice reference, amount in integer cents, currency, due date, and the server runs the escalation ladder: reminder 1 (polite, due + 7 days), reminder 2 (firm, with the late fees note, due + 14), and the final notice (before-action wording, due + 21; the gaps are configurable per invoice). For each stage it generates the letter, as Markdown or as a self-contained printable HTML page. It records what you sent and when, lists everything overdue with days late and stage, ages the whole register into current/30/60/90+ buckets, and answers "what do I need to send today". Nothing is emailed or sent anywhere: this server produces the letter text, and sending it is your act.
Built by theluckystrike.
npm publish for @theluckystrike/mcp-dunning-letters is pending, so npx -y @theluckystrike/mcp-dunning-letters 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:
Claude Code
Cursor
~/.cursor/mcp.json (global) or .cursor/mcp.json (project), same entry as Claude Desktop.
Tools
Free vs Pro
The cap is on how many chases run at once, never on the letters or the aging: three late payers taken from first reminder to final notice is a real chase list, and an invoice that gets paid frees its slot. What is metered is breadth, a fourth concurrent chase is a collections workload, not a freelancer's month.
Get Pro: https://mcp.zovo.one/buy/dunning-letters, $19 one-time for this server, or $39 for the bundle.
A measured insight
The ladder is anchored to the due date, not to the last letter, and the two drift apart exactly when chasing is going badly.
The worked chase in test/_client.mjs: USD 1,250.00 due 2026-06-01, gaps 7/14/21, so the letters fall due on 06-08, 06-15 and 06-22 whether or not anything was sent. If reminder 1 actually goes out late, say 06-20, twelve days after its date, a previous-letter-anchored ladder would push the final notice to 07-11. This one does not: 06-22 stands, because the client's obligation was fixed by the due date, not by when you got around to writing. Recording a sending moves only which stage is next; it never moves the schedule. The letters are also strictly sequential: an invoice 60 days late with nothing sent is still owed reminder 1, because a final notice that no polite letter preceded reads as a threat, not a chase.
The late fee is measured the same way, once: simple interest, pro-rata on a 30-day month, on the amount outstanding on the day the letter is written, rounded once to the minor unit. On the worked chase that is 125,000 minor units at 2% over 30 days late, 2,500 exactly, and after a 50,000 part payment it is 1,500 on the 75,000 that remains, so the final notice asks for 76,500 and no invented figure more.
Privacy
All data stays local, in ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/dunning-letters/. Two files: invoices.json, counter.json. Nothing is sent anywhere, no account, no API key, no network call in this server at all, and the letters are rendered to text for you to send yourself; this server holds no mail credentials and wants none. License keys are verified offline.
Built by theluckystrike. https://github.com/theluckystrike
Frequently asked questions
Is there an MCP server for payment reminders or dunning letters?
Yes. The dunning-letters server at mcp.zovo.one automates accounts-receivable follow-up: tiered reminder sequences (friendly, firm, final), printable PDF letters, per-customer aging. Free tier, hosted remote endpoint.
How do I send payment reminders from Claude?
Connect https://mcp.zovo.one/mcp/dunning-letters and say: 'List overdue invoices and draft a firm reminder for Acme.' The letter follows the standard tier sequence and exports as PDF.
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-dunning-letters
Source: servers/dunning-letters/README.md at commit 1bd9d69
Tools
0Version history
2- v0.22.5LatestOct 14, 2026
- v0.21.0Sep 16, 2026
Score
50% 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 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts