“Record this receipt from the train station.”
list_expense_typeslist_supplierscreate_expenseOpen source · MIT · Model Context Protocol
crunch-mcp connects Claude and other AI assistants to Crunch Accounting. Ask about expenses, invoices, clients and bank accounts in plain English, and let the assistant record receipts and raise invoices when you allow it.
docker pull ghcr.io/mattoddie/crunch-mcpAsk anything
The assistant picks the right tools, runs them against Crunch's public API and explains what it found. No exporting spreadsheets or clicking through screens to find a number.
“Record this receipt from the train station.”
list_expense_typeslist_supplierscreate_expense“Which invoices are overdue and who should I chase?”
list_invoicesget_clientemail_invoice“How much did I spend on software this year?”
list_expense_typesget_expenses_total“Create an invoice for Acme for 5 days at £450.”
list_clientslist_vat_typescreate_invoice“Give me a summary of last quarter.”
get_invoice_totalsget_expenses_totallist_bank_accounts“Are there any expenses missing receipts?”
list_expensesget_expenseFull coverage
Grouped into 9 toolsets you can switch on and off, so the assistant only sees what you need: 36 read, 24 write, 9 delete and 1 email tool.
account6Login status and the OAuth login flow, the logged-in user, company details (VAT number and scheme, addresses) and a one-call business overview.
reference6Lookups for the values Crunch expects: expense types, VAT types, payment methods, countries, open accounting periods, and directors and employees.
banking17Bank accounts and credit cards: balances, details, payments recorded against them, opening balances, default accounts, archiving.
clients5Clients (the customers you invoice): list, look up, create, update and delete.
suppliers5Suppliers (who you buy from): list, look up, create, update, archive and delete.
expenses10Expenses: list and filter, totals, create with lines, payments and receipts, update, record and remove payments, attach and download receipts, delete.
recurring5Recurring expenses that Crunch creates on a schedule: list, create, pause or change, delete.
invoices15Sales invoices: list and filter, totals, create drafts, update, issue, email to the customer, record and remove payments, attachments, PDF download, delete.
raw1A raw API escape hatch for anything the other tools don't cover. It is limited to GET requests unless writes are enabled.
read write delete email ·Full tool reference →
Safe by default
Tools that aren't allowed aren't registered at all. The assistant can't see them, so it can't call them or be talked into calling them.
36 tools, always on
list_invoices · get_expenses_total · get_overview …24 tools with CRUNCH_ALLOW_WRITES=true
create_expense · create_invoice · issue_invoice · add_invoice_payment …9 tools with CRUNCH_ALLOW_DELETES=true as well
delete_expense · delete_invoice · remove_invoice_payment …1 tool with CRUNCH_ALLOW_EMAIL=true as well
email_invoice, which sends invoices to your customersBuilt with care
Accounting data has to be right. crunch-mcp is careful about how it logs in, how it changes records and how it's tested.
A ~21 MB distroless image for amd64 and arm64. It runs as non-root on a read-only filesystem, and only the token volume is writable.
Log in once with OAuth 2.0 and PKCE. Crunch rotates refresh tokens, so each new one is written safely to the volume and survives restarts.
Changes are read-modify-write: the current record is fetched and merged first, so Crunch never drops an expense's payments or attachments.
Attach receipt photos or PDFs to expenses and invoices, download them again, and fetch any sales invoice as a PDF.
Expense types, VAT types, payment methods and open accounting periods are one call away, so the assistant uses values Crunch accepts.
The test suite runs the tools against a mock Crunch API, so changes are checked without going anywhere near real books.
6 guided prompts turn common jobs into one step. In Claude Code they're slash commands, such as /mcp__crunch__record_receipt.
business_health_checkchase_overdue_invoicescreate_invoiceexpense_reviewperiod_summaryrecord_receiptWorks with your Crunch account
Uses your own Crunch API access and logs in to your account with OAuth. When a tool doesn't cover something, a raw API tool does, limited to reads unless writes are on. Compatibility →
Works with your assistant
Run it once and share it, or start it per session with docker run -i. You can even log in from the chat with the auth tools. Client setup →
Quick start
Apply at developer.crunch.co.uk. Crunch emails you a client ID, and a client secret if your client is confidential.
mkdir crunch-mcp && cd crunch-mcp
curl -fsSLO https://raw.githubusercontent.com/mattoddie/crunch-mcp/main/compose.yaml
curl -fsSL https://raw.githubusercontent.com/mattoddie/crunch-mcp/main/example.env -o .env
# set CRUNCH_CLIENT_ID (and CRUNCH_CLIENT_SECRET
# if you have one) and MCP_AUTH_TOKEN in .env
docker compose run --rm -p 8976:8976 crunch-mcp login
docker compose up -dclaude mcp add --transport http crunch \
http://<docker-host>:8080/mcp \
--header "Authorization: Bearer <token>"Then ask: “How's the business doing this month?”
Free, open source and MIT licensed. Contributions and bug reports are welcome.