Qb Auto
About
QuickBooks Online MCP server for Claude Code — 8 automation tools (invoices, payments, reports) that replace ~50K-token UI snapshots.
Details
- Author
- Scottcjn
- Downloads
- 314
- Categories
- Other, Automation, Finance
Jump to
- 15 tools for QuickBooks Online: invoices, payments, reports, and more
- Typical token savings of 91–95% over browser snapshot workflows
- Uses ARIA-stable selectors that survive QBO page reloads
- No intermediate browser snapshots — one tool call completes an operation
- Extractors return compact JSON (~200 tokens) instead of full-page DOM
Install Python 3.10+, the mcp and playwright packages, and a Chrome browser running with remote debugging on port 9222. Register the server with Claude Code by adding a quickbooks entry to ~/.mcp.json that points to server.py. Claude can then call any of the 15 tools directly.
qb-auto — QuickBooks MCP Server
MCP (Model Context Protocol) server that gives Claude Code native tools for QuickBooks Online automation. Replaces 50K-tokenbrowser_snapshot round-trips with targeted DOM extraction (~200-500 tokens) and compound Playwright actions that complete entire workflows in one tool call.
Tools
| Tool | Description | |------|-------------| |qb_page_state | Check current page/dialog state (~50 tokens) |
| qb_list_invoices | List all visible invoices with optional customer filter |
| qb_invoice_state | Inspect an open invoice form (line items, totals) |
| qb_receive_payment | Record a payment (navigate → fill → save → confirm) |
| qb_create_invoice | Create a new invoice with line items |
| qb_delete_line_item | Delete a line from an existing invoice |
| qb_edit_payment_amount | Edit an existing payment amount |
| qb_batch_receive_payments | Record multiple payments in sequence |
| qb_report | Run any QBO report (30+ report types) with date range options |
| qb_report_pnl | Profit & Loss (income statement) |
| qb_report_balance_sheet | Balance Sheet (assets, liabilities, equity) |
| qb_report_ar_aging | A/R Aging Summary (who owes, how overdue) |
| qb_report_customer_balance | Customer Balance Summary |
| qb_report_open_invoices | Open (unpaid) Invoices |
| qb_report_vendor_balance | Vendor Balance Summary |
Token Savings
| Workflow | Before (snapshots) | After (MCP) | Savings | |----------|--------------------|-------------|---------| | Receive Payment | ~290K tokens | ~13K tokens | 95% | | Create Invoice | ~350K tokens | ~18K tokens | 95% | | Full session (5 ops) | ~500K tokens | ~45K tokens | 91% |Setup
Prerequisites
- Python 3.10+ -mcp and playwright packages
- Chrome running with remote debugging: google-chrome --remote-debugging-port=9222
Install
``bash
pip install mcp playwright
playwright install chromium
`
Register with Claude Code
Add to ~/.mcp.json:
`json
{
"mcpServers": {
"quickbooks": {
"type": "stdio",
"command": "python3",
"args": ["/path/to/qb-auto/server.py"]
}
}
}
`
Configuration
The server connects to Chrome via CDP (Chrome DevTools Protocol) on port 9222 by default. Set the CDP_PORT variable in server.py if using a different port.
Architecture
- Extractors: JavaScript functions injected via page.evaluate() that return compact JSON from QB's DOM using ARIA selectors
- Actions: Complete Playwright workflows using getByRole() and getByLabel() — ARIA-stable selectors that survive QB page reloads
- Playbook: PLAYBOOK.md contains the full reference for manual use with browser_evaluate/browser_run_code
Files
| File | Purpose |
|------|---------|
| server.py | MCP server with 15 tools |
| extractors.js | Standalone JS extractor functions (reference) |
| actions.js | Playwright action templates (reference) |
| PLAYBOOK.md | Quick reference for manual browser automation |
How It Works
1. Claude calls qb_receive_payment(invoice_num="6865", amount="22500", method="ACH")`
2. Server connects to your Chrome browser via CDP
3. Navigates to QB invoices, finds the invoice, opens payment dialog
4. Fills method, amount, saves, handles confirmations
5. Returns compact JSON result (~200 tokens)
No browser snapshots. No 50K token pages. One tool call = one complete operation.
License
MITSign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.


