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.
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.
MCP Python SDK has Unhandled Exception in Streamable HTTP Transport, Leading to Denial of Service
If a client deliberately triggers an exception after establishing a streamable HTTP session, this can lead to an uncaught ClosedResourceError on the server side, causing the server to crash and requiring a restart to restore service. Impact may vary depending on the deployment conditions, and presence of infrastructure-level resilience measures. Thank you to Rich Harang for reporting this issue.
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
Real-time financial market data: stocks, forex, crypto, commodities, and economic indicators
A Model Context Protocol (MCP) server that provides AI assistants with direct access to the Spreedly payments API. Enables LLMs to manage gateways, process transactions, tokenize payment methods, and more, through structured, validated tool calls.
MCP server for InsightSentry financial data API - market data, options, screeners, and more
AI agents get on-chain identity, credentials, reputation, escrow, and persistent memory on XRPL.
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