人工智能-基础篇-27-模型上下文协议--MCP到底怎么理解?对比HTTP的区别?
MCP = 让AI拥有“自动调用工具”的能力。就像手机里的“语音助手”不仅能听懂你的话,还能自动帮你打开应用、查天气、定闹钟一样,MCP是AI的“工具调用协议”,让AI能直接调用各种工具(比如数据库、代码、API)完成任务。
1、HTTP协议的调用过程
HTTP 是互联网的基础协议,就像“快递员”——你明确告诉快递员要寄什么包裹(请求),快递员把包裹送到指定地址(服务器),再带回回执(响应)。整个过程是被动、单向、需要手动管理的。
1、HTTP的基本流程
(1)客户端发起请求
- 例如:浏览器发送GET /weather?city=北京。
- 请求包含:方法(GET/POST)、头部(元数据)、正文(数据)。
(2)服务器接收请求并处理
- 服务器解析请求,执行逻辑(如查询天气)。
(3)服务器返回响应
- 响应包含:状态码(如200表示成功)、头部、正文(如天气数据)。
(4)客户端处理响应
- 浏览器解析数据并展示给用户。
2、HTTP的局限性
- 需要手动管理上下文:
比如会话状态(Session ID)需要客户端每次请求都带上,否则服务器不知道你是谁。 - 流式响应复杂:
如果想实时更新数据(如聊天消息),需要分块传输(Chunked)或长轮询(SSE)。 - 工具调用需自定义:
比如调用天气API,需要提前定义接口(OpenAPI规范),客户端和服务端都要按规则实现。 - 多模态支持依赖MIME类型:
发送图片、音频时需要额外编码(如Base64)和类型声明(Content-Type)。
2、MCP协议的调用过程
MCP是专为AI场景设计的协议,就像一个“智能管家”——它不仅能理解你的需求(如“查天气”),还能主动记住上下文(比如你的位置偏好)、自动调用工具(如天气服务)、管理多模态数据(文字+图片)。
1、MCP的核心工作流程
MCP基于客户端-服务器架构,分为三个角色:
- MCP主机(Host):发起请求的设备或程序(如Claude Desktop、AI工具)。
- MCP客户端(Client):与服务器建立连接,转发请求和响应。
- MCP服务器(Server):托管工具和资源(如数据库、API),执行操作。
2、MCP的调用步骤
以“用户问北京天气”为例:
(1)主机发起请求
- 用户输入:“北京天气如何?”
- MCP主机(如Claude Desktop)将问题转化为结构化请求,发送给MCP客户端。
(2)客户端转发请求
- MCP客户端(集成在主机中)通过JSON-RPC 2.0协议将请求发送到MCP服务器。
(3)服务器处理请求
- 服务器解析请求,发现需要调用天气工具(get_weather)。
- 服务器自动调用工具,传递参数(city: 北京)。
(4)工具执行并返回结果
- 天气工具查询实时数据,返回结果(如“晴,25°C”)。
(5)服务器响应客户端
- 服务器将结果封装为结构化响应(JSON格式),包含工具调用结果或自然语言回复。
(6)客户端返回主机
- MCP客户端将结果传递给主机,主机生成最终回复(如“北京今天晴,25°C”)。
3、MCP的核心优势
-
原生上下文管理:
服务器自动维护对话历史(如角色设定、用户偏好),无需手动传递Session ID。
类比:管家记得你上次说喜欢喝咖啡,下次自动为你准备咖啡。 -
声明式工具调用:
工具调用通过 JSON 声明,无需手动编写接口代码。
json示例:
{
"tool_call": {
"name": "get_weather",
"args": {"city": "北京"}
}
}
-
流式响应原生支持:
服务器可以逐Token返回结果(如AI生成的文本),无需分块传输。
类比:管家一边煮咖啡一边告诉你进度,而不是等煮好后一次性端给你。 -
多模态统一封装:
文本、图像、音频等数据可以直接封装在JSON中,无需额外编码。
json示例:
{
"content": [
{"type": "text", "text": "这是北京的天气预报"},
{"type": "image", "data": "base64_encoded_image"}
]
}
- 双向通信:
服务器可以主动推送消息(如通知用户天气突变),而 HTTP 需要客户端轮询。
3、对比:HTTP vs MCP
4、如何通俗理解MCP?
1、类比“智能管家”
- HTTP:你需要一步步告诉快递员:“去哪取货、送到哪、签收后回来”。
- MCP:你只需要说“我要寄快递”,管家会自动完成所有步骤(联系快递员、填写单据、跟踪物流)。
2、类比“手机助手”
- HTTP:你需要手动打开多个App(天气、地图、日历)来完成任务。
- MCP:手机助手自动整合所有工具,一句“明天北京开会”就能帮你查天气、规划路线、设置提醒。
3、类比“自动化车间”
- HTTP:每个工序都需要人工切换设备(如车床、铣床)。
- MCP:流水线自动调用不同工具,完成复杂生产任务。
5、实际案例:MCP如何工作?
假设你在使用Claude Desktop(一个支持MCP的AI工具):
(1)用户输入:“帮我分析一下这份财报的收入趋势。”
(2)MCP主机(Claude Desktop):
- 自动调用文件解析工具(read_file),读取本地财报文件。
(3)MCP服务器: - 执行read_file工具,将文件内容返回给主机。
(4)主机分析数据: - 生成图表(调用generate_chart工具)。
(5)服务器执行工具: - 返回图表图片(多模态数据)。
(6)最终回复: - 主机将分析结果和图表整合,展示给用户。
整个过程无需手动操作,MCP自动协调工具和数据,就像管家帮你完成所有琐事。
6、为什么选择MCP?
- 对开发者:减少重复开发,专注业务逻辑(如直接调用工具,无需写API)。
- 对用户:更流畅的交互体验(如实时流式回复、自动记忆上下文)。
- 对AI应用:高效支持复杂场景(如多模态生成、动态工具调用)。
7、总结
1、MCP是什么?
MCP = 让AI拥有“自动调用工具”的能力。
就像手机里的“语音助手”不仅能听懂你的话,还能自动帮你打开应用、查天气、定闹钟一样,MCP是AI的“工具调用协议”,让AI能直接调用各种工具(比如数据库、代码、API)完成任务。
2、MCP和HTTP的区别
3、举个生活中的例子
想象你有一个“智能微波炉”,你对它说:
- 传统方式(HTTP):
你说:“加热1分钟。” → 微波炉只能执行固定指令(比如启动60秒)。 - MCP方式:
你说:“帮我热牛奶。” → 微波炉自动调用“热牛奶模式”(比如根据牛奶量调整功率和时间),完成后告诉你“牛奶已热好”。
一句话总结:
MCP就是让AI像人一样思考:遇到问题时,先想想“有没有工具能用”,然后自动调用工具解决问题,最后用自然语言告诉你结果。
向阳而生,Dare To Be!!!
更多推荐
所有评论(0)