mcpField
S
Shopify MCP Proxy & Mock Server (ShopifyMCPMockShop)

Shopify MCP Proxy & Mock Server (ShopifyMCPMockShop)

本地服务
github.com/ramakay商业与营销1366 周前更新

关于 Shopify MCP Proxy & Mock Server (ShopifyMCPMockShop)

Shopify MCP Proxy & Mock Server (ShopifyMCPMockShop) 是面向 Shopify 开发者的 MCP 服务,可通过 Storefront API 查询商品和管理购物车。默认连接 mock.shop,便于无需真实商店凭据进行开发与测试。

主要功能

  1. 01查询商店、商品和系列
  2. 02支持商品搜索、筛选与分页
  3. 03创建和修改购物车
  4. 04通过 ToolAnnotations 标示操作影响
  5. 05使用 mock.shop 进行沙盒测试

适用场景

  1. 01在无真实凭据时测试 Shopify 集成
  2. 02检索商品和系列信息
  3. 03通过 Storefront API 更新购物车
  4. 04检查服务向 MCP 客户端声明的能力

MCP 相关

该服务通过 stdio 与 MCP 客户端通信,并将客户端请求转发至 Shopify Storefront API;默认使用 mock.shop。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Shopify MCP 代理与模拟服务(ShopifyMCPMockShop)

本项目实现了一个模型上下文协议(MCP)服务,作为 Shopify Storefront API 的智能桥接和代理。它独特地支持 mock.shop,无需真实商店凭据即可安全地进行开发和测试。

该服务通过**标准输入/输出(stdio)**进行通信,因此适合与 Claude Desktop 和 Cursor 等客户端进行本地集成。

动机

通用 AI 开发工具和现成的 MCP 服务往往承诺很多,却可能缺乏透明度、安全机制(如显式的 ToolAnnotations)、稳定性或受控开发和测试所需的特定功能,尤其是在针对 Shopify 这类快速演进的 API 时。

本项目源于对可靠的开源 Shopify MCP 服务的需求,它能够:

  • 优先考虑安全性: 深度集成 mock.shop,提供关键的沙盒环境,实现无风险开发和准确测试,而不影响线上商店。
  • 强调透明度与控制: 让开发者(及其 AI 合作伙伴)确切了解与 Shopify API 的交互方式,包括使用的 API 版本以及操作可能产生的影响(通过 readonly、destructive 等 ToolAnnotations)。
  • 满足特定需求: 为 Shopify 开发工作流提供专为其打造的安全执行引擎,弥补纯信息类工具或闭源商业产品留下的空白。

我们的目标是让开发者能够放心地借助 AI 完成 Shopify 相关任务,因为他们使用的是一款具备明确防护措施和清晰操作上下文的工具。

架构

系统概览

ShopifyMCPMockShop 服务采用分层架构,将 MCP 协议处理与 Shopify API 集成清晰分离:

系统架构

数据流

此时序图展示了典型请求在系统中的流转过程,从用户交互到 API 响应:

数据流图

工具层级

MCP 服务提供了一套全面的工具,并按 Shopify 资源类型组织:

工具层级

本地设置与运行

此服务是一个独立的 Node.js 脚本。

  1. 克隆代码仓库:

    git clone https://github.com/ramakay/ShopifyMockMCP.git
    cd ShopifyMCPMockShop
    
  2. 安装依赖项:

    npm install
    
  3. 构建服务:

    npm run build
    

    此命令会将 TypeScript 代码编译为 JavaScript,并输出到 dist 目录(dist/server.js)。

  4. 配置环境(可选——用于真实商店):

    • 如果你希望连接到真实的 Shopify 商店,而不是 mock.shop,请在运行服务前设置以下环境变量(例如,通过 export 设置,或使用客户端加载的 .env 文件):
      • SHOPIFY_STORE:你的商店域名(例如,your-store.myshopify.com)。用于连接真实商店时必需。
      • SHOPIFY_ACCESS_TOKEN:你的 Storefront API 访问令牌。用于连接真实商店时必需。
      • SHOPIFY_VERSION:可选的特定 Storefront API 版本(例如,2025-04)。默认使用最新稳定版本。
    • 注意: 使用 mock.shop(未设置 SHOPIFY_STORE 时的默认选项)无需任何环境变量。
    • 注意: Admin API 功能目前已禁用,但计划在未来更新中推出。配置变量(USE_ADMIN_API、ADMIN_ACCESS_TOKEN、ADMIN_VERSION)目前尚未使用。
  5. 运行: MCP 客户端(如 Claude Desktop 或 Cursor)会根据 stdio 配置自动启动此服务。你无需手动运行 npm run start。请参阅下方的“用法”部分。

