使用说明
QuickBooks MCP服务器
QuickBooks Online的MCP服务器,专为在日常工作中使用人工智能助手的簿记员、首席财务官和会计师而构建。
让你的人工智能助手提取损益表、创建日记账分录或调查账户余额——使用简单的语言,而不是API有效载荷。
为什么选择此服务器?
Intuit提供 官方MCP服务器 对于开发人员探索QuickBooks API来说,这是一个坚实的起点。此服务器采用了一种不同的方法:它是为 从事图书制作的金融专业人员.
使用自然语言,而不是内部ID
Intuit的服务器要求每个引用都有QuickBooks内部ID——在创建账单之前,您需要查找供应商的ID。此服务器会自动解析名称:
"Create a bill for PG&E, $450 to Utilities, dated 2025-01-15"
→ Vendor, account, and department names are resolved automatically
内置财务报告
这是唯一一个带有报告工具的QuickBooks MCP服务器。在不离开人工智能对话的情况下,提取损益表、资产负债表或试算表——按月份、部门或类别细分。
默认安全
每个创建和编辑操作默认为 草稿/预览模式。在提交之前,你会确切地看到你的书上会写些什么。无意外日记账分录或错误分类的费用。
一个查询工具,而不是几十个
与其为每种实体类型提供单独的搜索工具,不如使用单个SQL query 该工具适用于所有QuickBooks实体。AI助手自然地编写SQL,QuickBooks会对其进行验证——无需维护字段白名单。
"SELECT * FROM Purchase WHERE TxnDate >= '2025-01-01' AND TxnDate <= '2025-01-31'"
生产就绪凭证管理
将凭据存储在本地供个人使用,或存储在AWS Secrets Manager中供共享环境使用。OAuth令牌会自动刷新并在会话之间持久。
概览
| Intuit官方 | 此服务器 | |
|---|---|---|
| 观众 | 开发人员探索API | 记账员、首席财务官、会计师 |
| 名称解析 | 需要内部QB ID | 自动解析名称 |
| 财务报告 | 无 | 损益表、资产负债表、试算表 |
| 写安全 | 立即执行 | 默认情况下为草稿预览 |
| 查询方法 | 特定于实体的搜索工具 | 跨所有实体的类似SQL的查询 |
| 凭证 | 本地 .env file |
本地文件或AWS机密管理器 |
| 分布 | 从GitHub克隆 | npx quickbooks-mcp |
先决条件
- QuickBooks开发人员帐户:注册地址 developer.intitu.com
- Node.js 18+
安装选项
选择适合您用例的设置:
| 设置 | 最适合 |
|---|---|
| NPM安装 | 使用您自己的QuickBooks应用程序快速设置 |
| 本地结账 | 开发、定制 |
| AWS模式 | 共享/生产环境 |
选项1:NPM安装
最简单的开始方式。凭据存储在本地计算机上。
1.创建QuickBooks应用程序
- 首选 developer.intitu.com 并登录
- 创建新应用程序(或选择现有应用程序)
- 转到“密钥和凭据”
- 注意你的 客户端ID 和 客户端密钥
- 在“重定向URI”下,添加:
https://developer.intuit.com/v2/OAuth2Playground/RedirectUrl
2.添加到克劳德代码
添加到您的项目 .mcp.json:
{
"mcpServers": {
"quickbooks": {
"command": "npx",
"args": ["-y", "quickbooks-mcp"]
}
}
}
3.配置凭据
创建 ~/.quickbooks-mcp/credentials.json:
{
"client_id": "your_client_id",
"client_secret": "your_client_secret"
}
4.身份验证
运行Claude代码后,使用 qbo_authenticate 工具:
- 呼叫
qbo_authenticate没有参数来获取授权URL - 在浏览器中打开URL并授权应用程序
- 复制
code和realmId从重定向URL - 呼叫
qbo_authenticate再次使用授权码和领域ID
您的OAuth令牌将被保存并自动刷新。
选项2:本地结账
用于开发或定制。
1.创建QuickBooks应用程序
按照上述选项1的相同步骤进行操作。
2.克隆和构建
git clone https://github.com/laf-rge/quickbooks-mcp.git
cd quickbooks-mcp
npm install
npm run build
3.添加到克劳德代码
添加到您的项目 .mcp.json:
{
"mcpServers": {
"quickbooks": {
"command": "node",
"args": ["/path/to/quickbooks-mcp/dist/index.js"]
}
}
}
4.配置凭据
创建 ~/.quickbooks-mcp/credentials.json 使用您的客户端凭据(与选项1相同),然后运行 qbo_authenticate 以完成OAuth流程。
选项3:AWS模式
适用于共享或生产环境。将凭据存储在AWS Secrets Manager中。
1.创建AWS资源
在秘密管理器中创建秘密:
aws secretsmanager create-secret \
--name prod/qbo \
--secret-string '{
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"access_token": "your_access_token",
"refresh_token": "your_refresh_token",
"redirect_url": "https://developer.intuit.com/v2/OAuth2Playground/RedirectUrl"
}'
将公司ID存储在SSM参数存储中:
aws ssm put-parameter \
--name /prod/qbo/company_id \
--value "your_company_id" \
--type SecureString
2.配置服务器
创建一个 .env quickbooks-mcp目录中的文件:
QBO_CREDENTIAL_MODE=aws
AWS_REGION=us-east-2
QBO_SECRET_NAME=prod/qbo
QBO_COMPANY_ID_PARAM=/prod/qbo/company_id
备注:由于a 已知的克劳德代码错误,环境变量来自
.mcp.json不能可靠地传递给MCP服务器。这.env需要文件解决方法。
3.添加到克劳德代码
{
"mcpServers": {
"quickbooks": {
"command": "node",
"args": ["/path/to/quickbooks-mcp/dist/index.js"]
}
}
}
4.IAM权限
服务器需要以下AWS权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue",
"secretsmanager:PutSecretValue"
],
"Resource": "arn:aws:secretsmanager:*:*:secret:prod/qbo*"
},
{
"Effect": "Allow",
"Action": ["ssm:GetParameter"],
"Resource": "arn:aws:ssm:*:*:parameter/prod/qbo/*"
}
]
}
内联输出模式
默认情况下,大型响应(报告、查询结果)将写入 /tmp 文件,服务器返回文件路径。这在终端环境中适用于Claude Code,但会中断 克劳德桌面版 和 插件环境 模型无法从中读取 /tmp.
集 QBO_INLINE_OUTPUT=true 以内联方式返回所有响应。
选项A——通过 .env 文件 (建议本地结账):
创建一个 .env quickbooks-mcp目录中的文件:
QBO_INLINE_OUTPUT=true
选项B——通过 .mcp.json env块 (建议NPM安装):
{
"mcpServers": {
"quickbooks": {
"command": "npx",
"args": ["-y", "quickbooks-mcp"],
"env": {
"QBO_CREDENTIAL_MODE": "local",
"QBO_CREDENTIAL_FILE": "~/.quickbooks-mcp/credentials.json",
"QBO_INLINE_OUTPUT": "true"
}
}
}
}
备注:由于a 已知的克劳德代码错误,环境变量来自
.mcp.json在某些配置中不能可靠地传递给MCP服务器。如果选项B不起作用,请使用.env文件解决方法。
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
QBO_CREDENTIAL_MODE |
local |
凭证存储: local 或 aws |
QBO_CLIENT_ID |
- | QuickBooks应用程序客户端ID(本地模式) |
QBO_CLIENT_SECRET |
- | QuickBooks应用程序客户端密码(本地模式) |
QBO_CREDENTIAL_FILE |
~/.quickbooks-mcp/credentials.json |
自定义凭据文件路径 |
QBO_INLINE_OUTPUT |
false |
内联返回响应,而不是写入 /tmp 文件夹。在使用Claude Desktop或插件环境时,如果模型无法访问基于文件的输出,则需要此项。 |
QBO_SANDBOX |
false |
使用QuickBooks沙盒环境 |
AWS_REGION |
us-east-2 |
AWS区域(AWS模式) |
QBO_SECRET_NAME |
prod/qbo |
秘密管理器秘密名称(aws模式) |
QBO_COMPANY_ID_PARAM |
/prod/qbo/company_id |
SSM参数路径(aws模式) |
可用工具
| 工具 | 说明 |
|---|---|
| 设置 | |
qbo_authenticate |
设置OAuth凭据(仅限本地模式) |
get_company_info |
获取关联公司信息 |
| 查询和报告 | |
query |
对任何QuickBooks实体运行类似SQL的查询 |
list_accounts |
带过滤的科目表列表 |
get_profit_loss |
损益表(按月、部门、类别等) |
get_balance_sheet |
资产负债表报告 |
get_trial_balance |
试算平衡报告 |
get_profit_loss_detail |
详细的损益表,包括每笔交易(日期、收款人、金额、备忘录) |
get_transaction_list |
所有交易的简单列表——可按部门、账户、类型过滤。涵盖损益表和资产负债表 |
get_general_ledger_detail |
按账户组织的交易级详细信息——可按部门过滤。涵盖损益表和资产负债表 |
query_account_transactions |
影响特定账户的所有交易 |
account_period_summary |
账户的期间摘要(期初/期末余额、借记、贷记、计数) |
| 日记账分录 | |
create_journal_entry |
创建日记账分录(验证借记=贷记) |
get_journal_entry |
按ID获取日记条目 |
edit_journal_entry |
修改现有日记账分录 |
| 账单 | |
create_bill |
创建供应商账单 |
get_bill |
按ID取账单 |
edit_bill |
修改现有账单 |
| 开支 | |
create_expense |
创建支出(现金、支票或信用卡) |
get_expense |
按ID提取费用 |
edit_expense |
修改现有费用 |
| 销售收据 | |
create_sales_receipt |
创建带有物料行的销售收据 |
get_sales_receipt |
按ID获取销售收据 |
edit_sales_receipt |
修改现有销售收据 |
| 发票 | |
create_invoice |
创建包含项目行的发票(客户要求) |
get_invoice |
按ID获取发票 |
edit_invoice |
修改现有发票 |
| 存款 | |
create_deposit |
创建银行存款 |
get_deposit |
按ID提取存款 |
edit_deposit |
修改现有存款 |
| 供应商信用 | |
create_vendor_credit |
创建供应商信用 |
get_vendor_credit |
按ID获取供应商信用 |
edit_vendor_credit |
修改现有供应商信用 |
| 删除 | |
delete_entity |
删除任何交易记录(日记账分录、账单、发票、存款、销售收据、费用、供应商信用) |
令牌刷新
服务器会在每次请求时自动刷新OAuth令牌,并将其持久化回您的凭据存储(本地文件或AWS Secrets Manager)。
发展
npm run dev # Run in development mode
npm run build # Build
npm run typecheck # Type check
故障排除
“未配置QuickBooks凭据”
跑 qbo_authenticate 用于设置OAuth凭据的工具(仅限本地模式)。
“授权码已过期”
授权码仅在几分钟内有效。再次启动OAuth流程。
令牌刷新失败
- 检查您的刷新令牌是否未过期(约100天)
- 验证您的客户端凭据是否正确
- 尝试重新验证
qbo_authenticate
AWS凭据错误
- 确保
.env文件具有QBO_CREDENTIAL_MODE=aws - 检查您的AWS凭据和权限
- 验证密钥和参数名称是否与您的配置匹配