Skip to main content
QU

QuickBooks

v0.2.1OAuth2

Intuit QuickBooks Online — global accounting leader (US/UK dominant). Customers, invoices, payments, items, P&L. Complements BR/LatAm ERPs for SaaS serving international customers.

22 tools4 env vars🌐 GLOBALstable on npm

What your agent can do

QuickBooks gives your agent 22 tools it calls directly — pick the ones it needs, in Claude, Cursor, or any MCP client.

  • create_customerCreate a customer in QuickBooks Online. DisplayName is required and must be unique.
  • update_customerUpdate a customer. QBO uses sparse update: pass Id, SyncToken, sparse=true, plus any fields to change.
  • get_customerRetrieve a customer by QuickBooks entity id.
Example call
// 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", { /* ... */ });

Install

terminal
$ npm install @codespar/mcp-quickbooks

Quickstart

Add this entry to your claude_desktop_config.json (or any MCP-compatible client config).

claude_desktop_config.json
{
  "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.

Environment variables · 4

Required to authenticate the server. Stored encrypted when using CodeSpar managed hosting.

QB_ACCESS_TOKEN
requiredsecret

QuickBooks OAuth2 bearer access token. Expires in 1hr — caller is responsible for refresh via Intuit's OAuth2 auth_code flow.

QB_REALM_ID
required

QuickBooks company id (realmId). Issued when a user authorizes your app against a specific company.

QB_ENV
optional

QuickBooks environment: 'sandbox' (default) or 'production'. Selects sandbox-quickbooks.api.intuit.com vs quickbooks.api.intuit.com.

QB_MINOR_VERSION
optional

QuickBooks API minor version. Defaults to 70.

Available tools · 22

Each tool is independent — your agent loads only what it needs to reduce context and response time.

WRITEcreate_customer
Create a customer in QuickBooks Online. DisplayName is required and must be unique.
WRITEupdate_customer
Update a customer. QBO uses sparse update: pass Id, SyncToken, sparse=true, plus any fields to change.
READget_customer
Retrieve a customer by QuickBooks entity id.
READlist_customers
Query customers using QBO's SQL-like query language. Example: "SELECT * FROM Customer WHERE Active = true MAXRESULTS 50". If query is omitted, returns all customers.
WRITEcreate_invoice
Create an invoice. CustomerRef and at least one Line item (SalesItemLineDetail with ItemRef) are required.
WRITEupdate_invoice
Update an invoice. QBO uses sparse update: pass Id, SyncToken, sparse=true, plus any fields to change.
DELETEvoid_invoice
Void an invoice. The invoice stays in QBO with zero amount. Requires Id and SyncToken.
DELETEdelete_invoice
Delete an invoice. Permanently removes the invoice. Requires Id and SyncToken.

Compatible frameworks

MCP is a protocol — any framework that speaks it can mount this server.

Claude Agent SDKAnthropic
OpenAI AgentsOpenAI
Vercel AI SDKVercel
LangChainLangChain
LlamaIndexLlamaIndex
CrewAICrewAI
MastraMastra
Any MCP clientProtocol

Frequently asked questions

Run `npx -y @codespar/mcp-quickbooks` and add the config block above to your MCP client — Claude, Cursor, VS Code, or any MCP-compatible client. No build step, no SDK required. Prefer hosted? CodeSpar's managed tier runs it for you with auth handled.
QuickBooks — MCP server · 22 tools | CodeSpar