quickbooks-mcp-server
quickbooks-mcp-server
一个单文件的 MCP 服务器,为 Claude 提供 QuickBooks Online 的完整读写权限,并附带对账工具,能发现人工逐行翻账簿时发现不了的问题。
$ qbo_health_check
transport ...... stdio (Claude Desktop, Claude Code, claude.ai)
api ............ QuickBooks Online v3
tools .......... 22
version ........ 2.0.0
deploy ......... local, or HTTP on a Raspberry Pi behind Tailscale为什么做这个
记账问题几乎从来都不是一次查询就能解决的。“我们是不是重复付款给那家供应商了?” 意味着列出采购记录、按金额和日期邻近程度分组、比对银行流水,然后还要查看那笔重复记录后来有没有被作废。这是一个循环,而循环正是智能体该处理的事。
设计上的押注是:给模型一组小而可自由组合的工具,让它自己完成推理,而不是交付一个巨大的 reconcile() 函数,把“什么差异代表什么意思”的判断写死在代码里。
正是这个押注让 v2.0.0 只有 22 个工具,而 v1.0.0 有 45 个。第一个版本为我问过的每一个问题都配了一个工具;结果发现其中大多数只是模型在组合两个基础工具 — 于是基础工具被保留,组合工具被删除。迁移对照见 CHANGELOG.md。
Related MCP server: quickbooks-mcp-server
工具
$ qbo --list-tools
read
qbo_company_info qbo_get_preferences qbo_health_check
qbo_list_accounts qbo_list_customers qbo_get_customer
qbo_list_bills qbo_list_deposits qbo_get_entity
qbo_get_invoice qbo_get_transaction qbo_get_transfer
qbo_get_journal_entry qbo_get_report qbo_account_register
write
qbo_create_invoice qbo_create_payment qbo_create_purchase
qbo_delete_journal_entry qbo_delete_purchase qbo_delete_transfer
qbo_batch_delete
reconciliation
qbo_detect_bank_feed_gaps find dates where the feed silently stopped
qbo_find_duplicate_transactions near-match scan across amount + date window
qbo_duplicate_scan_by_account the same, scoped to one account
qbo_analyze_reconciliation month-end variance with the arithmetic shown对账工具才是最值得借鉴的。银行流水缺口就是那种不会被人预判到的失败模式 — 流水断掉四天、交易永远不会到达,账簿在不完整的数据下却依然完美做平。没有任何报错。要直到三月份年结数对不上时,你才会发现它。
安装
$ git clone https://github.com/rjpaganini/quickbooks-mcp-server
$ cd quickbooks-mcp-server
$ pip install -r requirements.txt
$ cp .env.example .env # then fill in your QBO app credentials在 developer.intuit.com 注册一个应用,获取客户端 ID 和密钥。你需要:
QB_REALM_ID your company id
QB_CLIENT_ID from the Intuit developer app
QB_CLIENT_SECRET from the Intuit developer app
QB_REFRESH_TOKEN from the OAuth playground
QB_ACCESS_TOKEN refreshed automatically once seeded
QB_SANDBOX true while testing — set false deliberately然后把 MCP 客户端指向它:
{
"mcpServers": {
"quickbooks": {
"command": "python",
"args": ["/absolute/path/to/server.py"]
}
}
}安全
这个服务器可以删除真实记/记账数据中的内容。 这不是假设 — qbo_batch_delete 之所以存在,就是因为手工清理一次糟糕的导入非常痛苦。
在把它指向真实公司文件之前,先阅读 SECURITY.md。简单版:先在 sandbox 中开始,保持 QB_SANDBOX=true 直到亲眼看着它正常工作,再把写操作和删除工具当成带通配符的 rm 一样对待。
$ pytest # unit tests, no network
$ pytest -m live # smoke tests against a live sandbox company说明
刻意做成单文件。
server.py很大,但全部内容都能 grep,不需要在脑子里维护一张导入依赖图。也可以通过
deploy-to-pi.sh在树莓派上以 HTTP 服务方式运行,我正是这样通过 Tailscale 从手机上的 claude.ai 访问它。本仓库不包含任何包含凭据、公司数据或财务记录的数据。
许可
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
QuickBooks Online in Claude and ChatGPT: 221 tools, full ledger, multi-company, Canada + US, FR/EN.
Connect Claude or Cursor to books, invoices, bills, payroll, and sealed closes.
QuickBooks Online for Claude: reports, bookkeeping cleanup, and US & Canadian tax prep.
Connect QuickBooks Online to AI agents with secure read or write access across multiple companies.
Related MCP Servers
- AlicenseAqualityDmaintenanceAI bookkeeper for small businesses that connects to QuickBooks Online. Enables users to query financial data like bank balances, P\&L reports, and invoices through natural language in Claude Desktop or Cursor.687 npmMIT
- AlicenseNot gradedqualityDmaintenanceConnect Claude Desktop and Claude Code to QuickBooks Online for natural-language accounting. Ask questions about invoices, expenses, reports, and more using plain English.MIT
- AlicenseCqualityDmaintenanceProvides complete QuickBooks Online API integration for Claude Code and other MCP-compatible clients, enabling full CRUD operations on 29 entity types and 11 financial reports.100Apache 2.0
- AlicenseNot gradedqualityCmaintenanceProvides comprehensive CRUD operations for 29 QuickBooks Online entity types and 11 financial reports, enabling full accounting management through natural language.Apache 2.0