Shopmonkey MCP服务器

A. 模型上下文协议(MCP) 包装的服务器 Shopmonkey REST API(v3),使AI代理和LLM能够与商店管理数据进行交互——工作订单、客户、车辆、库存、预约、付款、劳动力、罐装服务、webhooks等。
特性
- 64工具 涵盖Shopmonkey API的11个资源组
- 双重运输 --stdio用于本地/桌面使用,Streamable HTTP用于云部署
- Shopmonkey API密钥认证(承载令牌到Shopmonkey REST API)
- 自动重试,速率限制(429)和服务器错误(5xx)呈指数回退
- 请求并发控制(最多5次同时调用API)
- 每次呼叫请求超时30秒
- 通过以下方式提供多位置支持
SHOPMONKEY_LOCATION_ID或根据请求locationId - 出现Shopmonkey错误代码和消息的描述性错误消息
- HTTP传输包括承载身份验证、健康检查端点和优雅关闭
- 适用于Claude Desktop、Cursor、Claude Code、Claude.ai和任何兼容MCP的客户端
快速开始
git clone https://github.com/AbbottDevelopments/shopmonkey-mcp-server.git
cd shopmonkey-mcp-server
npm install
npm run build复制 .env.example 到 .env 并添加您的Shopmonkey API密钥:
cp .env.example .env
# Edit .env — set SHOPMONKEY_API_KEY to your key启动服务器:
# stdio (local use with Claude Desktop, Cursor, Claude Code)
npm start
# HTTP (cloud deployment, Claude.ai)
npm run start:http运输
服务器提供两个入口点,共享一个工具注册表——使用与部署目标匹配的入口点。
stdio(本地使用)
node dist/index.js
# or: npm start您的MCP客户端直接生成此进程。由Claude Desktop、Cursor和Claude Code使用。看 MCP客户端配置 在......下面
流式HTTP(云部署)
PORT=3000 node dist/http.js
# or: npm run start:httpHTTP服务器侦听 PORT (默认值 3000)并处理MCP请求 /。用于云部署(铁路、渲染)和连接到Claude.ai。
HTTP功能:
- 认证 --设置
MCP_AUTH_TOKEN要求Authorization: Bearer在所有MCP请求上。未设置时开放访问(本地开发)。 - 健康检查 —
GET /health和GET /返回{"status":"ok"}用于负载均衡器探头。 - 优雅关闭 --SIGTERM/SIGINT上的干净退出,超时5秒。
有关云部署说明,请参阅 文档/部署.md.
工具参考
工单(4个工具)
| 工具 | 说明 |
|---|---|
list_orders | 列出带有过滤器(状态、客户、位置)的工作订单。有效状态: Estimate, RepairOrder, Invoice |
get_order | 获取完整的工单详细信息 |
create_order | 创建新的工单 |
update_order | 更新工单字段 |
Shopmonkey API不支持订单删除。看 docs/LIMITIONS.md 了解详情。
客户(6工具)
| 工具 | 说明 |
|---|---|
search_customers | 通过全身查询搜索客户 |
search_customers_by_email | 通过电子邮件地址搜索客户 |
search_customers_by_phone | 按电话号码搜索客户 |
get_customer | 获取完整的客户资料 |
create_customer | 创建新客户(姓名和地址字段) |
update_customer | 更新客户信息 |
电子邮件和电话是Shopmonkey的子资源。创建客户后,使用POST /v3/customer/:id/email和/phone_number附上联系方式。看 docs/LIMITIONS.md.
车辆(7工具)
| 工具 | 说明 |
|---|---|
list_vehicles_for_customer | 列出特定客户的所有车辆 |
lookup_vehicle_by_vin | 按VIN号查找车辆 |
lookup_vehicle_by_plate | 按车牌和地区查找车辆 |
list_vehicle_owners | 列出与车辆相关的车主 |
get_vehicle | 获取完整的车辆详细信息 |
create_vehicle | 添加车辆(可选链接到客户) |
update_vehicle | 更新车辆数据 |
库存和零件(4个工具)
| 工具 | 说明 |
|---|---|
list_inventory_parts | 列出零件库存 |
get_inventory_part | 获取单个零件的详细信息 |
list_inventory_tires | 列出轮胎库存 |
search_parts | 按查询搜索零件目录 |
预约(4个工具)
| 工具 | 说明 |
|---|---|
list_appointments | 列出带有日期和状态过滤器的约会 |
get_appointment | 获取完整的预约详情 |
create_appointment | 预约新的约会 |
update_appointment | 重新安排或更新预约 |
付款(3种工具)
| 工具 | 说明 |
|---|---|
list_payments | 列出订单的付款 |
get_payment | 获取付款详细信息 |
create_payment | 记录付款(amountCents --整数分,例如150.50美元= 15050) |
所有货币值都使用整数分 *Cents 命名。切勿发送十进制美元金额。技术人员和劳动力(4个工具)
| 工具 | 说明 |
|---|---|
list_labor | 列出人工行项目 |
list_timeclock | 技术人员打卡/打卡事件 |
list_users | 列出店铺用户和技术人员 |
get_user | 获取用户/技术人员资料 |
服务和罐装服务(22种工具)
| 工具 | 说明 |
|---|---|
list_services | 在工单上列出服务 |
list_canned_services | 列出预构建的服务模板 |
get_canned_service | 通过行项目获取罐装服务详细信息 |
create_canned_service | 创建新的预设服务模板 |
update_canned_service | 更新罐装服务 |
delete_canned_service | 删除预设服务模板 |
list_customer_deferred_services | 列出推迟(推荐但尚未执行)的服务 |
罐装服务项目 --5种类型(费用、人工、零件、分包、轮胎),具有添加/更新/删除操作:
| 费用 | 人工 | 零件 | 分包合同 | 轮胎 |
|---|---|---|---|---|
add_canned_service_fee | add_canned_service_labor | add_canned_service_part | add_canned_service_subcontract | add_canned_service_tire |
update_canned_service_fee | update_canned_service_labor | update_canned_service_part | update_canned_service_subcontract | update_canned_service_tire |
remove_canned_service_fee | remove_canned_service_labor | remove_canned_service_part | remove_canned_service_subcontract | remove_canned_service_tire |
Webhooks(5个工具)
| 工具 | 说明 |
|---|---|
list_webhooks | 列出所有已注册的Webhook |
get_webhook | 获取webhook详细信息 |
create_webhook | 使用触发器类型注册新的webhook端点 |
update_webhook | 更新webhook |
delete_webhook | 删除webhook |
支持的触发器: Appointment, Customer, Inspection, Inventory, Message, Order, Payment, PurchaseOrder, User, Vehicle, Vendor
报告--综合(3个工具)
| 工具 | 说明 |
|---|---|
report_revenue_summary | 按状态和日期范围的已付款/未付款划分的收入总额 |
report_appointment_summary | 按日期范围的确认状态统计约会次数 |
report_open_estimates | 打开未经授权的估算,以天数计算年龄 |
报告由列表端点合成(每份报告最多100条记录)。对大型商店使用更严格的日期范围。
工作流程和位置(2个工具)
| 工具 | 说明 |
|---|---|
list_workflow_statuses | 获取管道/工作流阶段 |
list_locations | 列出店铺位置 |
MCP客户端配置
克劳德桌面版
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"shopmonkey": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/shopmonkey-mcp-server",
"env": {
"SHOPMONKEY_API_KEY": "your_api_key_here"
}
}
}
}光标
添加到光标MCP设置中:
{
"mcpServers": {
"shopmonkey": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/shopmonkey-mcp-server",
"env": {
"SHOPMONKEY_API_KEY": "your_api_key_here"
}
}
}
}克劳德代码
claude mcp add shopmonkey -e SHOPMONKEY_API_KEY=your_api_key_here -- node /path/to/shopmonkey-mcp-server/dist/index.jsClaude.ai(HTTP传输)
部署 dist/http.js 铁路或渲染 SHOPMONKEY_API_KEY 和 MCP_AUTH_TOKEN 设置为环境变量。看 文档/部署.md 完整的指南。
文档
环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
SHOPMONKEY_API_KEY | 是 | - | Shopmonkey API密钥(设置>集成>API密钥) |
SHOPMONKEY_BASE_URL | 没有 | https://api.shopmonkey.cloud/v3 | API基本URL |
SHOPMONKEY_LOCATION_ID | 否 | -- | 将所有查询范围限定在一个位置(多位置商店) |
MCP_AUTH_TOKEN | 云:是 | -- | HTTP传输身份验证的承载令牌。 云部署所需 --省略它会使端点公开。 |
PORT | 没有 | 3000 | HTTP传输侦听端口 |
服务器自动加载 .env 通过 Dotenv。 如果存在。您还可以通过shell或MCP客户端配置传递变量。
发展
npm run build # Compile TypeScript
npm run dev # Watch mode (tsc --watch)
npm start # Start stdio server
npm run start:http # Start HTTP server
npm test # Run test suite (requires build first)测试套件包括9个测试文件中的186个测试,包括模拟API行为、MCP协议符合性、错误路径和传输验证。
错误处理
服务器处理常见的API场景:
- 缺少API密钥 --设置说明中的描述性错误
- 速率限制(429) --具有指数回退的自动重试(最多3次尝试),尊重
Retry-After头球 - 服务器错误(500502503504) --带回退功能的自动重试
- 请求超时 --30秒中止,并显示明确的错误消息
- 网络故障 --使用回退、可读的错误消息重试
- API错误 --表面Shopmonkey错误代码(
API-xxxxx,ORM-xxxxx)人类可读message领域
