QuickBooks自然语言会计服务

通过MCP协议连接Claude和QuickBooks Online,使用自然语言查询会计数据,包括发票、支出、报告等。

  • by NyxToolsDev
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 NyxToolsDev/quickbooks-mcp-server

使用说明

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开发应用程序

  1. 首选 developer.intitu.com
  2. 创建应用程序并选择 QuickBooks在线和支付
  3. 在...之下 密钥和OAuth,注意你的 客户端ID 和 客户端密钥
  4. 添加 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