stripe-collections-mcp
Reads and manages Stripe invoices for receivables collection: lists overdue open invoices with customer, amount owed, days late, and payment link, summarizes amounts owed by aging bucket (not yet due / 1–30 / 31–60 / 61–90 / over 90 days) per currency, reports a customer's recent invoices and typical late-payment behavior, and re-sends an overdue invoice email through Stripe when writes are explicitly enabled.
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., "@stripe-collections-mcpWho owes me money right now?"
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.
stripe-collections-mcp
Ask Claude who owes you money, and let it chase only the invoices you've cleared it to chase.
Results
11 tests passing. 4 tools: 3 read tools and 1 write tool with a gate.
Safety checks: live key refused, writes off by default, re-check before send, audit log.
Cost to run: $0 locally with Stripe test mode.
An MCP server that connects Stripe to Claude, ChatGPT, or any MCP client. It reads your open invoices, works out who's late and by how much, and can re-send an overdue invoice to the customer. It starts read-only, and sending stays off until you turn it on.
Related MCP server: NitroWatch Billing Demo
Demo

Tools
Tool | What it does | Writes? |
| Open invoices past their due date, oldest first: who owes it, how much, how many days late, their payment link | No |
| Everything owed, grouped into not yet due / 1–30 / 31–60 / 61–90 / over 90 days, per currency | No |
| A customer's recent invoices and how many days late they usually pay | No |
| Re-sends an overdue invoice email through Stripe | Only with |
Safety
Test mode only. A live Stripe key stops the server before it connects to anything.
Read-only by default.
send_invoice_reminderrefuses to run unless the server was started withALLOW_WRITES=true.It re-checks before it sends. The invoice has to still be open and actually overdue, or nothing goes out.
Every call is logged. One JSON line per tool call, reads included, in
~/.stripe-collections-mcp/audit.jsonl. SetAUDIT_LOGto move it, orAUDIT_LOG=offto turn it off.Bad input never reaches Stripe. Customer and invoice ids are validated first.
Use a restricted key. In Stripe, create a restricted key with Invoices: Read and Customers: Read. Add Invoices: Write only if you turn sending on.
Why the guardrails
An agent that can send money-related emails needs a hard off switch.
Invoice state can change between a recommendation and a send, so the server checks again before it sends.
An audit trail makes each tool call reviewable.
Run it
Needs Node 20 or newer. Clone the repo, then:
npm installnpm install builds it. The server lives at dist/src/index.js.
Claude Desktop: add this to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"stripe-collections": {
"command": "node",
"args": ["/absolute/path/to/stripe-collections-mcp/dist/src/index.js"],
"env": {
"STRIPE_API_KEY": "rk_test_...",
"ALLOW_WRITES": "false"
}
}
}
}Claude Code:
claude mcp add stripe-collections -e STRIPE_API_KEY=rk_test_... -- node /absolute/path/to/stripe-collections-mcp/dist/src/index.jsTry it
"Who owes me money right now?"
"How much is more than 60 days late?"
"How late does this customer usually pay?"
"Send a reminder for every invoice more than 30 days late." (Needs
ALLOW_WRITES=true. Your client will still ask before each send unless you've auto-approved the tool.)
Tests
npm test11 tests call every tool through a real MCP client against a fake Stripe, so they never touch the network. They cover the sort order, the aging buckets, the late-payment math, sending blocked while writes are off, refusing invoices that are paid or not due yet, Stripe errors coming back as tool errors, and the live-key guard.
How it's built
src/backend.ts: the only file that talks to Stripe. It flattens Stripe's invoice into the fields the tools need.src/server.ts: the four tools, the aging math, and the write gate.src/safety.ts: the test-mode key check and the audit log.src/index.ts: stdio entry point. Logs go to stderr because stdout carries the protocol.
Swapping Stripe for another billing API means rewriting backend.ts and nothing else.
Built by Vanwayne Chaney. I build custom MCP servers that connect your API to Claude and ChatGPT.
This server cannot be deployed
Maintenance
Related MCP Connectors
Stripe MCP Pack — read-only access to Stripe data via API key.
MCP server for Autumn — read customers, plans, balances & invoices; track usage and attach plans.
Read subscriptions, customers, charges, orders; skip charges, cancel or activate subscriptions.
MCP server for Recurly — accounts, subscriptions, invoices, plans; cancel & pause subs.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceRead-only Stripe finance, ops, and risk reporting exposed via MCP, HTTP API, and CLI. Enables querying balances, payments, customers, payouts, reconciliation, and risk alerts without mutating Stripe state.MIT
- FlicenseAqualityCmaintenanceA demo MCP server exposing billing operations (invoices, customers) with no built-in safety, designed as a test target for NitroWatch governance. It allows reading, sending, archiving, and permanently deleting accounts/invoices without confirmation.5-
- AlicenseNot gradedqualityBmaintenanceMCP server that gives AI agents read access to subscription/SaaS invoice history, ingested from Gmail and stored in Postgres and MongoDB, with tools for listing invoices, retrieving PDFs, and summarizing spend.22 npmMIT
- FlicenseNot gradedqualityCmaintenanceMCP 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.-