Skip to main content
Glama
rjpaganini

quickbooks-mcp-server

by rjpaganini

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    AI 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.
    6
    87 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connect Claude Desktop and Claude Code to QuickBooks Online for natural-language accounting. Ask questions about invoices, expenses, reports, and more using plain English.
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    Provides 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.
    100
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides comprehensive CRUD operations for 29 QuickBooks Online entity types and 11 financial reports, enabling full accounting management through natural language.
    Apache 2.0