About mcp-quickbooks
mcp-quickbooks is an MCP server for QuickBooks Online by Intuit, an accounting platform widely used in the US and UK. It targets LatAm companies that invoice international customers or belong to US parent companies and need their books in QuickBooks.
Key features
- 01Customer, invoice and payment create and query
- 02Product and service item management
- 03Bill and vendor management
- 04Chart of accounts querying with SQL-like syntax
- 05Profit and Loss report generation
Use cases
- 01Issuing invoices to international customers and recording payments
- 02Querying the chart of accounts and P&L from an agent workflow
- 03Managing accounts payable bills for a US parent company subsidiary
MCP support
This project is an MCP server that exposes 22 tools to MCP clients, covering customers, invoices, payments, items, bills, vendors, estimates, accounts and the P&L report.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @codespar/mcp-quickbooksQB_ACCESS_TOKENSecretQuickBooks OAuth2 bearer access token. Expires in 1hr — caller is responsible for refresh via Intuit's OAuth2 auth_code flow.QB_REALM_IDQuickBooks company id (realmId). Issued when a user authorizes your app against a specific company.QB_ENVQuickBooks environment: 'sandbox' (default) or 'production'. Selects sandbox-quickbooks.api.intuit.com vs quickbooks.api.intuit.com.QB_MINOR_VERSIONQuickBooks API minor version. Defaults to 70.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
22Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| BillAddr | object | No | Billing address |
| BillAddr.City | string | No | |
| BillAddr.Line1 | string | No | |
| BillAddr.Country | string | No | |
| BillAddr.PostalCode | string | No | |
| BillAddr.CountrySubDivisionCode | string | No | State/province code |
| GivenName | string | No | |
| FamilyName | string | No | |
| CompanyName | string | No | |
| DisplayName | string | Yes | Unique display name |
| PrimaryPhone | object | No | |
| PrimaryPhone.FreeFormNumber | string | No | |
| PrimaryEmailAddr | object | No | |
| PrimaryEmailAddr.Address | string | No |
Details
From the project README@codespar/mcp-quickbooks
MCP server for QuickBooks Online (Intuit) — the most-used accounting platform in the US and UK, and the global default for small-business ERP.
This is our global accounting anchor. While the catalog covers BR/LatAm ERPs (Omie, Conta Azul, Alegra, Bling, Tiny), LatAm SaaS companies that invoice international customers — or subsidiaries of US parent companies — almost universally keep their books in QuickBooks.
Tools (22)
| Tool | Purpose |
|---|---|
create_customer | Create a customer in QuickBooks Online. |
update_customer | Update a customer. |
get_customer | Retrieve a customer by QuickBooks entity id. |
list_customers | Query customers using QBO's SQL-like query language. |
create_invoice | Create an invoice. |
update_invoice | Update an invoice. |
void_invoice | Void an invoice. |
delete_invoice | Delete an invoice. |
get_invoice | Retrieve an invoice by QuickBooks entity id. |
send_invoice | Email an invoice to the customer. |
create_payment | Record a customer payment against one or more invoices. |
get_payment | Retrieve a payment by QuickBooks entity id. |
create_item | Create a product or service item. |
list_items | Query items using QBO's SQL-like query language. |
create_bill | Create a bill (AP / money owed to a vendor). |
list_bills | Query bills using QBO's SQL-like query language. |
create_vendor | Create a vendor (supplier). |
list_vendors | Query vendors using QBO's SQL-like query language. |
create_estimate | Create an estimate (quote). |
create_sales_receipt | Create a sales receipt (paid-on-the-spot sale — combines invoice + payment). |
list_accounts | Query the chart of accounts using QBO's SQL-like query language. |
get_profit_and_loss_report | Run a Profit and Loss report for a date range. |
Install
npm install @codespar/mcp-quickbooks
Environment
QB_ACCESS_TOKEN="..." # OAuth2 bearer (expires in 1hr — caller refreshes)
QB_REALM_ID="..." # company id, issued on authorization
QB_ENV="sandbox" # or "production". Default: sandbox
QB_MINOR_VERSION="70" # optional, default 70
Authentication
QuickBooks uses OAuth2 authorization_code flow. Access tokens live 1hr; refresh tokens 100 days. This server assumes a valid QB_ACCESS_TOKEN is already issued — token acquisition and refresh live outside the MCP scaffold (typically in your agent's credential manager).
Run
# stdio (default)
npx @codespar/mcp-quickbooks
# HTTP
MCP_HTTP=true MCP_PORT=3000 npx @codespar/mcp-quickbooks
Query language
QuickBooks list endpoints use a SQL-like syntax passed via ?query=. Examples:
SELECT * FROM Customer WHERE Active = true MAXRESULTS 50
SELECT * FROM Item WHERE Type = 'Service'
SELECT * FROM Account WHERE AccountType = 'Income'
Pass the full query string to list_customers, list_items, list_accounts.
Enterprise
Need governance, budget limits, and audit trails for agent payments? CodeSpar Enterprise adds policy engine, payment routing, and compliance templates on top of these MCP servers.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.