quickbooks-desktop-mcp
This server provides safe, structured access to a QuickBooks Desktop company file via the MCP protocol, enabling read, write, and management operations with automatic undo logging.
Company & Setup
qb_company_info— Get the currently open QuickBooks company file path (confirm you're working with the right file before writing)
Reading Data
qb_list_accounts— List all chart of accounts entries (name, type, active status, balance)qb_list_vendors— List all vendors (name, ListID), optionally filtering to active-onlyqb_vendor_history— Get a breakdown of which accounts a vendor's past transactions were booked to, with countsqb_query_transactions— Query transactions by type (Check, Deposit, CreditCardCharge, CreditCardCredit, Transfer, JournalEntry), with optional filters for date range, entity, and accountqb_check_duplicate— Check whether a transaction with a given date and amount already exists, with a configurable date tolerance window
Writing Data
qb_add_transaction— Add a new transaction (Check, Deposit, CreditCardCharge, or CreditCardCredit) with line items; automatically logged for undoqb_modify_transaction_line— Modify an expense/deposit line on an existing transaction; requires original values for undo loggingqb_delete_transaction— Delete a transaction; requires a full before-snapshot so the operation can be revertedqb_add_vendor— Create a new vendor after verifying no duplicate exists
Safety & Undo
qb_revert_run— Revert all operations from a prior run log in reverse order; supportsdry_runmode to preview changes before applyingqb_list_runs— List recent run logs to find a specific run to inspect or revertAll write tools accept an optional
expected_company_fileparameter to guard against accidentally posting to the wrong company file
Provides safe, structured access to QuickBooks Desktop company files: read accounts, vendors, and transactions; add, modify, or delete transactions and vendors with automatic undo logging.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@quickbooks-desktop-mcpshow me the chart of accounts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
QBBridge
An MCP frontend for QuickBooks Desktop.
Gives any MCP-compatible client (Claude Desktop, Claude Code, or anything else that speaks MCP) safe, structured access to a local QuickBooks Desktop company file: read accounts/vendors/transactions, post new transactions, and modify or delete existing ones -- with every write automatically logged so it can be reverted.
QuickBooks Desktop's automation API (QBXML/QBFC) only works on the machine (or LAN) where QuickBooks is actually installed -- there is no cloud proxy for it. QBBridge runs locally, right next to QuickBooks, and your company file's data never has to leave that machine to be used by an MCP client.
Why this exists
QBXML is powerful but has real, undocumented sharp edges: several element orderings are order-sensitive in ways the schema alone doesn't tell you, and getting them wrong produces a bare COM parse exception with no indication of which field was the problem. This package exists so you don't have to rediscover those the hard way -- they're encoded and tested once, here.
Related MCP server: QuickBooks Online MCP Server
What it gives you
Read: chart of accounts, vendor list, a vendor's transaction history (so you can classify a new transaction against how this vendor has actually been booked before, not a guess), flexible transaction queries, and a duplicate/overlap checker.
Write: add/modify/delete transactions (Check, Deposit, CreditCardCharge, CreditCardCredit) and vendors.
Safety: every write is automatically recorded to an append-only undo log as it happens (not batched at the end -- a crash mid-run still leaves a usable log of everything that did complete). Any run can be reverted, in reverse order, with one call.
What it deliberately does NOT do
This server has no business-specific logic in it -- no classification rules, no confidence thresholds, no assumptions about what kind of business you run. Deciding which vendor maps to which account, when to trust a match versus flag it for a human, and how to parse a specific bank's statement format is policy, and policy differs by business. That belongs in the agent/skill calling this server, not in the server itself. This keeps the server itself universal.
The companion skill
The server is the mechanism; skills/qbbridge-bookkeeping/SKILL.md
is the judgment. It's a Claude skill that teaches an agent how to actually
use these tools well -- when to trust a vendor's transaction history vs.
flag it for a human, how to handle payment/credit lines vs. purchases,
and the safety habits (checking the open company file, checking for
duplicates) to follow before every write. Install the MCP server for the
plumbing; add this skill for the bookkeeping judgment on top of it.
Requirements
Windows, with QuickBooks Desktop installed and the target company file open.
Python 3.10+.
pywin32(installed automatically on Windows).
Install
pip install qbbridge-mcpConfigure as an MCP server
Point your MCP client at the qbbridge-mcp command. For Claude Desktop,
add to your MCP config:
{
"mcpServers": {
"qbbridge": {
"command": "qbbridge-mcp"
}
}
}Safety notes
Every write tool accepts an optional
expected_company_fileparameter. Pass the path you expect QuickBooks to have open (from a priorqb_company_infocall); the tool refuses to run if a different file is actually open. This is the single check that prevents posting to the wrong client's file.qb_delete_transactionrequires you to pass a full snapshot of the transaction (query it first) -- without it, a delete cannot be undone.Undo logs are written to
./qbbridge_runsby default, or$QBBRIDGE_RUNS_DIRif set.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/lilfroog/qbbridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server