QuickBooks Online MCP Server

Intuit's official local MCP server: an agent finds and creates invoices, payments and customers in QuickBooks Online

  • 436 ★ on the repository
  • Last commit
  • Apache-2.0
MCP serverOfficial

Broad access

Why this level

  • The server sees company financial data: invoices, payments, journal entries, employee and vendor details and tax codes
  • Create, update and delete tools change the real books, and a deleted invoice or payment is hard to bring back
  • The app secret and refresh token sit in .env in plain text, and the token is rewritten on every renewal
All reasons and checks

intuit/quickbooks-online-mcp-server

Install

Manual install

git clone https://github.com/intuit/quickbooks-online-mcp-server.git && cd quickbooks-online-mcp-server && npm install && npm run build

Then copy .env.example to .env, enter your Intuit app keys and obtain a token with `npm run auth`.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The server sees company financial data: invoices, payments, journal entries, employee and vendor details and tax codes
  • Create, update and delete tools change the real books, and a deleted invoice or payment is hard to bring back
  • The app secret and refresh token sit in .env in plain text, and the token is rewritten on every renewal

This is third-party code. Review the repository files before installing.

What it does

The server connects an AI agent to the QuickBooks Online accounting system through the official API. It runs on your machine as a stdio process and signs in to a QuickBooks company with OAuth 2.0. For 29 entity types, including customers, invoices, payments, vendors, employees, journal entries and tax codes, it offers create, read, update, delete and search operations. Tax codes, rates and agencies are read-only. Beyond records, the server builds 11 financial reports: balance sheet, profit and loss, cash flow, trial balance, general ledger, sales by customer, and receivables and payables by age. An invoice can be fetched as a PDF, either returned inline as base64 or saved to the folder set by the QBO_PDF_OUTPUT_DIR variable. Environment variables switch whole groups of tools off: QUICKBOOKS_DISABLE_WRITE removes creation, QUICKBOOKS_DISABLE_UPDATE removes editing and QUICKBOOKS_DISABLE_DELETE removes deletion. Read and search tools always stay.

Who it is for. For accountants, finance leads and developers who keep books in QuickBooks Online and want Claude Code to handle lookups, reconciliations and reports.

Good fit when

  • You need to find a customer's unpaid invoices and pull an aged receivables report
  • You want a balance sheet or a profit and loss report for a period and want to walk through it with an agent
  • You have to create a batch of customers, invoices or vendors from a list, and doing it in the interface takes long
  • A developer is debugging a QuickBooks integration on a sandbox company and wants to inspect data quickly
  • You need an invoice PDF that the agent saves to a chosen folder

Not a fit when

  • You keep books in another system: the server works with QuickBooks Online only
  • The agent must not be trusted to change the books and you are not ready to set the write-disabling variables
  • You want a one-step install from a package registry: the server installs from source and needs your own Intuit app
  • You need one server shared across a team: it runs as a local stdio process on one machine

Example request

Find all unpaid invoices for the customer Acme from the last 90 days and show the aged receivables report

MCP

Transport
stdio
Authentication
OAuth

Environment variables

QUICKBOOKS_CLIENT_ID required
App client ID from the Keys & Credentials page in the Intuit Developer Portal
QUICKBOOKS_CLIENT_SECRET required, secret
App client secret from the same page
QUICKBOOKS_REFRESH_TOKEN required, secret
Refresh token issued by `npm run auth`
QUICKBOOKS_REALM_ID required
QuickBooks company ID
QUICKBOOKS_ENVIRONMENT required
Environment: sandbox or production
QUICKBOOKS_DISABLE_WRITE
true removes the create tools
QUICKBOOKS_DISABLE_UPDATE
true removes the update tools
QUICKBOOKS_DISABLE_DELETE
true removes the delete tools
QUICKBOOKS_TOKEN_STORE_PATH
Where to store the rotating token when the file system is read-only
QBO_PDF_OUTPUT_DIR
Folder where the server saves invoice PDFs instead of returning base64

