QuickBooks Online — Claude Code MCP server
This MCP server connects an AI coding host to QuickBooks Online for invoices, customers, vendors, accounts, and financial reports.
claude mcp add --env QUICKBOOKS_CLIENT_ID=<QUICKBOOKS_CLIENT_ID> --env QUICKBOOKS_CLIENT_SECRET=<QUICKBOOKS_CLIENT_SECRET> --env QUICKBOOKS_REFRESH_TOKEN=<QUICKBOOKS_REFRESH_TOKEN> --env QUICKBOOKS_REALM_ID=<QUICKBOOKS_REALM_ID> --env QUICKBOOKS_ENVIRONMENT=<QUICKBOOKS_ENVIRONMENT> --transport stdio quickbooks -- npx -y @mindstone/mcp-server-quickbooksWhat QuickBooks Online does
QuickBooks Online exposes company data and accounting actions to an MCP host. The server can run QuickBooks Query Language requests, fetch individual entities, and produce ProfitAndLoss, BalanceSheet, CashFlow, AgedReceivables, and AgedPayables reports. It also covers customers, vendors, invoices, and estimates.
Its 21 tools include creating and updating records, emailing an invoice to its customer, and downloading an invoice as a PDF. OAuth uses QUICKBOOKS_CLIENT_ID, QUICKBOOKS_CLIENT_SECRET, QUICKBOOKS_REFRESH_TOKEN, QUICKBOOKS_REALM_ID, and QUICKBOOKS_ENVIRONMENT. Node.js 20+ and npm are required.
Tools that change QuickBooks data perform writes by default; the host’s approval layer controls confirmation. The server cannot connect to a QuickBooks Online company without the OAuth values, so prepare those credentials before adding the MCP server.
What it helps with
- look up customers and vendors
- create or edit a QuickBooks Online invoice
- run an accounts receivable report
- email an invoice to its customer
- download an invoice as a PDF
Example prompts for the agent
- Find unpaid QuickBooks Online invoices and show each customer and amount.
- Create a QuickBooks Online invoice for this customer with these line items.
- Run the AgedReceivables report and explain the overdue balances.
How to install QuickBooks Online
Platform CLI
claude mcp add --env QUICKBOOKS_CLIENT_ID=<QUICKBOOKS_CLIENT_ID> --env QUICKBOOKS_CLIENT_SECRET=<QUICKBOOKS_CLIENT_SECRET> --env QUICKBOOKS_REFRESH_TOKEN=<QUICKBOOKS_REFRESH_TOKEN> --env QUICKBOOKS_REALM_ID=<QUICKBOOKS_REALM_ID> --env QUICKBOOKS_ENVIRONMENT=<QUICKBOOKS_ENVIRONMENT> --transport stdio quickbooks -- npx -y @mindstone/mcp-server-quickbooksReplace <…> with your own values. 2 more environment variables are in the server README
Platform CLI
codex mcp add quickbooks --env QUICKBOOKS_CLIENT_ID=<QUICKBOOKS_CLIENT_ID> --env QUICKBOOKS_CLIENT_SECRET=<QUICKBOOKS_CLIENT_SECRET> --env QUICKBOOKS_REFRESH_TOKEN=<QUICKBOOKS_REFRESH_TOKEN> --env QUICKBOOKS_REALM_ID=<QUICKBOOKS_REALM_ID> --env QUICKBOOKS_ENVIRONMENT=<QUICKBOOKS_ENVIRONMENT> -- npx -y @mindstone/mcp-server-quickbooksReplace <…> with your own values. 2 more environment variables are in the server README
Config file
{
"mcpServers": {
"quickbooks": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-quickbooks"
],
"env": {
"QUICKBOOKS_CLIENT_ID": "<QUICKBOOKS_CLIENT_ID>",
"QUICKBOOKS_CLIENT_SECRET": "<QUICKBOOKS_CLIENT_SECRET>",
"QUICKBOOKS_REFRESH_TOKEN": "<QUICKBOOKS_REFRESH_TOKEN>",
"QUICKBOOKS_REALM_ID": "<QUICKBOOKS_REALM_ID>",
"QUICKBOOKS_ENVIRONMENT": "<QUICKBOOKS_ENVIRONMENT>"
}
}
}
}Replace <…> with your own values. 2 more environment variables are in the server README
Config file
{
"servers": {
"quickbooks": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-quickbooks"
],
"env": {
"QUICKBOOKS_CLIENT_ID": "<QUICKBOOKS_CLIENT_ID>",
"QUICKBOOKS_CLIENT_SECRET": "<QUICKBOOKS_CLIENT_SECRET>",
"QUICKBOOKS_REFRESH_TOKEN": "<QUICKBOOKS_REFRESH_TOKEN>",
"QUICKBOOKS_REALM_ID": "<QUICKBOOKS_REALM_ID>",
"QUICKBOOKS_ENVIRONMENT": "<QUICKBOOKS_ENVIRONMENT>"
}
}
}
}Replace <…> with your own values. 2 more environment variables are in the server README
Platform CLI
gemini mcp add -e QUICKBOOKS_CLIENT_ID=<QUICKBOOKS_CLIENT_ID> -e QUICKBOOKS_CLIENT_SECRET=<QUICKBOOKS_CLIENT_SECRET> -e QUICKBOOKS_REFRESH_TOKEN=<QUICKBOOKS_REFRESH_TOKEN> -e QUICKBOOKS_REALM_ID=<QUICKBOOKS_REALM_ID> -e QUICKBOOKS_ENVIRONMENT=<QUICKBOOKS_ENVIRONMENT> quickbooks npx -y @mindstone/mcp-server-quickbooksReplace <…> with your own values. 2 more environment variables are in the server README
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 QuickBooks Online
How do I install QuickBooks Online in Claude Code?
Run `claude mcp add mcp-server-quickbooks -e QUICKBOOKS_CLIENT_ID=<QUICKBOOKS_CLIENT_ID> -e QUICKBOOKS_CLIENT_SECRET=<QUICKBOOKS_CLIENT_SECRET> -e QUICKBOOKS_REFRESH_TOKEN=<QUICKBOOKS_REFRESH_TOKEN> -e QUICKBOOKS_REALM_ID=<QUICKBOOKS_REALM_ID> -- npx -y @mindstone/mcp-server-quickbooks`.
What does QuickBooks Online do?
It connects Claude Code to QuickBooks Online through MCP. The host can read and modify invoices, customers, and vendors, issue queries and financial reports, and download invoice PDFs.
What does QuickBooks Online require to run?
OAuth requires QUICKBOOKS_CLIENT_ID, QUICKBOOKS_CLIENT_SECRET, QUICKBOOKS_REFRESH_TOKEN, QUICKBOOKS_REALM_ID, and QUICKBOOKS_ENVIRONMENT. The server also requires Node.js 20+ and npm.