mcp-server-billing
Click on "Install 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., "@mcp-server-billingShow me the revenue summary for last month by plan"
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.
mcp-server-billing
MCP server that gives an AI agent guarded access to a B2B SaaS billing database (customers, subscriptions, invoices, credit notes) and live ECB exchange rates. Six tools: five reads covering the whole billing surface, one carefully fenced write. Runs locally over stdio against docker-compose Postgres, or on AWS behind a Lambda Function URL for about $7.67/month.
Full design rationale, protocol-version notes, and every decision's trade-off: SPEC.md. Implementation conventions and the code review checklist: CODING_STYLE.md.
Tools
Tool | Purpose | Read-only | Idempotent |
| Find customers by name, email, domain, status, country | ✓ | ✓ |
| One customer with subscriptions and open balance | ✓ | ✓ |
| Invoices filtered by customer, status, date range | ✓ | ✓ |
| Monthly MRR/ARR, new vs. churned, by plan or country | ✓ | ✓ |
| Convert an amount via live ECB rates (frankfurter.dev) | ✓ | ✗ |
| The one write. Credit an open invoice, capped and idempotency-keyed | ✗ | ✓ |
Plus one resource (billing://schema, the live DDL) and one prompt (revenue_review,
a guided monthly review). Full schemas, annotations, and example calls: SPEC.md §5.
Related MCP server: NitroWatch Billing Demo
Run it (60 seconds)
docker compose up -d && npm run db:seed
npm run build
cp .env.example .env # fill in MCP_BEARER_TOKEN if you'll also try http/lambda
npm run inspectThe Inspector opens in your browser against the six tools, live, against seeded data (~200 customers, ~2,000 invoices). Requires Node ≥22.19 for the Inspector itself (this repo's own code targets Node ≥20 — the gap is the Inspector CLI, not the server; see SPEC.md §9 for what was verified without it).
Wire it to Claude Desktop
{
"mcpServers": {
"billing": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-aws/dist/stdio.js"],
"env": {
"DATABASE_URL_READER": "postgres://mcp_reader:reader_local_pw@localhost:5434/billing",
"DATABASE_URL_WRITER": "postgres://mcp_writer:writer_local_pw@localhost:5434/billing"
}
}
}
}Use an absolute path — Claude Desktop does not resolve ~ or relative paths.
Deploy to AWS
npm run lambda:prepare # builds + stages dist/ + prod deps + db/init/*.sql
cd terraform
cp terraform.tfvars.example terraform.tfvars # fill in mcp_bearer_token
terraform init && terraform apply
terraform output -raw migrate_command | bash # applies schema, rotates role passwords$/month | |
RDS | 5.35 |
gp3 storage, 20 GB | 2.30 |
Lambda + Function URL, VPC, SSM | ~0.02 |
Total | ≈ 7.67 |
No NAT Gateway: Lambda reaches frankfurter.dev over IPv6
through an egress-only internet gateway (verified live — Frankfurter has AAAA records)
instead of a ~$32.85/month NAT Gateway. terraform destroy takes it to $0. Full cost
breakdown and the architecture diagram: SPEC.md §3.
Eval questions
Five questions an agent should answer using only these tools — multi-tool, verifiable against the seed data, one deliberately negative (does the agent respect the credit cap, or try to split it?). SPEC.md §9.
Development
npm test # unit + integration (needs docker compose up -d)
npm run lint # eslint
npm run typecheck # tsc --noEmit
npm run format:check # prettierBefore opening a PR, run the code review checklist.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server for smallinvoice.ch — Swiss SME invoicing and accounting with 146 tools and OAuth2 BYOC authentication.10010MIT
- 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
- AlicenseAqualityBmaintenanceMCP server for VoxFactura enabling AI assistants to query business data (invoices, expenses, project margins, clients, VAT) and create draft quotes or mark invoices paid via a scoped API, with no direct client sends.11MIT
- Flicense-qualityBmaintenanceMCP 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.
Related MCP Connectors
Hosted MCP server for Mini Accountant: invoices, expenses, customers, analytics, tax estimates.
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/santimentasti/mcp-server-billing'
If you have feedback or need assistance with the MCP directory API, please join our Discord server