在 Cursor 或 Claude Desktop 中使用

将 MCP 客户端(Cursor、Claude Desktop)配置为通过 stdio 启动此服务。在相应的配置文件中添加如下条目:

  • Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Cursor: ~/.cursor/mcp.json(或类似路径)
{
  "mcpServers": {
    // ... other servers ...
    "shopify-mcp": {
      "command": "node",
      "args": [
        "/full/path/to/ShopifyMCPMockShop/dist/server.js"
      ],
      "env": {
        // Only needed if connecting to a REAL store:
        // "SHOPIFY_STORE": "your-store.myshopify.com",
        // "SHOPIFY_ACCESS_TOKEN": "your-storefront-token",
        // "SHOPIFY_VERSION": "2025-04"
      },
      "disabled": false,
      "alwaysAllow": []
    }
    // ... other servers ...
  }
}

重要提示:

  • 将 /full/path/to/ShopifyMCPMockShop 替换为克隆仓库所在位置的绝对路径。
  • 仅当连接到真实商店时才添加 env 变量。
  • 修改配置后,重启客户端(Cursor/Claude Desktop)。

可用工具

此 MCP 服务目前提供用于与 Shopify Storefront API 交互的工具。

工具名称说明API
getShopInfo获取商店的基本信息(名称、描述、货币)。Storefront
getProductById获取指定 ID 的商品。如果 includeImages 为 true,则返回 JSON 详情和第一张图片(75px),格式为 base64 ImageContentBlock。Storefront
findProducts搜索/筛选商品,并支持分页/排序。Storefront
getCollectionById获取指定 ID 的商品系列,可选择是否包含商品。Storefront
findCollections搜索/筛选商品系列,并支持分页/排序。Storefront
cartCreate创建新的购物车。Storefront
cartLinesAdd向现有购物车添加商品项。Storefront
cartLinesUpdate更新现有购物车中的商品项(例如数量)。Storefront
cartLinesRemove从现有购物车中移除商品项。Storefront
getCart根据 ID 获取现有购物车的详细信息。Storefront

(注意:getCustomerById 和 createProduct 等 Admin API 工具计划在未来更新中加入,目前已禁用。)

检查服务功能

若要验证服务是否已正确构建,并查看它向 MCP 客户端公布的确切功能,可以使用 package.json 中定义的 inspect 脚本:

# Ensure you have run 'npm install' and 'npm run build' first
# Run this from the project root directory
npm run inspect

此命令会运行编译后的服务(node dist/server.js),并通过标准输入发送标准的 mcp/capabilities 请求。服务会处理该请求,并将其功能(包括可用工具、资源模板和服务信息)作为 JSON 响应打印到标准输出,你可以在终端中查看。此功能有助于调试并确认服务公布的功能。

已知问题

  • 行内图片渲染: Claude Desktop 和 Cursor 等客户端目前会将 ImageContentBlock(当 includeImages 为 true 时由 getProductById 使用)渲染在主文本响应下方的独立 UI 区块中,而不是行内显示。尝试在文本区块中使用 Markdown 或 HTML 图片标签也无法在这些客户端中实现行内渲染。

未来计划

  • 重新集成并测试 Admin API 工具(getCustomerById、createProduct 等)。
  • 添加 Admin API 凭据的配置选项(USE_ADMIN_API、ADMIN_ACCESS_TOKEN、ADMIN_VERSION)。
  • 实现测试框架。
  • 如果客户端支持有所改善,探索资源处理方式。

许可证

MIT 许可证

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。