mcp-quickbooks — Claude Code MCP server: QuickBooks Online from chat
Wires QuickBooks Online into your agent with 22 tools for customers, invoices, payments, items, bills and a P&L report. Handy when the books sit in QuickBooks and you would rather stay in the terminal.
claude mcp add --env QB_ACCESS_TOKEN=<QB_ACCESS_TOKEN> --env QB_REALM_ID=<QB_REALM_ID> --env QB_ENV=<QB_ENV> --env QB_MINOR_VERSION=<QB_MINOR_VERSION> --transport stdio quickbooks -- npx -y @codespar/mcp-quickbooksWhat mcp-quickbooks does
Day-to-day accounting is covered: add or edit customers and vendors, raise invoices, email them, void them, record payments, manage items and the chart of accounts, and pull a profit and loss figure for any date range. Customer, item, account, vendor and bill lookups take QuickBooks' SQL-like query string, so something like SELECT * FROM Item WHERE Type = 'Service' goes straight into the matching tool.
You must supply a live QB_ACCESS_TOKEN, an OAuth2 bearer that lasts an hour. This server neither obtains nor refreshes it; that sits with your credential manager or the agent. A company identifier, QB_REALM_ID, is also required. No valid token, no calls.
Pick the transport at launch: stdio by default, or HTTP with MCP_HTTP=true MCP_PORT=3000. QB_ENV defaults to sandbox, so early requests land in a test company rather than live books. Setting QB_MINOR_VERSION is optional; it defaults to 70.
What it helps with
- add a customer to QuickBooks without leaving the chat
- raise an invoice and email it to the buyer
- record a payment against one or more open invoices
- check the chart of accounts before running a report
- pull a P&L for a date range without opening the web UI
Example prompts for the agent
- List the active customers in QuickBooks with
list_customersand show 50 of them - Create an invoice for this customer and send it by email
- Run the profit and loss report for last quarter
How to install mcp-quickbooks
Platform CLI
claude mcp add --env QB_ACCESS_TOKEN=<QB_ACCESS_TOKEN> --env QB_REALM_ID=<QB_REALM_ID> --env QB_ENV=<QB_ENV> --env QB_MINOR_VERSION=<QB_MINOR_VERSION> --transport stdio quickbooks -- npx -y @codespar/mcp-quickbooksReplace <…> with your own values
Platform CLI
codex mcp add quickbooks --env QB_ACCESS_TOKEN=<QB_ACCESS_TOKEN> --env QB_REALM_ID=<QB_REALM_ID> --env QB_ENV=<QB_ENV> --env QB_MINOR_VERSION=<QB_MINOR_VERSION> -- npx -y @codespar/mcp-quickbooksReplace <…> with your own values
Config file
{
"mcpServers": {
"quickbooks": {
"command": "npx",
"args": [
"-y",
"@codespar/mcp-quickbooks"
],
"env": {
"QB_ACCESS_TOKEN": "<QB_ACCESS_TOKEN>",
"QB_REALM_ID": "<QB_REALM_ID>",
"QB_ENV": "<QB_ENV>",
"QB_MINOR_VERSION": "<QB_MINOR_VERSION>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"quickbooks": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@codespar/mcp-quickbooks"
],
"env": {
"QB_ACCESS_TOKEN": "<QB_ACCESS_TOKEN>",
"QB_REALM_ID": "<QB_REALM_ID>",
"QB_ENV": "<QB_ENV>",
"QB_MINOR_VERSION": "<QB_MINOR_VERSION>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e QB_ACCESS_TOKEN=<QB_ACCESS_TOKEN> -e QB_REALM_ID=<QB_REALM_ID> -e QB_ENV=<QB_ENV> -e QB_MINOR_VERSION=<QB_MINOR_VERSION> quickbooks npx -y @codespar/mcp-quickbooksReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about mcp-quickbooks
How do I install mcp-quickbooks in Claude Code?
Run claude mcp add mcp-quickbooks -e QB_ACCESS_TOKEN=<QB_ACCESS_TOKEN> -e QB_REALM_ID=<QB_REALM_ID> -- npx -y @codespar/mcp-quickbooks. A longer form adds --env for QB_ENV and QB_MINOR_VERSION with an explicit --transport stdio.
What does mcp-quickbooks do?
It exposes QuickBooks Online to an MCP client through 22 tools covering customers, invoices, payments, items, vendors and financial reports.
Why do my calls fail with an auth error?
The server expects an already issued QB_ACCESS_TOKEN and will not renew it. Tokens live an hour, so refresh has to happen in whatever stores your credentials.