Skip to main content

MCP — 模型上下文协议

“A USB-C port for AI applications.”

什么是MCP

MCP(Model Context Protocol,模型上下文协议)是连接AI应用与外部系统的开源标准协议。它由Anthropic发起,设计灵感源自微软的Language Server Protocol (LSP)。MCP的设计哲学与LSP一致:通过标准化的协议层,将N x M的集成问题简化为N + M。 官方规范: modelcontextprotocol.io 规范仓库: github.com/modelcontextprotocol/specification 当前协议版本: 2025-11-25 通俗解释: USB-C让你的手机连接充电器、显示器、U盘。MCP让AI应用连接数据库、API、文件系统和各种工具。一个标准接口,连接一切。

广泛的生态支持

MCP已被以下AI应用和开发工具支持:

MCP架构

三个参与方

MCP是一个有状态协议,采用客户端-服务器架构,有三个核心参与方:

两层架构

传输方式

MCP的核心能力(Primitives)

Server端 Primitives

1. Tools(工具) — 模型控制 AI模型自主决定何时调用的可执行函数。通过 tools/list 发现,通过 tools/call 执行。支持 inputSchema 定义输入参数,可选 outputSchema 定义结构化输出。
2. Resources(资源) — 应用控制 为AI应用提供上下文数据的数据源,通过URI标识(支持RFC 6570 URI模板)。通过 resources/list 发现,通过 resources/read 读取,支持 resources/subscribe 订阅变化。资源附带Annotations(audience、priority、lastModified等元数据)。 3. Prompts(提示词) — 用户控制 可复用的交互模板。通过 prompts/list 发现,通过 prompts/get 获取(支持arguments参数化)。

Client端 Primitives

内容类型

MCP支持五种内容类型,均可携带Annotations:

MCP在商务中的应用场景

MCP Server开发流程

1. 定义工具

确定你的MCP Server要暴露哪些工具。每个工具需要:
  • 名称和描述(description直接影响AI模型的选择决策)
  • 输入参数的JSON Schema(inputSchema
  • 可选的输出Schema(outputSchema,定义结构化返回格式)
  • 执行逻辑

2. 选择SDK

MCP提供多语言SDK:
  • TypeScript/JavaScript: @modelcontextprotocol/sdk
  • Python: mcp
  • 其他语言: 通过JSON-RPC 2.0自行实现

3. 实现Server

4. 部署

  • 本地Server: 使用stdio传输,在用户机器上运行
  • 远程Server: 使用Streamable HTTP传输,部署在你的服务器上

5. 用户连接

用户在Claude/ChatGPT/VS Code等支持MCP的应用中添加你的Server连接信息即可使用。

协议生命周期

MCP连接有三个阶段:

章节目录

  1. MCP核心概念 — 架构详解、参与方角色、协议生命周期
  2. 数据层协议 — JSON-RPC 2.0消息格式、能力协商
  3. 传输层 — stdio vs Streamable HTTP、OAuth 2.1认证
  4. 构建MCP Server — TypeScript/Python完整开发指南
  5. 商务MCP Server — 电商场景的MCP Server设计模式
  6. 资源与提示词 — Resources和Prompts的使用
  7. 安全与认证 — OAuth 2.1集成、PKCE、权限管理
  8. 测试与调试 — MCP Inspector使用指南
  9. 部署指南 — 本地部署vs远程部署
  10. 实战案例 — 不同场景的MCP Server实现

AI提示词:构建商务MCP Server

MCP是一个活跃发展的协议,规范持续更新中。本章内容基于截至2026年4月的官方文档(协议版本 2025-11-25)。请始终以 modelcontextprotocol.io 的最新版本为准。