← Back to directory
Q

QuickBooks Online MCP Server

Official
Access QuickBooks Online data and accounting operations through MCP.
Category
Other #215 of 230
Stars
★ 418 Very popular
Transport
stdio (local process)
Runtime
Node.js
Credentials
API key / credential required
License
Apache-2.0
Last commit
Tools
100
32FMRS · D

Broad coverage with 145 tools, 29 entity types, and 11 reports; installation depends on Intuit app registration and OAuth, and the conflicting license statements should be verified.

Strongest · Documentation 8/20 Weakest · Reliability 4/20

Reliability
4/20
Security and permissions
7/20
Maintenance
6/20
Documentation
8/20
Setup experience
7/20
Why each score
Reliability 4/20
Only the README is supplied; no reviewable source, server manifest, CI workflow, or committed tests are available. The README claims 145 tools, 396 tests, and 100% coverage, but those claims cannot be statically verified. There is no evidence for the MCP initialization handshake, actual tool behavior, dependency control, or failure paths, so the score is necessarily low.
Security and permissions 7/20
The evidence shows OAuth 2.0, environment-based credential configuration, switches to suppress write/update/delete tools, and local stdio operation, which are positive signals. Points are deducted because the server exposes broad financial read/write, void, and delete capabilities without evidence of per-operation confirmation, fine-grained account scope, tenant isolation, or sensitive-output controls. Credentials and refresh tokens are written to an environment file, while token rotation and PDF output handling have no reviewable implementation. No explicit evidence meets a red-line threshold.
Maintenance 6/20
The repository is marked unarchived and the metadata reports an Apache-2.0 license, but there is no supplied evidence of commit history, releases, dependency updates, maintainer response, or a security-reporting channel. The README instead states MIT licensing, creating a license contradiction and reducing confidence in maintenance and governance.
Documentation 8/20
The README provides substantial coverage of installation, OAuth, client configuration, tool categories, reports, troubleshooting, and local-runtime limitations. Points are deducted because tool parameters and schemas are not evidenced, cost and API-limit disclosures are thin, the production OAuth flow is operationally fragile, the clone URL contains a placeholder, and license and tool-count claims are either unverifiable or contradictory.
Setup experience 7/20
The README gives actionable Node build steps, environment variables, Claude Code configuration, and sandbox/production OAuth instructions. Points are deducted because users must register an Intuit app, complete browser authorization, and manage rotating refresh tokens; production requires a public HTTPS callback or ngrok. The installation repository URL is a placeholder, and there is no evidence of a published package or cross-platform validation.

Static review · not runListed 2026-08-14

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkChanges third-party account data

Best for

  • Developers integrating QuickBooks Online data or accounting operations
  • Local integrations using Claude Code or another MCP-compatible client
  • Teams needing sandbox testing or production company access

Not for

  • Users who do not use QuickBooks Online
  • Users unable to register an Intuit app and complete OAuth authorization
  • Teams seeking a hosted service without a local process or credential configuration

Required permissions

  • Requires Intuit OAuth 2.0 app credentials
  • Requires access to a QuickBooks Online company and its Realm ID
  • Depending on enabled tools, may require permission to read, create, update, and delete accounting data

Risks and side effects

  • Write, update, and delete tools can change or void accounting records
  • Refresh tokens rotate automatically and are written back to a configuration file
  • Initial production OAuth authorization requires a public HTTPS callback
  • The source contains conflicting license information: Apache-2.0 in repository metadata and MIT in the README

Setup

Before you start

Runtime:Node.js

QUICKBOOKS_CLIENT_ID required Client ID of the app you create on the Intuit Developer Portal; required, not secret.
QUICKBOOKS_CLIENT_SECRET requiredsecret Client Secret from the app's Keys & Credentials page; required, secret.
QUICKBOOKS_REFRESH_TOKEN requiredsecret Obtained by completing the OAuth handshake via npm run auth; required, secret.
QUICKBOOKS_REALM_ID required Realm ID of the target QuickBooks company (sandbox or production); required, not secret.
QUICKBOOKS_ENVIRONMENT required Set to sandbox or production to choose the environment.
Other optional settings (5)
QUICKBOOKS_DISABLE_WRITE optional Set to true to suppress create_* tools; optional.
QUICKBOOKS_DISABLE_UPDATE optional Set to true to suppress update_* tools; optional.
QUICKBOOKS_DISABLE_DELETE optional Set to true to suppress delete_* tools; optional.
QUICKBOOKS_TOKEN_STORE_PATH optional Absolute writable token-store path for read-only filesystems or per-tenant isolation; must be set in the host process env, not in .env.
QBO_PDF_OUTPUT_DIR optional When set, get_invoice_pdf writes PDFs to this directory instead of returning inline base64.

