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!!!

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