QuickBooks Online MCP server for Claude Code — 8 automation tools replacing 50K-token snapshots with ~200-token targeted extraction
MCPpedia last refreshed this data
Qb Auto is an MCP server that QuickBooks Online MCP server for Claude Code — 8 automation tools replacing 50K-token snapshots with ~200-token targeted extraction. Its tool list has not been published yet over stdio and sse, requires no API key, and scores 88/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"quickbooks": {
"args": [
"/path/to/qb-auto/server.py"
],
"type": "stdio",
"command": "python3"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
MCP (Model Context Protocol) server that gives Claude Code native tools for QuickBooks Online automation.
This server supports HTTP transport. Be the first to test it — help the community know if it works.
Five weighted categories — click any category to see the underlying evidence.
MCP Python SDK: WebSocket server transport does not support Host/Origin validation
### Summary In affected versions, the deprecated WebSocket server transport (`mcp.server.websocket.websocket_server`) accepted the WebSocket handshake without applying any `Host` or `Origin` header validation. The `TransportSecuritySettings` mechanism that the SSE and Streamable HTTP transports use for this purpose was not wired into the WebSocket transport, so there was no SDK-level way to restrict which origins could connect. ### Am I affected? Only if a developer's application server exposes
MCP Python SDK: HTTP transports serve session requests without verifying the authenticated principal
### Summary In affected versions, the SSE and Streamable HTTP server transports routed incoming requests to an existing session based only on the session identifier, without verifying that the request was authenticated as the same principal that created the session. Anyone who learned or guessed a session ID could send JSON-RPC messages on that session, regardless of which bearer token the request carried. ### Am I affected? Only if a developer's application server uses an HTTP transport (SSE,
MCP Python SDK: Experimental task handlers allow any client to access and cancel other clients' tasks
### Summary In affected versions, the default request handlers installed by the experimental tasks feature (`server.experimental.enable_tasks()`) did not check which session created a task before acting on it. On a server with more than one connected client, any client could observe, read results from, and cancel tasks belonging to other clients. ### Am I affected? Only if the developer's application server calls `server.experimental.enable_tasks()`. If `grep -r enable_tasks` over their codebas
Model Context Protocol (MCP) Python SDK does not enable DNS rebinding protection by default
### Description The Model Context Protocol (MCP) Python SDK does not enable DNS rebinding protection by default for HTTP-based servers. When an HTTP-based MCP server is run on localhost without authentication using `FastMCP` with streamable HTTP or SSE transport, and has not configured `TransportSecuritySettings`, a malicious website could exploit DNS rebinding to bypass same-origin policy restrictions and send requests to the local MCP server. This could allow an attacker to invoke tools or ac
MCP Python SDK vulnerability in the FastMCP Server causes validation error, leading to DoS
A validation error in the MCP SDK can cause an unhandled exception when processing malformed requests, resulting in service unavailability (500 errors) until manually restarted. Impact may vary depending on the deployment conditions, and presence of infrastructure-level resilience measures. Thank you to Rich Harang for reporting this issue.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in finance
OKX trading MCP server — connect AI agents to spot, swap, futures, options & grid bots via the Model Context Protocol.
Real-time financial market data: stocks, forex, crypto, commodities, and economic indicators
HoneyBook client-portal MCP server for Claude — view contracts and invoices from wedding vendors
Your AI agent, fluent in Australian tax. MCP server with cited answers from 34,500+ ATO documents, the income tax and GST Acts and 4,900+ rulings, plus deduction, depreciation, BAS and audit-risk tools that know your tax profile.
MCP Security Weekly
Get CVE alerts and security updates for Qb Auto and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
MCP (Model Context Protocol) server that gives Claude Code native tools for QuickBooks Online automation.
Replaces 50K-token browser_snapshot round-trips with targeted DOM extraction (~200-500 tokens) and compound Playwright actions that complete entire workflows in one tool call.
| 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 |
| 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% |
mcp and playwright packagesgoogle-chrome --remote-debugging-port=9222pip install mcp playwright
playwright install chromium
Add to ~/.mcp.json:
{
"mcpServers": {
"quickbooks": {
"type": "stdio",
"command": "python3",
"args": ["/path/to/qb-auto/server.py"]
}
}
}
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.
page.evaluate() that return compact JSON from QB's DOM using ARIA selectorsgetByRole() and getByLabel() — ARIA-stable selectors that survive QB page reloadsPLAYBOOK.md contains the full reference for manual use with browser_evaluate/browser_run_code| 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 |
qb_receive_payment(invoice_num="6865", amount="22500", method="ACH")No browser snapshots. No 50K token pages. One tool call = one complete operation.
MIT