news 2026/4/15 10:56:40

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/3/30 19:29:05

【Dify部署优化秘籍】:如何将Next.js应用首屏时间缩短80%

第一章:Dify Next.js 部署优化概述在构建现代 Web 应用时,Dify 与 Next.js 的结合为开发者提供了强大的 AI 集成能力与高效的前端渲染机制。然而,随着功能迭代和用户规模增长,部署性能、资源利用率与加载速度成为关键挑战。本章聚…

作者头像 李华
网站建设 2026/4/1 22:11:02

Snap2HTML完整操作指南:快速掌握文件结构可视化技巧

Snap2HTML完整操作指南:快速掌握文件结构可视化技巧 【免费下载链接】Snap2HTML Generates directory listings contained in a single, app-like HTML files 项目地址: https://gitcode.com/gh_mirrors/sn/Snap2HTML 还在为凌乱的文件目录而头疼吗&#xff…

作者头像 李华
网站建设 2026/4/7 14:44:35

BongoCat桌面交互伴侣终极指南:从零基础到精通使用

BongoCat桌面交互伴侣终极指南:从零基础到精通使用 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作,每一次输入都充满趣味与活力! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 想要让枯燥…

作者头像 李华
网站建设 2026/4/14 20:03:58

paperzz 期刊论文:从选题到投稿,学术论文写作的 “精准适配工具”

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿 paperzz - 期刊论文https://www.paperzz.cc/journalArticle 对想发期刊的学生或青年学者来说,“写期刊论文” 的难点从来不是 “写文字”,而是 “踩中期刊的偏好”—— 选题要贴合…

作者头像 李华
网站建设 2026/4/11 13:33:49

Dify API数据解析难题:一文解决JSON响应处理常见坑点

第一章:Dify API响应处理概述Dify 作为一个低代码 AI 应用开发平台,提供了强大的 API 接口用于与外部系统集成。其 API 响应通常以 JSON 格式返回,包含执行结果、状态码、消息以及模型生成内容等关键信息。正确解析和处理这些响应是构建稳定应…

作者头像 李华
网站建设 2026/4/4 14:28:32

iOS设备终极解锁指南:使用palera1n安全越狱

iOS设备终极解锁指南:使用palera1n安全越狱 【免费下载链接】palera1n Jailbreak for arm64 devices on iOS 15.0 项目地址: https://gitcode.com/GitHub_Trending/pa/palera1n 你是否想要完全掌控自己的iOS设备,解锁更多定制化功能和第三方应用&…

作者头像 李华