Intuit QuickBooks Online — global accounting leader (US/UK dominant). Customers, invoices, payments, items, P&L. Complements BR/LatAm ERPs for SaaS serving international customers.
QuickBooks gives your agent 22 tools it calls directly — pick the ones it needs, in Claude, Cursor, or any MCP client.
create_customer — Create a customer in QuickBooks Online. DisplayName is required and must be unique.update_customer — Update a customer. QBO uses sparse update: pass Id, SyncToken, sparse=true, plus any fields to change.get_customer — Retrieve a customer by QuickBooks entity id.// Your agent calls a tool directly — no glue code.
// CodeSpar's managed tier handles OAuth2, token rotation and rate limits.
const result = await session.call("create_customer", { /* ... */ });$ npm install @codespar/mcp-quickbooksAdd this entry to your claude_desktop_config.json (or any MCP-compatible client config).
{
"mcpServers": {
"quickbooks": {
"command": "npx",
"args": [
"-y",
"@codespar/mcp-quickbooks"
],
"env": {
"QB_ACCESS_TOKEN": "<your_qb_access_token>",
"QB_REALM_ID": "<your_qb_realm_id>"
}
}
}
}After restart, your agent can call any of the 22 tools below — try create_customer first.
Required to authenticate the server. Stored encrypted when using CodeSpar managed hosting.
QB_ACCESS_TOKENQuickBooks OAuth2 bearer access token. Expires in 1hr — caller is responsible for refresh via Intuit's OAuth2 auth_code flow.
QB_REALM_IDQuickBooks company id (realmId). Issued when a user authorizes your app against a specific company.
QB_ENVQuickBooks environment: 'sandbox' (default) or 'production'. Selects sandbox-quickbooks.api.intuit.com vs quickbooks.api.intuit.com.
QB_MINOR_VERSIONQuickBooks API minor version. Defaults to 70.
Each tool is independent — your agent loads only what it needs to reduce context and response time.
create_customerupdate_customerget_customerlist_customerscreate_invoiceupdate_invoicevoid_invoicedelete_invoiceMCP is a protocol — any framework that speaks it can mount this server.