什么是 MCP?
MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 于 2024 年推出的开放协议标准,通过 JSON-RPC 2.0 规范实现 AI 应用与外部工具、数据源的标准化连接,解决了 AI Agent 与异构系统集成的碎片化问题。
快速了解
| 全称 | 模型上下文协议 |
|---|---|
| 创建时间 | 2024 年 11 月由 Anthropic 发布 |
| 规范文档 | 官方规范 |
工作原理
MCP 是 AI Agent 技术栈的基础设施层,定义了「Agent 能连接什么」。其核心架构采用客户端-服务器模式:MCP Client(如 Claude Desktop、Cursor)负责发起请求,MCP Server 暴露特定能力(Resources 资源、Tools 工具、Prompts 提示词模板)。协议支持两种传输方式:stdio(本地进程通信)和 HTTP with SSE(远程服务)。MCP 采用急加载(Eager Loading)模式,在会话开始时通过 tools/list 请求获取所有可用工具的完整 JSON Schema 定义。这种设计简化了实现,但会产生较高的 token 消耗(约 16000+ tokens)。为解决这一问题,Anthropic 于 2025 年推出了 Skill 标准作为补充,通过渐进式披露机制实现按需加载。MCP + Skill 共同构成了现代 AI Agent 的能力扩展体系:MCP 负责「连接」,Skill 负责「指导」。
主要特点
- JSON-RPC 2.0 协议:标准化的请求-响应通信格式,支持批量调用和错误处理
- 三类能力原语:Resources(只读数据源)、Tools(可执行操作)、Prompts(提示词模板)
- 能力协商机制:客户端和服务器在连接时交换支持的功能列表
- 双向传输支持:stdio(本地高性能)和 HTTP+SSE(远程可扩展)
- 急加载模式:会话开始时加载所有工具定义,简化实现但 token 消耗较高
- 开放生态:已被 Claude、Cursor、Zed、Replit、Codeium 等主流工具采用
常见用途
- IDE 集成:连接代码仓库、执行终端命令、读写文件系统
- 数据库访问:执行 SQL 查询、获取表结构、数据分析
- API 网关:统一封装 REST/GraphQL API,提供给 Agent 调用
- 知识库检索:连接向量数据库、文档系统,支持 RAG 应用
- DevOps 工具链:集成 CI/CD、监控告警、日志分析系统
示例
Loading code...常见问题
MCP 和传统 API 有什么区别?
MCP 是专门为 AI Agent 设计的协议,而传统 API 是为人类开发者设计的。MCP 的核心区别在于:1) 提供工具的完整 JSON Schema 描述,让 AI 能理解如何使用;2) 支持能力协商机制;3) 统一了 Resources、Tools、Prompts 三类能力原语;4) 基于 JSON-RPC 2.0 标准化通信格式。
如何开发一个 MCP Server?
开发 MCP Server 的基本步骤:1) 安装 @modelcontextprotocol/sdk;2) 创建 Server 实例并声明支持的能力;3) 实现 tools/list 处理器返回工具定义;4) 实现 tools/call 处理器执行具体操作;5) 选择传输方式(stdio 或 HTTP+SSE)并启动服务。官方提供了 TypeScript 和 Python SDK。
MCP 的 Resources、Tools、Prompts 分别是什么?
这是 MCP 定义的三类能力原语:1) Resources(资源)- 只读数据源,如文件内容、数据库查询结果;2) Tools(工具)- 可执行的操作,如发送邮件、创建文件、调用 API;3) Prompts(提示词模板)- 预定义的提示词,帮助 AI 更好地完成特定任务。
MCP 支持哪些客户端?
目前支持 MCP 的主流客户端包括:1) Claude Desktop - Anthropic 官方桌面应用;2) Cursor - AI 代码编辑器;3) Zed - 高性能代码编辑器;4) Replit - 在线 IDE;5) Codeium - AI 编程助手。这些客户端都可以连接 MCP Server 来扩展 AI 的能力。
MCP 的急加载模式有什么问题?如何解决?
MCP 采用急加载模式,在会话开始时加载所有工具定义,这会产生较高的 token 消耗(约 16000+ tokens)。为解决这个问题,Anthropic 于 2025 年推出了 Skill 标准作为补充,通过渐进式披露机制实现按需加载,只在需要时才加载相关工具的详细信息。