使用说明
QuickBooks在线MCP服务器
用于QuickBooks Online集成的模型上下文协议(MCP)服务器的原生Go实现。
快速开始
先决条件
- 转到1.25+
- QuickBooks在线凭证
构建与运行
# Build the binary
go build -o qbo-mcp ./cmd/qbo-mcp
# Run with stdio (default for local MCP clients)
./qbo-mcp
# Or run with HTTP
PORT=3000 ./qbo-mcp
运输方式
- 标准(默认) --适用于Claude Desktop和本地MCP客户端。不
PORT需要环境变量。 - HTTP(流式MCP) --设置
PORT(例如。,PORT=3000)或MCP_TRANSPORT=httpHTTP路径默认为/mcp(可定制MCP_HTTP_PATH).
配置
在中设置环境变量 .env 文件或导出它们。在单租户模式下,如果未提供QuickBooks凭据,服务器将在启动时主动提示您缺少这些凭据:
# QuickBooks API credentials
QUICKBOOKS_CLIENT_ID=your_client_id
QUICKBOOKS_CLIENT_SECRET=your_client_secret
QUICKBOOKS_REALM_ID=your_realm_id
QUICKBOOKS_REFRESH_TOKEN=your_refresh_token
QUICKBOOKS_ENVIRONMENT=sandbox # or 'production'
# Optional: Platform integration (multi-tenant mode)
PLATFORM_INT_URL=https://platform-api.example.com
ENFORCE_AUTH=true
# Optional: Usage tracking
USAGE_REPORT_ENDPOINT=https://usage-tracker.example.com
# Optional: License server integration
LICENSE_SERVER_BASE_URL=https://license-server.example.com
LICENSE_SERVER_JWKS_ENDPOINT=/.well-known/jwks.json
LICENSE_SERVER_ACTIVATION_ENDPOINT=/activate
LICENSE_KEY=your_license_key
# Optional: HTTP server
PORT=3000
MCP_HTTP_PATH=/mcp
获取凭据
- 去 Intuit开发者门户
- 创建或选择您的应用程序
- 复制您的客户端ID和客户端密码
- 添加
http://localhost:3000/callback到应用程序的重定向URI - 获取您的刷新令牌和领域ID(请参阅下面的OAuth流程)
认证
选项1:预配置令牌(建议用于本地开发)
如果您已经拥有刷新令牌和领域ID:
QUICKBOOKS_REFRESH_TOKEN=your_refresh_token
QUICKBOOKS_REALM_ID=your_realm_id
选项2:OAuth流设置
服务器使用您的 QUICKBOOKS_REFRESH_TOKEN。要获得初始令牌,请执行以下操作:
- 在中使用Intuit OAuth流 开发者门户
- 保存返回的
refresh_token和realmId - 将它们添加到您的
.env文件
可用工具
服务器为QuickBooks Online实体提供以下工具操作:
支持的实体:
- 账户
- 比尔
- 账单支付
- 客户
- 员工
- 估计
- 发票
- 物品
- 日记
- 购买
- 供应商
操作:
quickbook_create_*--创建新实体quickbook_get_*--按ID检索实体quickbook_update_*--更新现有实体quickbook_delete_*--删除/停用实体quickbook_search_*--使用条件搜索实体
例子: quickbook_search_customers, quickbook_create_invoice, quickbook_update_bill
平台集成模式
对于多租户部署,设置 PLATFORM_INT_URL 为了实现平台集成:
PLATFORM_INT_URL=https://platform-api.example.com
ENFORCE_AUTH=true
在此模式下:
- 服务器使用请求的承载令牌从API平台获取QuickBooks凭据
- 每个HTTP请求都必须包含一个有效的
Authorization: Bearer <token>头球 - Bearer令牌用于检索经过身份验证的用户的QB项目凭据
Docker部署
构建Docker镜像
docker build -t qbo-mcp-server:latest .
使用compose.yaml运行(HTTP模式)
docker compose up
这将在上运行服务器 http://localhost:3000/mcp
使用docker-compose.yaml运行(生产)
SHA=latest docker compose -f docker-compose.yaml up
这假设凭据位于 .env 并将端口8011映射到集装箱的端口3000。
错误处理
“QuickBooks未连接”
- 验证
.env包含所有必需的变量 - 检查令牌是否有效(刷新令牌定期过期)
- 对于平台模式,确保Bearer令牌有效并且可以访问QB凭据
“缺少授权令牌”
- 在平台集成模式下,包括
Authorization: Bearer <token>在HTTP请求中 - 或禁用
ENFORCE_AUTH=false促进地方发展
“OAuth令牌无效”
- 您的刷新令牌可能已过期;通过OAuth流重新进行身份验证
- 验证
QUICKBOOKS_ENVIRONMENT匹配您的凭据颁发的位置
发展
项目结构
.
├── cmd/
│ └── qbo-mcp/
│ └── main.go # Server entry point
├── internal/
│ ├── config/
│ │ └── config.go # Configuration & environment loading
│ ├── qbo/
│ │ ├── client.go # QB API client
│ │ ├── query.go # Query building
│ │ ├── unwrap.go # Response parsing
│ │ └── customer_delete.go # Entity-specific operations
│ └── tools/
│ ├── register.go # Tool registration
│ └── helpers.go # Utility functions
└── go.mod / go.sum # Go module management
运行测试
go test ./...
构建标志
# Disable CGO for better portability
CGO_ENABLED=0 go build -o qbo-mcp ./cmd/qbo-mcp
# Linux binary for Docker
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o qbo-mcp ./cmd/qbo-mcp
许可证
麻省理工学院
