qb-auto——QuickBooks MCP服务器
MCP(模型上下文协议)服务器,为QuickBooks Online自动化提供Claude Code本机工具。
替换50K代币 browser_snapshot 通过有针对性的DOM提取(约200-500个令牌)和复合Playwright操作进行往返,在一次工具调用中完成整个工作流程。
工具
| 工具 | 说明 |
|---|---|
qb_page_state | 检查当前页面/对话框状态(~50个标记) |
qb_list_invoices | 使用可选的客户筛选器列出所有可见发票 |
qb_invoice_state | 检查未结发票(行项目、总计) |
qb_receive_payment | 记录付款(导航→ fill → save → 确认) |
qb_create_invoice | 使用行项目创建新发票 |
qb_delete_line_item | 从现有发票中删除一行 |
qb_edit_payment_amount | 编辑现有付款金额 |
qb_batch_receive_payments | 按顺序记录多笔付款 |
qb_report | 运行任何具有日期范围选项的QBO报告(30+报告类型) |
qb_report_pnl | 损益表 |
qb_report_balance_sheet | 资产负债表(资产、负债、权益) |
qb_report_ar_aging | 应收账龄汇总(谁欠,逾期多久) |
qb_report_customer_balance | 客户余额汇总 |
qb_report_open_invoices | 未付发票 |
qb_report_vendor_balance | 供应商余额汇总 |
代币节省
| 工作流 | 之前(快照) | 之后(MCP) | 节省 |
|---|---|---|---|
| 收到付款 | ~290K代币 | ~13K代币 | 95% |
| 创建发票 | ~350K代币 | ~18K代币 | 95% |
| 完整会话(5次操作) | ~500K代币 | ~45K代币 | 91% |
设置
先决条件
- Python 3.10+
mcp和playwright包裹- Chrome运行远程调试:
google-chrome --remote-debugging-port=9222
安装
pip install mcp playwright
playwright install chromium使用克劳德代码注册
添加 ~/.mcp.json:
{
"mcpServers": {
"quickbooks": {
"type": "stdio",
"command": "python3",
"args": ["/path/to/qb-auto/server.py"]
}
}
}配置
默认情况下,服务器通过端口9222上的CDP(Chrome DevTools协议)连接到Chrome。设置 CDP_PORT 变量in server.py 如果使用不同的端口。
建筑
- 提取器:通过注入的JavaScript函数
page.evaluate()使用ARIA选择器从QB的DOM返回紧凑的JSON - 行动:使用完成剧作家工作流程
getByRole()和getByLabel()--ARIA稳定选择器,在QB页面重新加载后仍然有效 - 剧本:
PLAYBOOK.md包含手动使用的完整参考browser_evaluate/browser_run_code
文件
| 文件 | 目的 |
|---|---|
server.py | 配备15个工具的MCP服务器 |
extractors.js | 独立JS提取器函数(参考) |
actions.js | 剧作家动作模板(参考) |
PLAYBOOK.md | 手动浏览器自动化的快速参考 |
运作原理
- 克劳德打电话来
qb_receive_payment(invoice_num="6865", amount="22500", method="ACH") - 服务器通过CDP连接到您的Chrome浏览器
- 导航到QB发票,找到发票,打开付款对话框
- 填写方法、金额、保存、处理确认
- 返回紧凑的JSON结果(约200个令牌)
没有浏览器快照。没有5万个代币页面。一次工具调用=一次完整操作。
许可证
麻省理工学院
