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 **备注**:由于a [已知的克劳德代码错误](https://github.com/anthropics/claude-code/issues/1254),环境变量来自 `.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 [已知的克劳德代码错误](https://github.com/anthropics/claude-code/issues/1254),环境变量来自 `.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` |试算平衡报告|
| `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凭据和权限
- 验证密钥和参数名称是否与您的配置匹配
# QuickBooks MCP服务器
QuickBooks Online的MCP服务器,专为在日常工作中使用人工智能助手的簿记员、首席财务官和会计师而构建。
让你的人工智能助手提取损益表、创建日记账分录或调查账户余额——使用简单的语言,而不是API有效载荷。
## 为什么选择此服务器?
Intuit提供 [官方MCP服务器](https://github.com/intuit/quickbooks-online-mcp-server) 对于开发人员探索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 备注:由于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/*"
}
]
}______________________________________________________________________
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
QBO_CREDENTIAL_MODE | local | 凭证存储: local 或 aws |
QBO_CLIENT_ID | - | QuickBooks应用程序客户端ID(本地模式) |
QBO_CLIENT_SECRET | - | QuickBooks应用程序客户端密码(本地模式) |
QBO_CREDENTIAL_FILE | ~/.quickbooks-mcp/credentials.json | 自定义凭据文件路径 |
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 | 试算平衡报告 |
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凭据和权限
- 验证密钥和参数名称是否与您的配置匹配
