Skip to main content

MCP 基础

模型上下文协议(MCP) 是 Anthropic 创建的开放标准,定义了 AI 模型如何连接到外部数据源和工具。可以把它想象成一个通用适配器——不再需要每个 AI 应用为每个服务构建自定义集成,MCP 提供了一个标准化协议,任何 AI 宿主都可以使用它与任何兼容 MCP 的服务器通信。

对于 Shopify 开发者来说,MCP 特别强大。它允许 Claude Code(和其他 AI 工具)直接与 Shopify 的 API 交互、读取文档、验证主题并管理店铺数据——所有这些都通过一个标准化、可组合的接口完成。

为什么需要 MCP

在 MCP 出现之前,将 AI 模型连接到外部服务需要为每个集成编写自定义代码。如果你想让 Claude 与 Shopify、GitHub 和 Slack 交互,你需要三个独立的自定义集成,具有不同的认证流程、数据格式和错误处理模式。

MCP 通过单一协议解决了这个问题:

  • 对于工具开发者:构建一个 MCP 服务器,它就能与每个兼容 MCP 的 AI 宿主一起工作
  • 对于 AI 宿主:支持一次 MCP,就能访问整个工具生态系统
  • 对于最终用户:无需编写集成代码即可混合搭配工具
MCP 是开源的

MCP 是一个开放规范,提供 TypeScript、Python、Java、Kotlin、C#、Swift 和 Go 的 SDK。任何人都可以构建 MCP 服务器或客户端。规范和 SDK 可在 modelcontextprotocol.io 获取。

架构

MCP 遵循客户端-服务器架构,包含三个不同的层级:

三个层级

宿主(Host):用户交互的应用程序。Claude Code、Cursor、Claude Desktop 和 VS Code Copilot 都是 MCP 宿主的例子。宿主管理用户界面并协调 AI 模型与 MCP 客户端之间的通信。

客户端(Client):由宿主创建,每个服务器连接一个客户端。客户端处理协议协商、能力交换和消息路由。你很少直接与客户端交互——宿主会管理它们。

服务器(Server):一个暴露特定能力的轻量级程序。Shopify MCP 服务器可能暴露用于查询产品的工具、用于读取文档的资源和用于常见操作的提示词。

传输类型

MCP 支持多种传输机制,用于客户端和服务器之间的通信。每种传输方式都有不同的权衡。

stdio(标准输入/输出)

本地开发最常用的传输方式。宿主将 MCP 服务器作为子进程启动,并通过 stdin/stdout 通信。

stdio 传输示例
# Claude Code 启动此进程并通过 stdin/stdout 通信
npx -y @anthropic-ai/shopify-dev-mcp@latest

优点:设置简单,无需网络配置,安全(仅限本地) 缺点:仅限本地,每个服务器实例一个客户端 最适合:开发工具、Claude Code、Cursor

SSE(服务器推送事件)

使用 HTTP 配合服务器推送事件进行流式响应。服务器作为 Web 服务运行。

SSE 传输示例
# 服务器运行在一个 URL 上
http://localhost:3000/sse

优点:可通过网络访问,多个客户端可以连接,可穿越防火墙 缺点:设置更复杂,需要 HTTP 服务器 最适合:共享团队服务器、远程访问

流式 HTTP

最新的传输方式,使用标准 HTTP 请求并支持可选的流式传输。这是生产部署的推荐传输方式。

HTTP 传输
# 服务器端点
http://localhost:3000/mcp

优点:标准 HTTP 语义,易于部署,支持有状态和无状态操作 缺点:最新的传输方式,目前工具支持较少 最适合:生产部署、云托管服务器

哪种传输方式适合 Shopify 开发?

本地使用 Claude Code 开发时使用 stdio。它不需要任何配置——只需将 Claude Code 指向 MCP 服务器命令即可。当需要在团队间共享 MCP 服务器或远程访问时,使用 SSEHTTP

MCP 基本原语

MCP 定义了四种服务器可以暴露的核心原语:

工具(Tools)

工具是 AI 模型可以调用来执行操作的函数。它们是最常用的原语。

示例:Shopify 产品搜索工具
{
"name": "search_products",
"description": "Search for products in the Shopify store by title, vendor, or tag",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query string"
},
"limit": {
"type": "number",
"description": "Maximum results to return",
"default": 10
}
},
"required": ["query"]
}
}

