当前位置: 首页 > news >正文

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

一、MCP介绍


定义

MCP(Model 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 应用程序本身,如 IDE(Copilot)、Claude Desktop 等
MCP Client(客户端):嵌入在 Host 中,负责与 MCP Server 建立连接、发送请求
MCP Server(服务端):轻量级服务程序,封装了对外部资源/工具的访问能力

通信协议


MCP 基于 JSON-RPC 2.0 协议进行通信,支持两种传输方式:
stdio:通过标准输入/输出通信,使用场景:本地进程,如本地脚本、CLI 工具
HTTP(Streamable 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 应用都需要为每个外部服务单独写集成代码的问题,实现了 "一次接入,处处可用" 的目标。

http://www.jsqmd.com/news/647615/

相关文章:

  • Web前端技术第四次作业:表单实验报告
  • CANopen | 网络管理NMT实战 - 从命令解析到自主状态控制
  • 突破传统化学研究的终极AI助手:深度解析ChemBERTa如何实现分子智能预测的革命
  • awk以及ansible
  • 多模态大模型云端协同部署的“隐性成本黑洞”:带宽错配、冷启动惩罚、跨AZ语义一致性丢失(独家压测报告)
  • Sunshine终极配置指南:如何搭建专业级游戏串流服务器
  • 前后端连通性测试以及前端页面总体设计
  • 第一阶段:Java入门基础
  • 模型并行不是万能药,但这次是:详解MoE+CLIP架构下跨模态梯度同步失效的5大陷阱及修复补丁
  • 慧视项目的图片上传与前后端联通实现
  • WindowResizer技术解密:打破Windows窗口限制的数字助手
  • 验收检测报告怎么写才靠谱
  • 爱依克KF-05C可视电子签名板重磅来袭
  • 【多模态大模型监控告警体系构建指南】:20年SRE专家亲授5大核心模块、7类典型失效场景与实时拦截SOP
  • 区块链隐私保护技术
  • 16.修正 LangGraph Agent 的路由层,让 Router 真正只负责选工具
  • 跨境电商商品采集skill来了,可部署openclaw,不用Python也能搞定爬虫
  • 为什么Redis的KEYS命令在生产环境是禁止使用的?
  • 运维工程师最后的护城河正在崩塌?:多模态大模型自动解析监控截图、语音工单、异常堆栈的3层可信推理机制
  • 网络运维Windows Server管理
  • 计算机毕业设计:Python全国降水数据采集与预警平台 Flask框架 数据分析 可视化 大数据 AI 大模型 爬虫 数据大屏(建议收藏)✅
  • 便携式综合气象观测仪
  • NLP学习笔记03:文本分类——从 TF-IDF 到 BERT
  • 嵌入式学习day3:数组与结构体
  • 【独家首发】央企信创云实战:基于Qwen-VL与InternVL的多模态运维Agent(已通过等保2.0三级认证)
  • CodeQ 项目数据库设计
  • 数学建模研究者可通过爱毕业(aibiye)快速实现论文复现与自动化排版
  • amcl_pose vs tf的位姿输出频率
  • SpringBoot入门核心要点
  • 零知识证明系统:zk-SNARK协议的工作原理与构造