news 2026/6/10 14:00:04

AI 客户端与 MCP 实现工具协同的过程详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI 客户端与 MCP 实现工具协同的过程详解


这张图清晰地展示了MCP (Model Context Protocol) 协议下,一个大型语言模型(LLM)如何通过客户端(MCP client)与外部工具服务器(MCP server)进行交互的完整流程。其核心思想是:模型不直接访问工具,而是通过一个中间客户端代理来调用工具,并将工具执行结果整合回对话上下文,再由模型继续推理和响应。

下面是对图中各部分及其交互过程的详细解释:


一、三大主要组件

  1. Model(模型)

    • 位于左侧,粉色区域。
    • 图标是一个芯片,代表大型语言模型(如 GPT、Claude 等)。
    • 它是智能决策的核心,负责理解用户意图、决定是否需要调用工具、以及基于工具返回的结果生成最终回复。
  2. MCP client(MCP 客户端)

    • 位于中间,浅绿色区域。
    • 这是一个“中间件”或“代理层”,它管理着一个“Context window”(上下文窗口),这个窗口记录了整个对话的历史、系统指令、工具定义和工具调用结果。
    • 它的主要职责是:
      • 向 MCP server 查询可用工具列表。
      • 根据 Model 的请求,向 MCP server 发起具体的工具调用。
      • 接收并验证工具执行结果。
      • 将工具结果添加到上下文窗口中,供 Model 继续使用。
  3. MCP server(MCP 服务器)

    • 位于右侧,浅灰色区域。
    • 图标是一个类似服务器机柜或工具箱的图标。
    • 它提供实际的工具功能(例如查询数据库、搜索网页、计算数学、调用 API 等)。
    • 它响应 MCP client 的请求,执行具体操作并返回结果。

二、核心交互流程详解

整个过程遵循一个“对话-决策-调用-反馈-再对话”的循环:

第一阶段:初始化与获取工具列表

  1. Client → Server:tools/list
    • MCP client 启动后,首先向 MCP server 发送tools/list请求,以获取当前可用的工具清单。
  2. Server → Client:tools/list result
    • MCP server 返回工具列表,包含每个工具的定义(Tool1 def,Tool2 def),比如工具名称、描述、输入参数格式等。
  3. Client 内部处理:
    • MCP client 将这些工具定义写入自己的“Context window”中,作为后续对话的背景知识。

✅ 此时,Model 还未参与,这是客户端为后续交互做准备。


第二阶段:第一轮对话与工具调用

  1. User → Client → Model:User msg 1

    • 用户发送第一条消息(User msg 1)给 MCP client。
    • MCP client 将此消息连同之前的System promptTool1 defTool2 def一起打包,作为完整的上下文发送给 Model。
  2. Model → Client:Assistant msg 1

    • Model 基于上下文进行推理,可能认为需要调用某个工具才能回答问题,于是生成一条特殊的“助手消息”(Assistant msg 1),内容可能是:“我需要调用 Tool1 来获取数据。”
  3. Client → Server:tools/call (tool1)

    • MCP client 解析 Model 的回复,识别出这是一个工具调用请求。
    • 它根据Tool1 def构造合法的调用参数,然后向 MCP server 发送tools/call (tool1)请求。
  4. Server → Client:tools/call result

    • MCP server 执行 Tool1,并将执行结果(如查询到的数据、计算结果等)返回给 MCP client。
  5. Client 内部处理:

    • MCP client 将Call tool1(调用请求)和Call tool1 result(调用结果)都添加到 Context window 中,保持上下文的完整性。
  6. Client → Model: 更新后的上下文

    • MCP client 将包含新工具调用和结果的完整上下文再次发送给 Model。
  7. Model → Client:Assistant msg 2

    • Model 再次处理更新后的上下文,现在它知道 Tool1 的结果了,于是可以生成一个包含实际答案的回复(Assistant msg 2),例如:“根据查询结果,天气是晴天。”

第三阶段:第二轮对话(可选)

  1. User → Client → Model:User msg 2

    • 用户可能对Assistant msg 2继续提问,触发新一轮对话。
  2. Model → Client: (可能再次调用工具或直接回复)

    • 模型可能再次决定调用另一个工具,或者直接基于现有信息给出回复。

三、关键设计思想总结

  • 解耦(Decoupling):Model 不直接接触外部工具,避免了安全风险和复杂性,所有工具调用由 MCP client 代理。
  • 上下文管理(Context Management):MCP client 维护一个“上下文窗口”,确保 Model 在每次推理时都能看到完整的对话历史和工具执行结果,实现连贯的多轮交互。
  • 标准化协议(Standardized Protocol):通过tools/listtools/call等标准接口,使得任何符合 MCP 协议的工具服务器都可以被接入,增强了系统的扩展性和互操作性。
  • 循环迭代(Iterative Reasoning):模型可以在一次对话中多次调用工具,每次调用后都能获得新的信息,从而支持更复杂的任务解决。

四、类比理解

你可以把这套系统想象成:

一个聪明但没有网络/工具权限的顾问(Model),他需要助手(MCP client)帮他去外面查资料、打电话、算账(MCP server)。助手会把查到的结果记录在笔记本(Context window)上,然后把最新的笔记拿给顾问看,顾问再根据新信息给出最终建议。整个过程顾问只需要思考和下达指令,不需要亲自出门。


总之,这张图描绘的是一个现代化、结构化、可扩展的 AI 应用架构,用于让大模型安全、高效、可控地利用外部能力完成复杂任务。


(END)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 20:38:22

为什么你的Dify API总是返回空响应?深度剖析与修复方案

第一章:Dify API 响应处理的核心机制Dify 作为一款面向 AI 应用开发的低代码平台,其 API 响应处理机制在系统交互中扮演着关键角色。该机制不仅负责将用户请求转发至后端模型服务,还需对返回结果进行结构化封装、错误处理与流式数据整合&…

作者头像 李华
网站建设 2026/6/10 20:39:30

公务员考试申论范文:AI语音朗读优秀答卷供学习

AI语音朗读申论范文:用IndexTTS 2.0重塑公考学习体验 在公务员考试培训领域,一个长期被忽视的问题是——优秀申论答卷往往“只可意会,不可言传”。考生能读到高分范文的文字内容,却难以感知其语言节奏、逻辑重音与情感张力。这些隐…

作者头像 李华
网站建设 2026/6/10 14:53:58

Windows Defender移除工具完整配置指南:从基础配置到高级应用

Windows Defender移除工具是一款专为系统管理员和技术爱好者设计的开源解决方案,能够彻底移除或禁用Windows Defender及其相关安全组件。该工具通过系统级的注册表修改和组件清理,为用户提供完整的Windows安全防护自定义能力。 【免费下载链接】windows-…

作者头像 李华
网站建设 2026/6/10 15:53:07

PHP双重验证终极指南:5分钟部署GoogleAuthenticator安全防护

PHP双重验证终极指南:5分钟部署GoogleAuthenticator安全防护 【免费下载链接】GoogleAuthenticator PHP class to generate and verify Google Authenticator 2-factor authentication 项目地址: https://gitcode.com/gh_mirrors/go/GoogleAuthenticator 在当…

作者头像 李华