关键特性

  • 模型控制:AI 决定何时调用
  • 可以有副作用(创建、更新、删除)
  • 返回结构化结果
  • 应有清晰、描述性的名称和说明

资源(Resources)

资源提供可加载到上下文中的只读数据。把它们想象成 AI 可以访问的文件或文档。

示例:Shopify API 文档资源
{
"uri": "shopify://docs/admin-api/products",
"name": "Products API Documentation",
"mimeType": "text/markdown",
"description": "Complete reference for the Shopify Admin API Products endpoints"
}

关键特性

  • 应用控制:宿主决定何时加载
  • 只读(无副作用)
  • 可以是静态的(文档)或动态的(实时数据)
  • 支持使用自定义方案的基于 URI 的寻址

提示词(Prompts)

提示词是预编写的模板,帮助用户完成常见任务。它们面向用户——以建议或斜杠命令的形式显示。

示例:Shopify 应用脚手架提示词
{
"name": "scaffold_shopify_app",
"description": "Generate a complete Shopify app scaffold",
"arguments": [
{
"name": "app_type",
"description": "Type of app (remix, custom, hydrogen)",
"required": true
},
{
"name": "features",
"description": "Comma-separated list of features to include",
"required": false
}
]
}

关键特性

  • 用户控制:用户明确选择
  • 返回消息模板(非原始数据)
  • 可以包含来自资源的动态内容
  • 作为对话启动器或工作流触发器

采样(Sampling)

采样允许 MCP 服务器请求 AI 模型生成文本。这使得智能体式的服务器端工作流成为可能,服务器可以利用 AI 的推理能力。

关键特性

  • 服务器发起:服务器请求 AI 补全
  • 人在回路中:宿主应允许用户批准/拒绝
  • 在服务器逻辑中启用多步推理
  • 用于复杂的工具编排
采样是高级功能

大多数 Shopify MCP 服务器不使用采样。它主要在构建需要在工具执行过程中进行复杂推理的自定义 MCP 服务器时有用。如果你只是使用现有的 MCP 服务器,目前可以安全地跳过采样。

MCP 与传统 API 集成的比较

理解 MCP 与直接 API 集成的区别有助于明确何时使用哪种方法。

方面直接 API 集成MCP 集成
设置每个 API 需要自定义代码标准化协议
认证每个 API 有不同的认证流程由服务器处理
发现阅读文档、编写代码自动工具发现
更新手动修改代码服务器独立更新
可组合性难以组合混合搭配服务器
AI 感知模型不知道 API 的存在模型动态发现工具

何时使用直接 API 调用

  • 生产应用代码:你的 Shopify 应用应该直接调用 Admin API,而不是通过 MCP
  • 高性能路径:MCP 添加了协议层;对于延迟敏感的操作,跳过它
  • 简单、稳定的集成:如果你只需要一个 API 端点,MCP 就过度设计了

何时使用 MCP

  • AI 辅助开发:Claude Code 在开发过程中与 Shopify 交互
  • 多工具工作流:将 Shopify 数据与其他服务(分析、CMS、物流)结合
  • 探索和原型设计:无需编写代码即可快速测试 API 操作
  • 文档和 Schema 访问:将 Shopify 文档和 GraphQL Schema 引入 AI 上下文
MCP 用于开发,而非生产

一个常见误解:MCP 不是你应用的 Shopify API 集成的替代品。你的生产应用应通过经过认证的客户端直接使用 Shopify Admin API。MCP 是一个通过为 AI 助手提供对 Shopify 生态系统的结构化、受控访问来增强你的开发工作流的工具。

Shopify 的 MCP 生态系统

Shopify MCP 生态系统包含多个服务器,每个服务器服务于不同的目的:

每个服务器在本模块的后续章节中都有详细介绍。

设置你的第一个 MCP 服务器

以下是向 Claude Code 添加 MCP 服务器的快速预览:

添加 Shopify Dev MCP 服务器
claude mcp add shopify-dev-mcp -s user -- npx -- -y @anthropic-ai/shopify-dev-mcp@latest

这条命令在全局注册了 Shopify Dev MCP 服务器。下次启动 Claude Code 时,它将自动获得 Shopify 文档搜索、GraphQL Schema 内省和主题验证的访问权限。

我们将在后续页面中深入介绍每个 MCP 服务器。

下一步

现在你已经理解了 MCP 架构和基本原语,请继续阅读 Shopify Dev MCP 服务器 来设置 Shopify 的官方 MCP 服务器并探索其功能。