QuickBooks Online

io.github.mindstonePublished by GitHub account mindstonev0.4.3Updated Oct 24, 2026

QuickBooks Online MCP server: invoices, bills, customers, vendors, employees, and accounts

VerifiedSTDIODesktop onlyFinanceBusiness & Commerce

Overview

AI-generated overview

A local MCP server that lets an assistant read and write QuickBooks Online data: customers, vendors, invoices, bills, estimates, employees, accounts and reports

What you can do
Query and fetch entities with QuickBooks Query Language, and run financial reports such as Profit and Loss, Balance Sheet, Cash Flow, Aged Receivables and Aged Payables. List, create and update customers and vendors, including deactivating them. List, create and update invoices, email an invoice to its customer, and download an invoice as a PDF. List and create estimates and bills, and list employees and the chart of accounts. Configure the QuickBooks Online OAuth credentials from within the assistant.
When to use it
Useful when an assistant should work directly with a company's QuickBooks Online books: pulling reports, looking up customers or invoices, drafting and sending invoices, or recording bills and estimates without switching to the QuickBooks web interface.
Requirements
Runs locally via npx with Node.js 20+ and npm. Needs an Intuit Developer app and the environment variables QUICKBOOKS_CLIENT_ID, QUICKBOOKS_CLIENT_SECRET, QUICKBOOKS_REFRESH_TOKEN and QUICKBOOKS_REALM_ID; QUICKBOOKS_ENVIRONMENT selects sandbox or production and defaults to production. Network access to the QuickBooks API.
Before you install
Write tools are enabled by default with no opt-in gate, so creating, updating, deactivating and emailing records depends on the host's tool-approval layer. Sending an invoice email contacts a real customer. The environment defaults to production, so set sandbox for testing. Requires the client secret and an OAuth refresh token, which grant access to company financial data. Text from QuickBooks is wrapped as untrusted content.

Installation

In SourceWeft

  1. Open QuickBooks Online in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@mindstone/mcp-server-quickbooks

[npm version] [License: FSL-1.1-MIT]

QuickBooks Online MCP server for Model Context Protocol hosts. Manage invoices, bills, customers, vendors, employees, and accounts in QuickBooks Online through a standardised MCP interface.

Status

Production writes are enabled by default

Every QuickBooks-mutating tool (create_quickbooks_invoice, create_quickbooks_bill, create_quickbooks_customer, create_quickbooks_vendor, create_quickbooks_estimate, send_quickbooks_invoice_email, update_quickbooks_invoice, update_quickbooks_customer, update_quickbooks_vendor) executes its write without any opt-in: capability is enabled by default and the host's tool-approval layer is the gate. Read-only tools (list_*, get_*, query_*, download_*, configure_quickbooks) are unaffected.

Versions 0.3.0–0.4.0 gated these writes behind a QB_ALLOW_PROD_WRITES=1 environment variable. That gate has been removed; the variable is no longer read and can be deleted from host configurations.

Requirements

  • Node.js 20+
  • npm

One-click install

[Add to Cursor] [Add to VS Code] [Add to VS Code Insiders]

After clicking the button, your host will prompt you to fill: QUICKBOOKS_CLIENT_ID, QUICKBOOKS_CLIENT_SECRET, QUICKBOOKS_REFRESH_TOKEN, QUICKBOOKS_REALM_ID, QUICKBOOKS_ENVIRONMENT.

Manual config for Claude Desktop / Claude Code / Goose / Continue.dev (QuickBooks Online)
json
{  "mcpServers": {    "QuickBooks Online": {      "command": "npx",      "args": [        "-y",        "@mindstone/mcp-server-quickbooks"      ],      "env": {        "QUICKBOOKS_CLIENT_ID": "",        "QUICKBOOKS_CLIENT_SECRET": "",        "QUICKBOOKS_REFRESH_TOKEN": "",        "QUICKBOOKS_REALM_ID": "",        "QUICKBOOKS_ENVIRONMENT": "production"      }    }  }}

