QuickBooks Desktop MCP Quickstart
LedgerCrossing includes an MCP server — the same Windows app that gives your integrations a REST API also gives AI agents a door into QuickBooks Desktop. It's included in the product. Not a tier, not a preview, not a limited-time unlock.
This page gets you from installed app to first agent query in about five minutes.
Before you start
- LedgerCrossing installed and activated on the QuickBooks machine (buy it here — $299 one-time).
- Your API key from the LedgerCrossing app. Auth is required on every path: the MCP endpoint
accepts the key as
Authorization: Bearer <key>orX-Api-Key: <key>. - The endpoint is
http://localhost:8284/mcpon the QuickBooks machine itself. Working from another machine? Reach it through your own tunnel (free) or LedgerCrossing Remote — same path,https://hostname instead of localhost.
Claude Code
One command:
claude mcp add --transport http quickbooks http://localhost:8284/mcp --header "X-Api-Key: YOUR_KEY"
Then ask: "Which customers are 60+ days overdue?" — Claude discovers the right qbXML operation, validates it, and runs it.
Cursor
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"quickbooks": {
"url": "http://localhost:8284/mcp",
"headers": { "X-Api-Key": "YOUR_KEY" }
}
}
}
VS Code (Copilot agent mode)
Add to .vscode/mcp.json:
{
"servers": {
"quickbooks": {
"type": "http",
"url": "http://localhost:8284/mcp",
"headers": { "X-Api-Key": "YOUR_KEY" }
}
}
}
Claude Desktop — not yet
Claude Desktop only speaks stdio (no remote HTTP servers without a paid workspace), so it can't
connect to LedgerCrossing today. Our one-click .mcpb bundle for Claude Desktop is built but
unpublished until code signing lands. This page will say so the day it works — until then, don't
buy for Claude Desktop specifically.
The six tools
| Tool | What it does |
|---|---|
list_operations |
All 240 qbXML operations, with category and minimum QuickBooks version |
get_operation |
Full field reference for one operation: element order, required flags, max lengths, enums, version gates |
validate_qbxml |
Checks a request locally against the catalog — no QuickBooks round-trip |
run_qbxml |
Executes the qbXML against QuickBooks Desktop and returns the response |
explain_error |
Turns a QuickBooks status code into what went wrong and what to change |
get_status |
QuickBooks up? Which company file? Bridge connected? |
The design is on-demand discovery: the agent browses list_operations, pulls the exact rules
with get_operation, checks its qbXML with validate_qbxml, then executes with run_qbxml —
so the catalog never floods the agent's context. The catalog is generated from Intuit's qbXML
specification: facts and field rules, all 240 operations.
What to know before you connect an agent
- This is not read-only.
run_qbxmlexecutes whatever qbXML the agent produces — including invoices, payments, and edits — with exactly the capability of the REST API. Connect agents you trust, to company files you mean to let them touch. QuickBooks' own Audit Trail records every posted transaction. - Runaway queries are rejected by default. Unbounded query requests are refused unless you
opt out (
RequireBoundedQueries) — a guardrail against an agent accidentally pulling the whole company file in one call. - QuickBooks must be running with the company file open (or auto-openable) on the machine — that's a QuickBooks Desktop constraint, and it's why cloud-only MCP servers can't do this job.
Why this exists
Every other QuickBooks MCP server targets QuickBooks Online. QuickBooks Desktop has no cloud API — it only talks through a local COM interface on the machine where it runs, which is exactly where LedgerCrossing sits. If your books are in Pro, Premier, or Enterprise, this is the bridge: the MCP server for QuickBooks Desktop.
QuickBooks is a registered trademark of Intuit Inc. LedgerCrossing is an independent product for QuickBooks Desktop and is not affiliated with or endorsed by Intuit. MCP (Model Context Protocol) is an open protocol; client names belong to their respective owners.