QuickBooks Online MCP Server
Official Intuit MCP server exposing 144 tools across 29 QuickBooks Online entity types with full CRUD plus 11 financial reports.
The QuickBooks Online MCP Server is an official Intuit project that bridges AI assistants to QuickBooks Online (QBO) data via the Model Context Protocol. It runs as a local stdio subprocess, authenticates to a QBO company through OAuth 2.0, and exposes QBO API functionality as callable tools so agents can read and modify real accounting data.
The server ships with 144 tools spanning 29 entity types. Most entities (Customer, Invoice, Estimate, Bill, Vendor, Employee, Item, Journal Entry, Payment, Sales Receipt, Credit Memo, Refund Receipt, Purchase Order, Vendor Credit, Deposit, Transfer, Time Activity, and others) support full CRUD plus search. A few support more limited operations (Account, Class, Department, Term, Payment Method, Tax Code, Tax Rate, Tax Agency, Company Info). It also exposes 11 financial reports including Balance Sheet, Profit and Loss, Cash Flow, Trial Balance, General Ledger, Aged Receivables, and Aged Payables.
The codebase is TypeScript with Zod schema validation, includes 396 tests with 100% coverage, and is released under Apache 2.0. Intuit positions it as an Early Preview local MCP server for developers and partners building AI workflows against QBO sandbox or production companies.
Tools
| Tool | Description |
|---|---|
create_customer / get_customer / update_customer / delete_customer / search_customers |
Full CRUD and search for QBO customers. |
create_invoice / get_invoice / update_invoice / delete_invoice / search_invoices |
Manage invoices end to end including line items and customer linkage. |
create_estimate / get_estimate / update_estimate / delete_estimate / search_estimates |
Manage QBO estimates (quotes) before they become invoices. |
create_bill / get_bill / update_bill / delete_bill / search_bills |
Manage vendor bills for accounts payable workflows. |
create_payment / get_payment / update_payment / delete_payment / search_payments |
Record and manage customer payments against invoices. |
create_bill_payment / get_bill_payment / update_bill_payment / delete_bill_payment / search_bill_payments |
Record payments against vendor bills. |
create_sales_receipt / get_sales_receipt / update_sales_receipt / delete_sales_receipt / search_sales_receipts |
Manage point-of-sale style sales receipts. |
create_credit_memo / create_refund_receipt |
Issue customer credits and refund receipts. |
create_purchase_order / create_purchase / create_vendor_credit |
Purchase orders, expenses, and vendor credits. |
create_journal_entry / get_journal_entry / update_journal_entry / delete_journal_entry / search_journal_entries |
Create and manage manual journal entries. |
create_deposit / create_transfer |
Bank deposits and transfers between accounts. |
create_time_activity / search_time_activities |
Log billable time entries for employees or vendors. |
create_item / create_vendor / create_employee / create_attachable |
Manage items (products/services), vendors, employees, and file attachments. |
Account, Class, Department, Term, Payment Method tools |
Manage chart of accounts and classification dimensions (no delete on Class/Department/Term/PaymentMethod). |
Tax Code / Tax Rate / Tax Agency tools |
Read and search QBO tax configuration. |
get_company_info / update_company_info |
Read or update QBO company profile. |
get_balance_sheet |
Pull the Balance Sheet report. |
get_profit_and_loss |
Pull the Profit and Loss report. |
get_cash_flow |
Pull the Cash Flow statement. |
get_trial_balance |
Pull the Trial Balance report. |
get_general_ledger |
Pull the General Ledger report. |
get_customer_sales |
Customer sales report. |
get_aged_receivables / get_aged_receivables_detail |
AR aging summary and detail reports. |
get_customer_balance |
Outstanding balance by customer. |
get_aged_payables |
AP aging report. |
get_vendor_expenses |
Expense totals by vendor. |
Prerequisites
- Node.js
- An Intuit Developer Portal app (Client ID and Client Secret)
- A QuickBooks Online company (sandbox or production) and its Realm ID
- An OAuth 2.0 refresh token for the company
Install and build
git clone https://github.com/intuit/quickbooks-online-mcp-server.git
cd quickbooks-online-mcp-server
npm install
npm run build
OAuth handshake (sandbox)
Copy .env.example to .env and fill in your Intuit app credentials, then run the auth helper to obtain a refresh token. Tokens are written back to .env automatically.
npm run auth
For production, Intuit rejects localhost redirect URIs, so use an HTTPS tunnel (for example ngrok http 8000) or a deployed callback endpoint.
Claude Desktop / MCP client config
{
"mcpServers": {
"quickbooks": {
"command": "node",
"args": ["path/to/quickbooks-online-mcp-server/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"
}
}
}
}
Switch QUICKBOOKS_ENVIRONMENT to production once you have a production refresh token and Realm ID.
- Generate a monthly close packet by pulling Balance Sheet, Profit and Loss, and Cash Flow into a single AI-written summary.
- Triage Accounts Receivable by running Aged Receivables and asking the agent to draft dunning emails per overdue invoice.
- Auto-create QBO customers and invoices from CRM or order data without manual data entry.
- Reconcile vendor spend by pulling Vendor Expenses and matching against Bills and Bill Payments.
- Log billable Time Activities from meeting notes and convert them into invoices for clients.
- "Pull the Profit and Loss for Q1 2026 with accrual basis and summarize the top 5 expense categories."
- "Find all customers with overdue invoices over $1,000 and draft a polite follow-up email for each."
- "Create an invoice in QuickBooks for Acme Corp, 10 hours of consulting at $200/hr, due in 30 days."
- "Show me Aged Payables as of today and list any bills more than 60 days late."
- "Create a new vendor 'Cloud Hosting Co' and record a bill for $4,500 due May 31."
- Official Intuit project, so coverage tracks the QBO API rather than community guesses.
- Very broad surface: 144 tools across 29 entities plus 11 standard reports.
- TypeScript with Zod validation and 396 tests at 100% coverage; release under Apache 2.0.
- Supports both sandbox and production with automatic refresh token rotation.
- Labeled an Early Preview; APIs and tool names may shift.
- Local stdio server only; no hosted remote endpoint, so each user must run and manage the process.
- Production OAuth requires a public HTTPS redirect (ngrok or deployment), which adds setup friction beyond sandbox.
- laf-rge/quickbooks-mcp: community MCP server for QuickBooks Online with query, create, and edit support.
- LibreChat-AI/quickbooks-online-mcp: a rebuild on Cloudflare Workers with OAuth 2.0 and Streamable HTTP/SSE transport for remote MCP clients.
- Xero MCP servers if you need a non-QuickBooks accounting backend with similar entity coverage.