Clone the repository, run npm install and npm run build. Copy .env.example to .env and provide the QuickBooks OAuth client credentials, refresh token, Realm ID, and environment. Register an app in the Intuit Developer Portal and complete the browser-based OAuth flow; sandbox supports a localhost callback, while production requires a public HTTPS callback. Configure the client to run dist/index.js as a node stdio subprocess.

.mcp.json
{"mcpServers":{"quickbooks":{"command":"node","args":["path/to/mcp-quickbooks-online/dist/index.js"],"env":{"QUICKBOOKS_CLIENT_ID":"your_client_id","QUICKBOOKS_CLIENT_SECRET":"your_client_secret","QUICKBOOKS_REFRESH_TOKEN":"your_refresh_token","QUICKBOOKS_REALM_ID":"your_realm_id","QUICKBOOKS_ENVIRONMENT":"sandbox","QUICKBOOKS_DISABLE_WRITE":"false","QUICKBOOKS_DISABLE_UPDATE":"false","QUICKBOOKS_DISABLE_DELETE":"false"}}}}

Shown for Claude Code. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "quickbooks": {
      "command": "node",
      "args": [
        "path/to/mcp-quickbooks-online/dist/index.js"
      ],
      "env": {
        "QUICKBOOKS_CLIENT_ID": "your_client_id",
        "QUICKBOOKS_CLIENT_SECRET": "your_client_secret",
        "QUICKBOOKS_REFRESH_TOKEN": "your_refresh_token",
        "QUICKBOOKS_REALM_ID": "your_realm_id",
        "QUICKBOOKS_ENVIRONMENT": "sandbox",
        "QUICKBOOKS_DISABLE_WRITE": "false",
        "QUICKBOOKS_DISABLE_UPDATE": "false",
        "QUICKBOOKS_DISABLE_DELETE": "false"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add quickbooks -e QUICKBOOKS_CLIENT_ID=your_client_id -e QUICKBOOKS_CLIENT_SECRET=your_client_secret -e QUICKBOOKS_REFRESH_TOKEN=your_refresh_token -e QUICKBOOKS_REALM_ID=your_realm_id -e QUICKBOOKS_ENVIRONMENT=sandbox -e QUICKBOOKS_DISABLE_WRITE=false -e QUICKBOOKS_DISABLE_UPDATE=false -e QUICKBOOKS_DISABLE_DELETE=false -- node path/to/mcp-quickbooks-online/dist/index.js

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After starting, check that tools like get_invoice, search_customers and get_profit_and_loss appear in the client's tool list; then call search_customers — returning data from your QuickBooks sandbox company confirms the connection works.

Troubleshooting

  1. Verify all environment variables
  2. Check that tokens are valid and not expired
  3. Ensure the Intuit redirect URI exactly matches the registered URI
  4. Use QUICKBOOKS_ENVIRONMENT=sandbox for sandbox testing
  5. On a read-only filesystem, set QUICKBOOKS_TOKEN_STORE_PATH to an absolute writable token-file path

Things to try

Once connected, you can ask your AI assistant things like:

  • Search invoices from last month over $1000 and summarize the results.
  • Create a new customer record, then get that customer's current balance.
  • Generate a Profit & Loss report and a Balance Sheet.
  • Download the most recent invoice as a PDF and save it to disk.

Tools 100

create_customer writes
Create a customer
get_customer read-only
Get a customer by ID
update_customer writes
Update customer details
delete_customer destructive
Delete a customer
search_customers read-only
Search customers with filters
create_invoice writes
Create an invoice
get_invoice read-only
Get an invoice by ID
update_invoice writes
Update invoice details
Show 92 more tools
delete_invoice destructive
Delete or void an invoice
search_invoices read-only
Search invoices with filters
get_invoice_pdf read-only
Download an invoice as a PDF
create_estimate writes
Create an estimate
get_estimate read-only
Get an estimate by ID
update_estimate writes
Update an estimate
delete_estimate destructive
Delete an estimate
search_estimates read-only
Search estimates
create_bill writes
Create a bill
get_bill read-only
Get a bill by ID
update_bill writes
Update a bill
delete_bill destructive
Delete a bill
search_bills read-only
Search bills
create_vendor writes
Create a vendor
get_vendor read-only
Get a vendor by ID
update_vendor writes
Update a vendor
delete_vendor destructive
Delete a vendor
search_vendors read-only
Search vendors
create_employee writes
Create an employee
get_employee read-only
Get an employee by ID
update_employee writes
Update an employee
delete_employee destructive
Delete an employee
search_employees read-only
Search employees
create_account writes
Create an account
get_account read-only
Get an account by ID
update_account writes
Update an account
search_accounts read-only
Search accounts
create_item writes
Create an item
get_item read-only
Get an item by ID
update_item writes
Update an item
delete_item destructive
Delete an item
search_items read-only
Search items
create_journal_entry writes
Create a journal entry
get_journal_entry read-only
Get a journal entry by ID
update_journal_entry writes
Update a journal entry
delete_journal_entry destructive
Delete a journal entry
search_journal_entries read-only
Search journal entries
create_bill_payment writes
Create a bill payment
get_bill_payment read-only
Get a bill payment by ID
update_bill_payment writes
Update a bill payment
delete_bill_payment destructive
Delete a bill payment
search_bill_payments read-only
Search bill payments
create_purchase writes
Create a purchase
get_purchase read-only
Get a purchase by ID
update_purchase writes
Update a purchase
delete_purchase destructive
Delete a purchase
search_purchases read-only
Search purchases
create_payment writes
Record a customer payment
get_payment read-only
Get a payment by ID
update_payment writes
Update a payment
delete_payment destructive
Void a payment
search_payments read-only
Search payments
create_sales_receipt writes
Create a sales receipt
get_sales_receipt read-only
Get a sales receipt by ID
update_sales_receipt writes
Update a sales receipt
delete_sales_receipt destructive
Void a sales receipt
search_sales_receipts read-only
Search sales receipts
create_credit_memo writes
Create a credit memo
get_credit_memo read-only
Get a credit memo by ID
update_credit_memo writes
Update a credit memo
delete_credit_memo destructive
Void a credit memo
search_credit_memos read-only
Search credit memos
create_refund_receipt writes
Create a refund receipt
get_refund_receipt read-only
Get a refund receipt by ID
update_refund_receipt writes
Update a refund receipt
delete_refund_receipt destructive
Void a refund receipt
search_refund_receipts read-only
Search refund receipts
create_purchase_order writes
Create a purchase order
get_purchase_order read-only
Get a purchase order by ID
update_purchase_order writes
Update a purchase order
delete_purchase_order destructive
Delete a purchase order
search_purchase_orders read-only
Search purchase orders
create_vendor_credit writes
Create a vendor credit
get_vendor_credit read-only
Get a vendor credit by ID
update_vendor_credit writes
Update a vendor credit
delete_vendor_credit destructive
Delete a vendor credit
search_vendor_credits read-only
Search vendor credits
create_deposit writes
Create a bank deposit
get_deposit read-only
Get a deposit by ID
update_deposit writes
Update a deposit
delete_deposit destructive
Delete a deposit
search_deposits read-only
Search deposits
create_transfer writes
Create an account transfer
get_transfer read-only
Get a transfer by ID
update_transfer writes
Update a transfer
delete_transfer destructive
Delete a transfer
search_transfers read-only
Search transfers
create_time_activity writes
Create a time activity
get_time_activity read-only
Get a time activity by ID
update_time_activity writes
Update a time activity
delete_time_activity destructive
Delete a time activity
search_time_activities read-only
Search time activities

Use cases

Query customers, invoices, bills, and payments
Create and update QuickBooks Online accounting records
Retrieve balance sheet, profit and loss, cash flow, and other reports
Provide real-time QuickBooks Online data to AI applications through MCP

Supported clients

Claude Code

Listed from the project's documentation, not tested by this site.

Overview

QuickBooks Online MCP Server exposes QuickBooks Online functionality to AI assistants through the Model Context Protocol. It provides CRUD and search capabilities for 29 entity types, 11 financial reports, OAuth 2.0 authentication, and local stdio execution.

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 653 · Tools 11 Compare with this →

Source revision 31a1dd5c3e17 Data synced 2026-10-11 Read the FMRS scoring method