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 是一个开放规范,提供 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 通信。
# Claude Code 启动此进程并通过 stdin/stdout 通信
npx -y @anthropic-ai/shopify-dev-mcp@latest
优点:设置简单,无需网络配置,安全(仅限本地) 缺点:仅限本地,每个服务器实例一个客户端 最适合:开发工具、Claude Code、Cursor
SSE(服务器推送事件)
使用 HTTP 配合服务器推送事件进行流式响应。服务器作为 Web 服务运行。
# 服务器运行在一个 URL 上
http://localhost:3000/sse
优点:可通过网络访问,多个客户端可以连接,可穿越防火墙 缺点:设置更复杂,需要 HTTP 服务器 最适合:共享团队服务器、远程访问
流式 HTTP
最新的传输方式,使用标准 HTTP 请求并支持可选的流式传输。这是生产部署的推荐传输方式。
# 服务器端点
http://localhost:3000/mcp
优点:标准 HTTP 语义,易于部署,支持有状态和无状态操作 缺点:最新的传输方式,目前工具支持较少 最适合:生产部署、云托管服务器
本地使用 Claude Code 开发时使用 stdio。它不需要任何配置——只需将 Claude Code 指向 MCP 服务器命令即可。当需要在团队间共享 MCP 服务器或远程访问时,使用 SSE 或 HTTP。
MCP 基本原语
MCP 定义了四种服务器可以暴露的核心原语:
工具(Tools)
工具是 AI 模型可以调用来执行操作的函数。它们是最常用的原语。
{
"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 可以访问的文件或文档。
{
"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)
提示词是预编写的模板,帮助用户完成常见任务。它们面向用户——以建议或斜杠命令的形式显示。
{
"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 不是你应用的 Shopify API 集成的替代品。你的生产应用应通过经过认证的客户端直接使用 Shopify Admin API。MCP 是一个通过为 AI 助手提供对 Shopify 生态系统的结构化、受控访问来增强你的开发工作流的工具。
Shopify 的 MCP 生态系统
Shopify MCP 生态系统包含多个服务器,每个服务器服务于不同的目的:
每个服务器在本模块的后续章节中都有详细介绍。
设置你的第一个 MCP 服务器
以下是向 Claude Code 添加 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 服务器并探索其功能。