shopify刀片mcp
Shopify管理API MCP服务器,用于Claude和其他LLM代理。令牌高效,安全第一,Sidereal原生。
44种工具,涵盖产品、订单、客户、库存、集合、履行、折扣、元域、网络挂钩和分析-所有这些都通过GraphQL Admin API实现。
为什么另一个Shopify MCP?
Shopify有三个官方MCP(店面、客户账户、开发MCP),但 没有公开管理员API -API商家实际上用来管理他们的商店。社区MCP填补了空白,但缺乏安全基础:
- 安全运维 --写入门控,确认门控的破坏性操作(删除产品、取消订单),在所有错误路径中清除凭证。没有社区MCP门在操作级别写入
- 代币效率 --管道分隔列表、基于光标的分页提示、人类可读的货币、空字段省略——不是燃烧10-50x令牌的原始GraphQL JSON转储
- Sidereal生态系统 --
ecommerce-v1 与4层40个操作签订合同,插件清单,用于未来调度集成的webhook HMAC验证
比较
| 功能 | shopify刀片mcp | @人/shopify开发mcp | cob shopify mcp | shopify店面mcp |
|---|
| API表面 | 管理员GraphQL(完整) | 仅开发工具 | 管理员REST(59个工具) | 仅店面(买方) |
| 令牌高效响应 | 管道分隔,空省略 | N/A(开发工具) | 原始JSON | 原始JSON |
| 写门控 | 每操作环境变量门 | N/A | 无--所有写都打开 | 只读 |
| 破坏性操作确认 | confirm=true 必需 | 不适用 | 无 | 不适用 |
| 凭证清除 | shpat_*, shpss_*,熊 | 未知 | 无 | 无 |
| GraphQL(REST后弃用) | 是(本机) | 不适用 | 否(REST,2024年10月弃用) | 有 |
| Webhook HMAC验证 | 内置工具 | 否 | 否 | 无 |
| 成本跟踪 | 响应中的每个查询成本 | N/A | 否 | 否 |
| GID标准化 | 自动(数字、字符串或完整GID) | 不适用 | 手动 | 不适用 |
| 分析(ShopifyQL) | 内置工具 | 否 | 否 |
| 元字段CRUD | 完整(命名空间过滤) | 否 | 部分 | 否 |
| 测试 | 171个单元测试 | 未知 | 未知 | 不知道 |
| Sidereal集成 | ecommerce-v1合约 | 无 | 无 |
| 运行时 | Python(uv) | Node.js(npx) | Node.js |
代币效率:前后
典型社区MCP (原始GraphQL JSON,约1200个标记):
{"data":{"products":{"edges":[{"node":{"id":"gid://shopify/Product/123","title":"Classic T-Shirt","handle":"classic-t-shirt","status":"ACTIVE","productType":"Shirts","vendor":"TestBrand","tags":["summer","cotton"],"createdAt":"2026-03-15T10:00:00Z","updatedAt":"2026-03-20T14:30:00Z","totalInventory":150,"tracksInventory":true,"priceRangeV2":{"minVariantPrice":{"amount":"29.99","currencyCode":"USD"},"maxVariantPrice":{"amount":"39.99","currencyCode":"USD"}}},"cursor":"abc123"}],"pageInfo":{"hasNextPage":true}}}}
shopify刀片mcp (管道分隔,约80个标记):
Classic T-Shirt | classic-t-shirt | ACTIVE | Shirts | TestBrand | $29.99-$39.99 USD | 150 in stock | tags: summer, cotton
... 24 more (pass after="abc123" to continue)
快速启动
# Install
uv tool install shopify-blade-mcp
# Configure (stdio mode -- default)
export SHOPIFY_STORE_DOMAIN="my-store.myshopify.com"
export SHOPIFY_ACCESS_TOKEN="shpat_..."
# Run
shopify-blade-mcp
克劳德桌面/克劳德代码
{
"mcpServers": {
"shopify": {
"command": "uvx",
"args": ["shopify-blade-mcp"],
"env": {
"SHOPIFY_STORE_DOMAIN": "my-store.myshopify.com",
"SHOPIFY_ACCESS_TOKEN": "shpat_..."
}
}
}
}
HTTP传输(远程/隧道访问)
export SHOPIFY_MCP_TRANSPORT="http"
export SHOPIFY_MCP_HOST="127.0.0.1"
export SHOPIFY_MCP_PORT="8770"
export SHOPIFY_MCP_API_TOKEN="your-bearer-token" # optional, enables auth
shopify-blade-mcp
安全模型
写入门
所有变异操作都需要 SHOPIFY_WRITE_ENABLED=true没有它,服务器是只读的,可以安全地进行分析、审计和探索。
确认登机口
难以或不可能逆转的破坏性操作需要 confirm=true:
- 删除产品
- 取消订单
- 删除折扣
- 删除图元字段
- 删除webhook
凭证清除
Shopify代币(shpat_*, shpca_*, shpss_*)并且从所有错误消息中清除承载令牌。凭据永远不会通过工具响应泄漏。
承载身份验证(HTTP传输)
当 SHOPIFY_MCP_API_TOKEN 如果已设置,则每个HTTP请求都必须包含一个匹配的 Authorization: Bearer 头球通过以下方式进行恒定时间比较 secrets.compare_digest.
GID标准化
所有工具都接受灵活的资源标识符——数字ID(123)、纯字符串或完整的Shopify GID(gid://shopify/Product/123).自动标准化。
配置
| 变量 | 必填 | 描述 |
|---|
SHOPIFY_STORE_DOMAIN | 是 | 存储域(my-store.myshopify.com) |
SHOPIFY_ACCESS_TOKEN | 是 | 管理员API访问令牌(shpat_...) |
SHOPIFY_API_VERSION | 无 | API版本(默认 2025-04) |
SHOPIFY_WRITE_ENABLED | 否 | 设置为 true 启用写入操作 |
SHOPIFY_WEBHOOK_SECRET | 否 | HMAC验证的Webhook签名密钥 |
SHOPIFY_MCP_TRANSPORT | 没有 | stdio (默认)或 http |
SHOPIFY_MCP_HOST | 否 | HTTP主机(默认 127.0.0.1) |
SHOPIFY_MCP_PORT | 否 | HTTP端口(默认 8770) |
SHOPIFY_MCP_API_TOKEN | 否 | HTTP传输身份验证的承载令牌 |
工具(44)
元(2)
| 工具 | R/W | 说明 |
|---|
shopify_info | R | 配置状态、连接、API版本 |
shopify_shop | R | 商店详细信息(名称、计划、域名、货币、时区) |
地点(1)
| 工具 | R/W | 说明 |
|---|
shopify_locations | R | 具有履行能力的仓库和零售地点 |
产品(5)
| 工具 | R/W | 说明 |
|---|
shopify_products | R | 列出/搜索产品(状态、类型、供应商、查询过滤器) |
shopify_product | R | 产品细节,包括变体、图片、SEO、选项 |
shopify_create_product | W | 创建具有变体的产品 |
shopify_update_product | W | 更新产品字段 |
shopify_delete_product | W+C | 删除产品(需要确认) |
订单(7)
| 工具 | R/W | 说明 |
|---|
shopify_orders | R | 列出订单(状态、财务/履行状态过滤器) |
shopify_order | R | 订单详细信息,包括行项目、地址、交易 |
shopify_search_orders | R | 按订单名称(#1001)或查询字符串搜索 |
shopify_update_order_note | W | 更新订单说明 |
shopify_add_order_tags | W | 为订单添加标签 |
shopify_close_order | W | 关闭订单 |
shopify_cancel_order | W+C | 取消订单(需要确认) |
履行(3)
| 工具 | R/W | 说明 |
|---|
shopify_order_fulfillments | R | 列出订单的履行订单 |
shopify_create_fulfillment | W | 通过跟踪创造满足感 |
shopify_update_tracking | W | 更新现有订单的跟踪信息 |
客户(5)
| 工具 | R/W | 说明 |
|---|
shopify_customers | R | 列出客户(查询筛选器) |
shopify_customer | R | 客户详细信息,包括地址、订单、支出 |
shopify_search_customers | R | 通过电子邮件、姓名或电话搜索 |
shopify_create_customer | W | 创建客户 |
shopify_update_customer | W | 更新客户字段 |
库存(3)
| 工具 | R/W | 说明 |
|---|
shopify_inventory | R | 按地点划分的库存水平 |
shopify_adjust_inventory | W | 相对库存调整(+/-) |
shopify_set_inventory | W | 设置绝对库存数量 |
收藏(4)
| 工具 | R/W | 说明 |
|---|
shopify_collections | R | 列出集合(智能+自定义) |
shopify_collection | R | 产品收藏详情 |
shopify_create_collection | W | 创建自定义集合 |
shopify_collection_add_products | W | 将产品添加到收藏中 |
折扣(3)
| 工具 | R/W | 说明 |
|---|
shopify_discounts | R | 列出折扣代码和自动折扣 |
shopify_create_discount | W | 创建基本折扣码 |
shopify_delete_discount | W+C | 删除折扣(需要确认) |
元字段(3)
| 工具 | R/W | 说明 |
|---|
shopify_metafields | R | 列出图元字段(所有者、命名空间筛选器) |
shopify_set_metafield | W | 设置图元字段值 |
shopify_delete_metafield | W+C | 删除图元字段(需要确认) |
Webhooks(3)
| 工具 | R/W | 说明 |
|---|
shopify_webhooks | R | 列出webhook订阅 |
shopify_create_webhook | W | 创建webhook订阅 |
shopify_delete_webhook | W+C | 删除webhook(需要确认) |
分析(1)
| 工具 | R/W | 说明 |
|---|
shopify_analytics | R | 运行ShopifyQL查询以进行销售、流量和库存分析 |
验证(1)
| 工具 | R/W | 说明 |
|---|
shopify_verify_webhook | R | HMAC-SHA256 webhook签名验证 |
R/W图例: R=读取,W=写入(SHOPIFY_WRITE_ENABLED=true),W+C=写入+确认(confirm=true)
发展
make install-dev # Install with dev + test dependencies
make test # Run tests (171 tests)
make check # Lint + format check + type check
make run # Run server (stdio)
Sidereal集成
此MCP实现了 ecommerce-v1 完全符合要求的服务合同(要求8/8,建议11/11,7/7可选,14/14门控操作)。注册于 Sidereal插件注册表 作为一个经过认证的插件。
许可证
麻省理工学院