# quickbooks-mcp

An MCP server connecting AI assistants to QuickBooks Online. It generates financial statements, parses vendor names directly, and previews record changes before writing.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 14
- Author: laf-rge
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/laf-rge/quickbooks-mcp
- Updated: 2026-10-19
- HTML: https://affpapa.org/en/nevibecode/mcp/quickbooks-mcp

## What it does

The server translates conversational instructions into QuickBooks Online requests. Instead of looking up database identifiers for vendors or accounts, it matches entity names directly from the prompt. It also consolidates entity searches into one SQL-compatible query command, skipping the need for dedicated lookup endpoints.

Built-in handlers pull Profit & Loss statements, balance sheets, and trial balances partitioned by date or tracking category. Write actions execute in a preview state first. That keeps unreviewed journal entries from altering live ledgers immediately.

Setup requires Node.js 18+ alongside an Intuit developer profile. Secrets sit in `~/.quickbooks-mcp/credentials.json` or AWS Secrets Manager. Note that heavy payloads go to `/tmp`, which causes failures if the client environment lacks local filesystem access.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `QBO_CLIENT_ID`, `QBO_CLIENT_SECRET`, `QBO_CREDENTIAL_MODE`, `QBO_SANDBOX` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env QBO_CLIENT_ID=<QBO_CLIENT_ID> --env QBO_CLIENT_SECRET=<QBO_CLIENT_SECRET> --env QBO_CREDENTIAL_MODE=<QBO_CREDENTIAL_MODE> --env QBO_SANDBOX=<QBO_SANDBOX> --transport stdio quickbooks-mcp -- npx -y quickbooks-mcp
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add quickbooks-mcp --env QBO_CLIENT_ID=<QBO_CLIENT_ID> --env QBO_CLIENT_SECRET=<QBO_CLIENT_SECRET> --env QBO_CREDENTIAL_MODE=<QBO_CREDENTIAL_MODE> --env QBO_SANDBOX=<QBO_SANDBOX> -- npx -y quickbooks-mcp
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "quickbooks-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "quickbooks-mcp"
            ],
            "env": {
                "QBO_CLIENT_ID": "<QBO_CLIENT_ID>",
                "QBO_CLIENT_SECRET": "<QBO_CLIENT_SECRET>",
                "QBO_CREDENTIAL_MODE": "<QBO_CREDENTIAL_MODE>",
                "QBO_SANDBOX": "<QBO_SANDBOX>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "quickbooks-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "quickbooks-mcp"
            ],
            "env": {
                "QBO_CLIENT_ID": "<QBO_CLIENT_ID>",
                "QBO_CLIENT_SECRET": "<QBO_CLIENT_SECRET>",
                "QBO_CREDENTIAL_MODE": "<QBO_CREDENTIAL_MODE>",
                "QBO_SANDBOX": "<QBO_SANDBOX>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e QBO_CLIENT_ID=<QBO_CLIENT_ID> -e QBO_CLIENT_SECRET=<QBO_CLIENT_SECRET> -e QBO_CREDENTIAL_MODE=<QBO_CREDENTIAL_MODE> -e QBO_SANDBOX=<QBO_SANDBOX> quickbooks-mcp npx -y quickbooks-mcp
```
Replace <…> with your own values

## When to use it
- generate P&L and balance sheet summaries inside the chat
- prepare bills by business name without hunting for Intuit identifiers
- inspect ledger entries using SQL queries across entity tables
- preview accounting modifications prior to committing them

## Example prompts
- Draft a bill for PG&E for $450 under Utilities dated January 15, 2025
- Run a balance sheet report partitioned by month for this year
- Execute `SELECT * FROM Purchase WHERE TxnDate >= '2025-01-01'` with the query tool

## Similar
- [QuickBooks Automation](https://affpapa.org/en/nevibecode/skills/quickbooks-automation.md) — skill · 4700 installs
- [quickbooks](https://affpapa.org/en/nevibecode/skills/quickbooks.md) — skill · 338 installs
- [mcp-quickbooks](https://affpapa.org/en/nevibecode/mcp/mcp-quickbooks.md) — MCP server · ★ 274
- [tax-prep](https://affpapa.org/en/nevibecode/skills/tax-prep.md) — skill · 1800 installs
- [month-end-prep](https://affpapa.org/en/nevibecode/skills/month-end-prep.md) — skill · 1700 installs
- [RoboSystems](https://affpapa.org/en/nevibecode/mcp/robosystems.md) — MCP server · ★ 29

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
