quickbooks-online-mcp-server
Intuit 官方 MCP 服务器,让 AI 助手通过 Model Context Protocol
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Intuit 官方 MCP 服务器,让 AI 助手通过 Model Context Protocol
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:Intuit 官方 Logo — QuickBooks Online MCP Server 由 Intuit 官方维护
想象一下这样的场景:你是财务人员或独立开发者,每天要在 QuickBooks Online 里反复查询发票、核销账款、生成报表。每次都要手动登录网页后台,复制粘贴数据,效率极低。而当你尝试让 AI 助手帮你处理这些财务数据时,发现它根本无法访问你的会计系统——因为市面上几乎没有标准化的集成方案。
这就是 QuickBooks Online MCP Server 诞生的背景。作为财务软件领域的巨头,Intuit 在 2024-2025 年间积极布局 AI 战略,推出了面向 AI 助手的基础设施层——让 Claude Code、Cursor 等 MCP 兼容的 AI 工具能够以标准化的方式调用 QuickBooks 的完整功能。这不是实验性项目,而是 Intuit 官方维护 的生产级仓库,拥有 100% 测试覆盖率。
这个 MCP 服务器将 QuickBooks Online API 的功能拆解为 144 个可独立调用的工具,按照 {verb}_{entity} 的命名规范组织,覆盖:
| 类别 | 覆盖实体 | 工具特点 |
|---|---|---|
| 客户管理 | Customer, Invoice, Payment, Sales Receipt, Credit Memo 等 | 完整 CRUD + 搜索 |
| 供应商管理 | Vendor, Bill, Bill Payment, Purchase Order, Vendor Credit 等 | 账款全流程管理 |
| 财务报表 | 资产负债表、利润表、现金流量表、账龄分析等 | 11 种标准财务报告 |
| 时间追踪 | Time Activity, Class, Department | 项目成本归集 |
| 税务相关 | Tax Code, Tax Rate, Tax Agency | 税率查询 |
| 其他实体 | Journal Entry, Item, Account, Transfer 等 | 60+ 工具 |
以发票为例,你可以通过以下工具链完成完整的应收账款管理流程:create_invoice 创建发票 → search_invoices 筛选 → create_payment 记录付款 → get_aged_receivables 分析账龄。所有工具均使用 Zod Schema 做输入校验,错误信息清晰,开发者体验好。
项目采用分层架构,代码结构清晰:
src/
├── index.ts # MCP Server 入口,stdin/stdout 通信
├── clients/
│ └── quickbooks-client.ts # OAuth token 管理 + QBO API 封装
├── handlers/ # 87 个业务逻辑文件
│ ├── create-quickbooks-*.ts # 14 个创建操作
│ ├── get-quickbooks-*.ts # 25 个读取操作
│ ├── update-quickbooks-*.ts # 14 个更新操作
│ ├── delete-quickbooks-*.ts # 14 个删除操作
│ └── search-quickbooks-*.ts # 20 个搜索操作
├── tools/ # MCP 工具定义(Zod Schema + 元数据)
├── helpers/ # 工具函数(错误格式化等)
└── types/ # TypeScript 类型定义
核心依赖:
项目使用 TypeScript 全程类型安全,ESM 模块格式,零 any 类型妥协。测试套件基于 Jest(v30),396 个测试用例覆盖全部 87 个 handler 文件,达到了语句/分支/函数/行 100% 覆盖率。
这是本项目最具挑战性的环节。QuickBooks API 强制要求 OAuth 2.0 认证,用户必须:
.env**开发环境(Sandbox)**最简单,只需配置 http://localhost:8000/callback 即可完成认证。运行 npm run auth 后浏览器自动打开,完成登录后令牌写入 .env。
生产环境的坑在于:Intuit 不接受 http://localhost 作为生产模式的回调地址,必须是公网 HTTPS URL。官方推荐使用 ngrok 建立隧道,将 https://<id>.ngrok-free.app/callback 注册到 Intuit App 的 Redirect URI 中,完成首次握手后就不需要了——刷新令牌会自动在 .env 中续期(100 天有效)。
在 Claude Code 的 MCP 配置中添加本地 MCP 服务器后,AI 助手就能直接调用 QuickBooks 工具:
{
"mcpServers": {
"quickbooks": {
"command": "node",
"args": ["dist/index.js"],
"env": {
"QUICKBOOKS_CLIENT_ID": "...",
"QUICKBOOKS_CLIENT_SECRET": "...",
"QUICKBOOKS_REFRESH_TOKEN": "...",
"QUICKBOOKS_REALM_ID": "...",
"QUICKBOOKS_ENVIRONMENT": "sandbox"
}
}
}
}
安全控制通过环境变量实现:QUICKBOOKS_DISABLE_WRITE=true 抑制所有写操作(创建/更新/删除),只保留只读工具;get_* 和 search_* 类工具永远不可屏蔽。
尽管功能完整,这个项目有几个不可忽视的门槛:
1. OAuth 认证是最大障碍。对于不熟悉 Intuit 生态的开发者,光是创建 App、理解 sandbox vs production、配置 redirect URI 就可能耗费数小时。ngrok 方案虽然可行,但增加了额外的维护负担。
2. 无 Web UI 或容器化。项目不提供 Dockerfile,官方也不打算做一键部署。每个用户的本地环境都是独一无二的——Node.js 版本、npm 依赖、.env 路径都可能成为问题。
3. QuickBooks API 速率限制。生产环境有严格的 API 调用频率限制,大批量数据同步场景下需要自行实现退避重试逻辑,当前仓库没有内置这个能力。
4. 权限粒度。当前通过 DISABLE_* 环境变量控制的是工具大类,而非字段级权限。如果需要限制 AI 只能访问特定客户或特定报表,目前无原生支持。
QuickBooks 在全球拥有超过 700 万中小企业用户,是会计软件市场的绝对领导者。Intuit 推出官方 MCP Server 的意义远超技术本身——它代表了一种趋势:主流 SaaS 平台正在为 AI 助手标准化 API 集成层。
在此之前,开发者要集成 QuickBooks 需要自己实现 OAuth、处理令牌刷新、解析 QBO API 的 XML/JSON 响应。现在,通过 MCP 协议,一个 Claude Code 对话就能完成「查询本月应收款 → 找到最大欠款客户 → 创建催款邮件草稿」的全流程。
git clone https://github.com/intuit/quickbooks-online-mcp-server.git
cd quickbooks-online-mcp-server
npm install
npm run build
# 配置 .env 后
npm run auth # 完成 OAuth 握手
适合人群:使用 QuickBooks Online 的财务人员/开发者,希望通过 AI 助手提升日常账务处理效率;以及 MCP 协议研究者,学习如何将企业级 SaaS API 封装为 AI 可调用工具的最佳实践。