Limitations

  • Access goes through an app you must register in the Intuit Developer Portal. Intuit has no personal API keys, so OAuth cannot be skipped. A sandbox test company is the easiest start.
  • For a real company the portal rejects localhost redirect URIs. You need a public HTTPS address, such as a temporary ngrok tunnel, and only for the one-time code exchange.
  • Node.js is required, and the server is built with `npm install` and `npm run build`. The instructions mention no ready published package.
  • Deletion is not available everywhere: accounts, classes, departments, terms, payment methods and tax entities have no delete or are read-only.
  • The server rewrites the refresh token to a file on every renewal, so a read-only file system needs the QUICKBOOKS_TOKEN_STORE_PATH variable.

How to disable. Remove the quickbooks entry from the MCP client config. To close access completely, delete the .env file with the keys and revoke the app token in the Intuit Developer Portal.

FAQ

How do I connect QuickBooks Online to Claude Code?

Build the server from source, fill .env with the app keys from the Intuit Developer Portal and obtain a token with `npm run auth`. Then add an MCP config entry with the node command, the path to dist/index.js and the QUICKBOOKS_CLIENT_ID, QUICKBOOKS_CLIENT_SECRET, QUICKBOOKS_REFRESH_TOKEN, QUICKBOOKS_REALM_ID and QUICKBOOKS_ENVIRONMENT variables.

Can I stop the agent from changing data in QuickBooks?

Yes. Set QUICKBOOKS_DISABLE_WRITE, QUICKBOOKS_DISABLE_UPDATE and QUICKBOOKS_DISABLE_DELETE to true, and the create, update and delete tools are not registered. Read and search stay available.

Why doesn't localhost work as the redirect address for a real company?

In production mode the Intuit portal rejects localhost redirect URIs and requires a public HTTPS address. A sandbox company accepts http://localhost:8000/callback. After the first exchange the refresh token lives in .env, and day-to-day work no longer needs the public address.

Which reports can the server build?

Eleven: balance sheet, profit and loss, cash flow, trial balance, general ledger, sales by customer, customer balance, vendor expenses, and receivables and payables by age, with a detailed variant for receivables. Tool names start with get_, for example get_balance_sheet.

Where does the server store the refreshed token?

In .env next to the compiled module: the path is resolved from the module, not from the shell's working folder. In a container with a read-only file system, set QUICKBOOKS_TOKEN_STORE_PATH and the token goes there.

Discussion

No questions or reviews yet.

YooKassa MCP server

MCP-сервер ЮKassa

Official

YooKassa official MCP: an agent creates payment links and invoices, checks statuses and refunds, but cannot move money on its own

MCP serverBroad access
Russian stack

MCP server for 1C:Enterprise data over OData: receivables, sales, stock and cash, plus document creation and posting behind a separate flag

MCP serverBroad access37Repository stars

Tochka Bank MCP server

MCP-сервер Точка Банка

Official

Tochka Bank's official MCP: an agent checks accounts and balances, builds statements and drafts payments that you sign in online banking

MCP serverBroad access
Official

Official Paddle Billing MCP server: catalog, customers, transactions, subscriptions and reports via your agent, with a filter for risky operations

MCP serverBroad access49Repository stars
Russian stack

An MCP server for 1C-Fresh over standard OData: invoices, sales, counterparties, working around known 1C-Fresh OData quirks and the 22 percent VAT

MCP serverBroad access1Repository stars
Russian stack

MCP server for 1C:Enterprise databases over standard OData: catalogs, documents, registers and accounting with no configuration extension

MCP serverBroad access12Repository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialAuthenticationRepository starsMain difference
QuickBooks Online MCP Server (this entry)yesOAuth436
Kontur.Elba MCP servernoAPI key0works with Kontur.Elba: counterparties, invoices, acts and waybills, while this server connects to QuickBooks Online, which adds journal entries, a trial balance and a balance sheet
Kontur Elba MCP servernoAPI key0a server for Kontur.Elba, with a different accounting system and document set

README in short

The page covers the server's features, a quick install and a sample Claude Code config, then lists entities, reports and tools. A separate section explains the OAuth setup for sandbox and production companies with common pitfalls. The end covers building, tests, project structure and tool naming rules.

README badge

Report a problem

Foxx AIQuickBooks Online MCP Server
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.