AI大模型-6:MCP原理和开发

张开发
2026/4/16 1:16:28 15 分钟阅读

分享文章

AI大模型-6:MCP原理和开发
一、MCP介绍定义MCPModel Context Protocol模型上下文协议 是由 Anthropic 于 2024 年 11 月提出的一种开放标准协议旨在为 AI 模型如大语言模型 LLM提供一种统一的方式来连接和访问外部数据源、工具和服务。可以把 MCP 理解为 AI 世界的 USB-C 接口 —— 就像 USB-C 为各种设备提供了统一的连接标准一样MCP 为 AI 模型与外部系统之间提供了统一的交互协议。定位连接Agent、RAG、Skill的“中间层”负责标准化调度、权限管理、上下文维护当驾驶员Agent想打开空调他不需要知道压缩机的工作原理他只需要按下中控台的标准化按钮MCP 接口。MCP 将“打开空调”的指令标准化让 Agent 能无缝调用任何品牌的空调Skill。在旧式 AI 中驾驶员Agent可能需要专门学习如何操作某一款特定的空调Skill。而有了 MCP就像汽车有了标准化的 CAN 总线任何符合标准的设备如新加的自动驾驶仪、氛围灯都能即插即用Agent 无需重新学习。核心能力统一调度接收Agent的调用请求根据请求类型需要知识/需要执行分发到对应的RAG或Skill组件接口标准化为RAG、Skill提供统一的调用接口避免不同组件“接口不兼容”的问题降低系统集成成本上下文与权限管理保存任务进度、用户偏好、会话状态同时控制Agent对RAG/ Skill的调用权限避免违规操作异常处理当RAG检索失败、Skill调用超时或权限不足时统一处理并反馈给Agent让Agent重新调整决策。类比电脑的USB-TypeC接口——不管是U盘、显示器还是充电器都能通过这个统一接口连接电脑MCP就相当于这个“统一接口”让Agent、RAG、Skill能高效、安全地协同工作。二、核心架构MCP 采用经典的 客户端-服务器Client-Server 架构角色说明MCP Host宿主AI 应用程序本身如 IDECopilot、Claude Desktop 等MCP Client客户端嵌入在 Host 中负责与 MCP Server 建立连接、发送请求MCP Server服务端轻量级服务程序封装了对外部资源/工具的访问能力通信协议MCP 基于 JSON-RPC 2.0 协议进行通信支持两种传输方式stdio通过标准输入/输出通信使用场景本地进程如本地脚本、CLI 工具HTTPStreamable HTTP通过 HTTP 请求通信使用场景远程服务。MCP 的三大核心能力MCP Server 可以向 Client 暴露三种类型的能力1. Tools工具模型可以调用的函数/操作例如查询告警事件、创建 TAPD 需求、执行数据库查询以你的配置为例s1sPplEvent 提供了 ListEvent、UpdateEvent 等工具2. Resources资源模型可以读取的数据例如文件内容、数据库记录、API 响应3. Prompts提示模板预定义的提示词模板帮助模型更好地完成特定任务三、MCP工作原理核心原理MCP 协议的服务发现机制MCP 协议的设计灵感类似于 OpenAPI/Swagger 或 gRPC 的服务反射它内置了一套标准的服务发现Service Discovery流程详细步骤第一步初始化连接Initialize当 IDE 启动或加载 MCP 配置时客户端向你配置的 URL 发送一个 initialize 请求{jsonrpc: 2.0,method: initialize,params: {protocolVersion: 2024-11-05,clientInfo: { name: CodeBuddy, version: 1.0 },capabilities: {}}}服务端返回它支持的能力比如是否支持 tools、resources、prompts 等。返回格式{jsonrpc:2.0,id:1,result:{protocolVersion: 2025-03-26,capabilities: {experimental: {},tools: {listChanged: false}},serverInfo: {name: newrpc_mcp_server,version: 0.0.1}}}第二步列出工具tools/list客户端发送 tools/list 请求{jsonrpc: 2.0,method: tools/list}服务端返回所有注册的工具定义包括{tools: [{name: ListBiz,description: 查询业务列表...,inputSchema: {type: object,properties: {biz_name: { type: string, description: 业务名 },start_time: { type: string, description: 开始时间 }},required: []}},{name: ListBizDecl,description: 查询全部业务定义列表...}// ... 其他工具]}第三步调用工具tools/call当 AI 决定使用某个工具时客户端发送 tools/call 请求{jsonrpc: 2.0,method: tools/call,params: {name: ListEventDecl,arguments: {}}}类比理解四、总结简单来说MCP 就是一个让 AI 模型能够安全、标准化地调用外部工具和访问外部数据 的协议。它解决了以往每个 AI 应用都需要为每个外部服务单独写集成代码的问题实现了 一次接入处处可用 的目标。

更多文章