使用说明
QuickBooks MCP服务器
将Claude Desktop和Claude Code连接到QuickBooks Online进行自然语言会计。用简单的英语询问有关发票、费用、报告等问题。
这是什么?
一 MCP(模型上下文协议) 服务器,使克劳德可以直接访问您的QuickBooks Online数据。与其登录QuickBooks并点击报告,不如问克劳德:
“显示按金额排序的所有逾期发票” “我们本季度的损益是多少?” “为Acme Corp开具2500美元的发票”
服务器处理OAuth身份验证、API调用、速率限制和数据格式化。
快速开始
1.安装
pip install quickbooks-mcp
或者从源代码安装:
git clone https://github.com/nyxtools/quickbooks-mcp-server.git
cd quickbooks-mcp-server
pip install -e .
2.创建QuickBooks开发应用程序
- 首选 developer.intitu.com
- 创建应用程序并选择 QuickBooks在线和支付
- 在...之下 密钥和OAuth,注意你的 客户端ID 和 客户端密钥
- 添加
http://localhost:8080/callback作为 重定向URI
3.设置环境变量
export QBO_CLIENT_ID='your_client_id'
export QBO_CLIENT_SECRET='your_client_secret'
4.运行OAuth安装程序
python scripts/setup_oauth.py
这将打开您的浏览器,使用QuickBooks进行授权,并在本地存储令牌(加密)。注意 领域ID 它在末尾打印。
export QBO_REALM_ID='your_realm_id'
5.配置克劳德桌面
添加到您的Claude桌面配置(claude_desktop_config.json):
{
"mcpServers": {
"quickbooks": {
"command": "quickbooks-mcp",
"env": {
"QBO_CLIENT_ID": "your_client_id",
"QBO_CLIENT_SECRET": "your_client_secret",
"QBO_REALM_ID": "your_realm_id"
}
}
}
}
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
6.开始使用它
重新启动Claude Desktop并尝试:
“我目前的银行账户余额是多少?”
全部19个工具
免费等级(9个工具)
| 工具 | 说明 |
|---|---|
list_invoices |
按状态、日期、客户列出和过滤发票 |
get_invoice_details |
包含行项目和付款历史的完整发票详细信息 |
get_overdue_invoices |
所有逾期发票按逾期天数排序 |
list_expenses |
列出带有日期、供应商、金额和类别过滤器的费用 |
get_top_expenses |
任何时期按类别或供应商分组的最高支出 |
get_account_balances |
银行、信用卡或所有账户的当前余额 |
get_account_transactions |
任何具有日期过滤器的帐户的最近交易记录 |
search_customers |
按姓名或带有联系信息的电子邮件搜索客户 |
get_customer_summary |
客户财务摘要:已开票、已付款、未付款 |
高级级别(10个工具)-每月29美元
| 工具 | 说明 |
|---|---|
get_profit_and_loss |
任何时期的损益报告,包括收入/支出明细 |
get_balance_sheet |
截至任何日期的资产负债表(资产、负债、权益) |
get_cash_flow |
现金流量表(经营、投资、融资) |
get_accounts_receivable_aging |
按客户分类的应收账款账龄(当前/30/60/90+天) |
get_accounts_payable_aging |
按供应商列出的应付账款账龄(当前/30/60/90+天) |
create_invoice |
创建包含行项目、截止日期和备忘录的发票 |
record_payment |
根据发票记录付款,并注明方法和参考 |
create_expense |
记录供应商、金额、类别和日期的费用 |
get_financial_health |
关键比率:流动比率、DSO、燃烧率、跑道 |
compare_periods |
与百分比变化并排比较 |
在以下网址获取高级许可证 nyxtools.dev/quickbooks-mcp
在您的环境中设置它:
export LICENSE_KEY='your_license_key'
用法示例
发票
“显示1月份的所有发票” “哪些发票逾期了?先给我看最差的发票” “获取1042号发票的详细信息” “显示Acme Corp的未结发票”
开支
“这个月我们花了多少钱?” “显示我们本季度的十大支出类别” “今年我们在亚马逊花了多少钱?”
账户
“我们的银行余额是多少?” “显示检查中的最后20笔交易” “我们公司信用卡的余额是多少?”
客户
“找到客户约翰·史密斯” “给我一份客户456的财务摘要” “搜索有未清余额的客户”
报告(高级)
“给我看看本季度的损益表” “调出资产负债表” “我们这个月的现金流怎么样?” “显示AR老化报告” “谁是我们付款最慢的客户?”
写入操作(高级)
“为客户123创建发票:网站设计2500美元,托管150美元/月,净30美元到期” “在1042号发票上记录1000美元的支票付款” “3月15日用信用卡向Office Depot支付250美元的用品费用”
分析(高级)
“我们的财务状况有多健康?显示关键比率” “将本月与上月进行比较” “这个季度与去年同期相比怎么样?”
配置
所有配置都是通过环境变量进行的:
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
QBO_CLIENT_ID |
是 | QuickBooks OAuth2客户端ID | |
QBO_CLIENT_SECRET |
是 | QuickBooks OAuth2客户端密码 | |
QBO_REALM_ID |
是 | QuickBooks公司/领域ID | |
QBO_REDIRECT_URI |
没有 | http://localhost:8080/callback |
OAuth重定向URI |
LICENSE_KEY |
否 | 高级许可证密钥 | |
QBO_SANDBOX |
没有 | false |
使用沙盒环境 |
TOKEN_STORE_PATH |
没有 | ~/.quickbooks-mcp/tokens.json |
令牌存储位置 |
LOG_LEVEL |
没有 | INFO |
日志记录级别 |
安全
- 静态加密的令牌 使用机器特定密钥(Fernet+PBKDF2)
- 令牌自动刷新 --访问令牌持续60分钟,刷新令牌100天
- 代码中未存储凭据 --所有秘密都通过环境变量
- 内置速率限制 尊重QuickBooks API节流
- 输入净化 在所有查询参数上防止注入
发展
# Clone and install with dev dependencies
git clone https://github.com/nyxtools/quickbooks-mcp-server.git
cd quickbooks-mcp-server
pip install -e ".[dev]"
# Run tests
pytest
# Run with coverage
pytest --cov=quickbooks_mcp
# Lint
ruff check src/ tests/
# Type check
mypy src/
项目结构
quickbooks-mcp-server/
src/quickbooks_mcp/
auth/ # OAuth2 flow and encrypted token storage
client/ # QBO REST API client with rate limiting
tools/ # MCP tool implementations (19 tools)
utils/ # Money (Decimal), formatting, license validation
server.py # MCP server setup and tool registration
config.py # Environment-based configuration
scripts/
setup_oauth.py # Interactive OAuth setup
examples/ # Config examples and usage guide
tests/ # Pytest test suite
故障排除
“未找到QuickBooks令牌”
运行OAuth安装程序:
python scripts/setup_oauth.py
“令牌刷新失败”
您的刷新令牌可能已过期。重新运行OAuth安装程序。
“QuickBooks API错误(HTTP 403)”
验证您的应用程序是否具有 com.intuit.quickbooks.accounting 范围。
“价格受QuickBooks限制”
服务器自动处理速率限制。如果您看到此错误,请等待60秒。
“这是一个高级功能”
某些工具需要许可证密钥。 在这里买一个 或设置 LICENSE_KEY 在您的环境中。
沙盒模式
为了在不影响真实数据的情况下进行测试:
export QBO_SANDBOX=true
使用Intuit开发人员仪表板上的开发密钥(而不是生产)。
许可证
MIT许可证。看 许可证 了解详情。
版权所有(c)2026 NyxTools