Quick Start

Install & build

bash
cd <path-to-repo>/connectors/quickbooksnpm installnpm run build

npx (once published)

bash
npx -y @mindstone/mcp-server-quickbooks

Local

bash
node dist/index.js

Configuration

Environment variables

  • QUICKBOOKS_CLIENT_ID — Intuit Developer app client ID
  • QUICKBOOKS_CLIENT_SECRET — Intuit Developer app client secret
  • QUICKBOOKS_REFRESH_TOKEN — OAuth 2.0 refresh token
  • QUICKBOOKS_REALM_ID — QuickBooks company (realm) ID
  • QUICKBOOKS_ENVIRONMENT — sandbox or production (default: production)
  • MCP_HOST_BRIDGE_STATE — optional path to a host bridge state file used for credential management
  • MINDSTONE_REBEL_BRIDGE_STATE — backwards-compatible alias for MCP_HOST_BRIDGE_STATE

Host configuration examples

Claude Desktop / Cursor

json
{  "mcpServers": {    "QuickBooks": {      "command": "npx",      "args": ["-y", "@mindstone/mcp-server-quickbooks"],      "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"      }    }  }}

Local development (no npm publish needed)

json
{  "mcpServers": {    "QuickBooks": {      "command": "node",      "args": ["<path-to-repo>/connectors/quickbooks/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"      }    }  }}

Tools (21)

Configuration

  • configure_quickbooks — Configure QuickBooks Online OAuth credentials

Query

  • query_quickbooks — Run a QuickBooks query using QuickBooks Query Language
  • get_quickbooks_entity — Get a single entity by type and ID

Reports

  • get_quickbooks_report — Run a financial report (ProfitAndLoss, BalanceSheet, CashFlow, AgedReceivables, AgedPayables)

Customers

  • list_quickbooks_customers — List customers
  • create_quickbooks_customer — Create a new customer
  • update_quickbooks_customer — Sparse-update a customer (deactivate with active: false)

Vendors

  • list_quickbooks_vendors — List vendors
  • create_quickbooks_vendor — Create a new vendor
  • update_quickbooks_vendor — Sparse-update a vendor (deactivate with active: false)

Invoices

  • list_quickbooks_invoices — List invoices
  • create_quickbooks_invoice — Create a new invoice
  • update_quickbooks_invoice — Sparse-update invoice header fields (dueDate, memo, privateNote)
  • send_quickbooks_invoice_email — Email an invoice to its customer
  • download_quickbooks_invoice_pdf — Download an invoice as a PDF (saved to the system temp directory)

Estimates

  • list_quickbooks_estimates — List estimates (quotes)
  • create_quickbooks_estimate — Create a new estimate

Bills

  • list_quickbooks_bills — List bills (accounts payable)
  • create_quickbooks_bill — Create a new bill

Employees

  • list_quickbooks_employees — List employees

Accounts

  • list_quickbooks_accounts — List chart of accounts

Untrusted content envelopes

Text authored inside QuickBooks (customer/vendor display names, memos, line descriptions, report cells) is attacker-influenceable, so the connector wraps it in <untrusted-content source="quickbooks:…"> envelopes before returning it to the model. Typed entity payloads are sanitized deny-by-default: every string is enveloped — including strings inside arrays, which have no key context — unless its key is a narrow structural predicate (IDs, SyncToken, dates/timestamps, enums) and its value passes a shape guard. query_quickbooks, get_quickbooks_entity, and reports envelope every string key and value wholesale. Structural values such as Id, SyncToken, dates, and amounts are left untouched so they stay usable as inputs to follow-up calls.

Licence

FSL-1.1-MIT — Functional Source License, Version 1.1, with MIT future licence. The software converts to MIT licence on 2030-04-08.

Source: connectors/quickbooks/README.md at commit 0396f0b

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.4.3LatestOct 14, 2026
  2. v0.4.2Sep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.