什么是 MCP?Model Context Protocol 详解

张开发
2026/4/3 16:04:35 15 分钟阅读
什么是 MCP?Model Context Protocol 详解
什么是 MCPModel Context Protocol 详解TL;DR:MCPModel Context Protocol是一个开放协议标准就像 AI 领域的USB-C 接口让 AI 应用能够标准化地连接外部数据源、工具和工作流。本文深入解析 MCP 的架构、核心概念和使用场景。MCP 是什么MCPModel Context Protocol是一个开源协议标准用于将 AI 应用连接到外部系统。通过 MCPAI 应用如 Claude、ChatGPT可以连接数据源本地文件、数据库工具搜索引擎、计算器工作流专业提示词模板把 MCP 想象成 AI 应用的USB-C 接口——就像 USB-C 提供了连接电子设备的标准化方式一样MCP 提供了 AI 应用连接外部系统的标准化方式。MCP 能做什么场景描述个人助理访问 Google Calendar 和 Notion成为更个性化的 AI 助手代码生成Claude Code 可以根据 Figma 设计稿生成整个 Web 应用企业聊天连接企业内多个数据库让用户通过聊天分析数据3D 设计AI 模型在 Blender 中创建 3D 设计并打印为什么 MCP 重要角色收益开发者减少构建和集成 AI 应用的时间和复杂度AI 应用/Agent接入数据源、工具和应用的生态系统增强能力终端用户获得更强大的 AI 应用能访问数据并代为执行操作架构解析MCP 角色┌─────────────────────────────────────────────────────────┐ │ MCP Host (AI 应用) │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ Client1 │ │ Client2 │ │ Client3 │ │ Client4 │ │ │ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │ └───────┼───────────┼───────────┼───────────┼────────────┘ │ │ │ │ ▼ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌─────────────────────┐ │ Server A│ │ Server B│ │ Server C │ │ (本地) │ │ (本地) │ │ (远程) │ │ 文件系统│ │ 数据库 │ │ Sentry │ └─────────┘ └─────────┘ └─────────────────────┘三个核心角色角色说明MCP HostAI 应用如 Claude Desktop、VS Code协调多个 MCP 客户端MCP Client维护与 MCP Server 的连接为 Host 获取上下文MCP Server提供上下文数据给 MCP 客户端的程序两层架构MCP 由两层组成1. 数据层Data Layer基于 JSON-RPC 2.0 的通信协议定义生命周期管理核心原语Tools、Resources、Prompts2. 传输层Transport Layer传输方式说明Stdio标准输入/输出流用于本地进程通信延迟最低Streamable HTTPHTTP POST SSE支持远程服务支持 Bearer Token、API Key 等认证核心原语PrimitivesMCP 定义了服务器可以暴露的三种核心原语1. Tools工具AI 应用可以调用的可执行函数{name:filesystem_read,description:读取文件内容,inputSchema:{type:object,properties:{path:{type:string}}}}2. Resources资源为 AI 应用提供上下文的数据源{uri:file:///project/schema.sql,name:database_schema,description:数据库表结构}3. Prompts提示模板帮助构建与语言模型交互的可复用模板{name:code_review,description:代码审查提示模板,arguments:[{name:language,required:true}]}生命周期管理MCP 是有状态的协议需要通过握手协商能力// 客户端发起初始化{jsonrpc:2.0,id:1,method:initialize,params:{protocolVersion:2025-06-18,capabilities:{elicitation:{}},clientInfo:{name:my-app,version:1.0.0}}}// 服务器响应{jsonrpc:2.0,id:1,result:{protocolVersion:2025-06-18,capabilities:{tools:{listChanged:true},resources:{}},serverInfo:{name:example-server,version:1.0.0}}}初始化交换完成三件事协议版本协商— 确保客户端和服务器版本兼容能力发现— 双方声明支持的特性Tools、Resources、Prompts身份交换— 交换应用信息用于调试MCP 生态支持MCP 是一个开放协议被广泛支持AI 助手ClaudeChatGPT开发工具Visual Studio CodeCursorClaude CodeJetBrains IDEs更多客户端modelcontextprotocol.io/clients快速开始构建 MCP Serverfrommcp.server.fastmcpimportFastMCP mcpFastMCP(my-server)mcp.tool()defcalculate(a:int,b:int)-int:两数相加returnabmcp.resource(config://app)defget_config()-str:返回应用配置return{version: 1.0.0}连接 MCP Server以 Claude Desktop 为例编辑~/Library/Application Support/Claude/claude_desktop_config.json{mcpServers:{filesystem:{command:npx,args:[-y,modelcontextprotocol/server-filesystem,/path/to/dir]},sentry:{command:npx,args:[-y,sentry/mcp],env:{SENTRY_API_KEY:your-api-key}}}}实际应用示例示例 1文件系统访问# 启动文件系统 MCP 服务器npx-ymodelcontextprotocol/server-filesystem ~/projects让 AI 直接读取、搜索和分析本地文件。示例 2数据库查询# 启动 PostgreSQL MCP 服务器npx-ymodelcontextprotocol/server-postgres\postgresql://user:passlocalhost/dbnameAI 可以执行 SQL 查询、获取表结构、分析数据。示例 3Slack 集成{mcpServers:{slack:{command:uvx,args:[mcp-slack],env:{SLACK_BOT_TOKEN:xoxb-...}}}}AI 可以读取频道消息、发送通知、管理 Slack。与 OpenClaw 的结合OpenClaw 在 2026.4.1 版本中增强了 MCP 支持作为 MCP 服务器openclaw mcp serve允许 Codex、Claude Code 等客户端直接连接 OpenClaw通过 MCP 访问飞书、Telegram 等渠道的对话。作为 MCP 注册中心openclaw mcpsetfilesystem{command:npx,args:[-y,modelcontextprotocol/server-filesystem,/home]}openclaw mcp list集中管理 MCP 服务器配置供 OpenClaw 启动的运行时使用。总结MCP 的核心价值价值点说明标准化一次构建处处运行可组合多个 MCP Server 可以同时连接一个 AI 应用双向通信不仅 AI 调用工具工具也可以调用 AISampling开放生态官方提供 20 参考实现覆盖所有主流场景MCP 正在成为 AI 应用连接外部世界的标准接口。现在开始学习 MCP意味着站在了 AI 工具生态的前沿。参考链接MCP 官方文档MCP 规范MCP SDKsMCP 参考服务器实现OpenClaw MCP 支持项目内容作者胡小纯发布日期2026-04-02联系微信hu–xiaochun个人主页https://胡小纯.cn备用主页https://xn–yets91feqb.cn/技术没有捷径但有方向

更多文章