MCP核心架构解析,赋能AI智能体(上)


在全力挖掘大语言模型(LLMs)全部潜力的过程中,我们常常遭遇一个棘手难题:如何接入像 Slack、GitHub 这类热门工具,以及本地文件系统所提供的各式各样独特的应用程序编程接口(API)。尽管借助多种工具,大语言模型能够与这些 API 建立连接,但该过程往往需要编写代码来实现连接搭建。 

对于使用 Cursor 或 Claude Desktop 等桌面应用程序的用户而言,状况更为棘手。由于无法手动添加新工具,其操作灵活性大打折扣。 

图片[1]-MCP核心架构解析,赋能AI智能体(上) - AI资源导航站-AI资源导航站

那有没有可能,存在一套预先构建的工具,能够无缝对接并融入现有的桌面应用程序。

没错,模型上下文协议(MCP)就这样诞生了,该协议正致力于打造这样的便捷体验。作为一种极具创新性的解决方案,MCP 允许用户创建个性化的工具集,这些工具集可直接嵌入到应用程序中,为用户带来前所未有的便捷与高效。

MCP 允许为大语言模型(LLMs)设定各类指令,比如针对 GitHub 的“获取代码库”或者“对拉取请求发表评论”,为用户带来流畅无阻的使用体验。 

无论是通过已有的桌面应用程序,还是自行开发的软件,MCP 客户端都能轻松与服务器通信,以激活这些工具。

随着 MCP 服务器相关市场逐渐涌现,众多企业和个人开发者都跃跃欲试,想要推出自家的解决方案。

这样的趋势,对于开发者或使用者来说都是利好,开发者可以从琳琅满目的现成工具中自由挑选,优化大语言模型工作流程,提升项目执行效率 。而对于大多数使用者来说,我们使用的产品/工具能力将大幅度提升,使用起来更加便捷高效。

01 从最近比较火的智能体角度来讲,什么是 MCP ?

图片[2]-MCP核心架构解析,赋能AI智能体(上) - AI资源导航站-AI资源导航站

MCP 是一个有状态且能保留上下文的框架,旨在支持人类与 AI 智能体之间进行智能的多步骤交互。与将每个请求视为孤立事件的传统应用程序编程接口(API)调用不同,MCP 引入了一个持久且不断演进的上下文层,它使 AI 系统能够保留记忆、动态学习,并随时间推移自主行动。

根据 modelcontextprotocol.io 的介绍,MCP 基于以下三大支柱构建:

  1. 有状态性:维护特定会话和长期记忆。

  2. 互操作性:可在不同模型、工具和数据源之间无缝协作。

  3. 以智能体为中心的设计:在既定范围内优先实现自主决策。

02 MCP 的核心架构:

了解 Client、Server 和 LLM 之间的联系

MCP 具备灵活且可扩展的架构,能够促进大语言模型(LLM)应用程序与各类集成之间实现无缝通信。下面将简单讲解其核心架构组件及相关概念。

02.1 概述

MCP 采用“客户端 – 服务器”架构,其中:

  1. 主机(Hosts):发起连接的大语言模型应用程序(例如 Claude Desktop 或集成开发环境)。

  2. 客户端(Clients):在主机应用程序内运行,与对应的服务器保持一对一的连接。

  3. 服务器(Servers):为客户端提供关键的上下文、工具及提示信息。

图片[3]-MCP核心架构解析,赋能AI智能体(上) - AI资源导航站-AI资源导航站

02.2 服务器进程


服务器进程包含以下组件:

  1. 主机:承载交互活动的应用程序。

  2. 传输层:负责推动客户端与服务器之间通信的层级。

  3. MCP 客户端:与 MCP 服务器进行通信的实体。

  4. MCP 服务器:管理工具、上下文,并处理来自 MCP 客户端请求的组件。

这种架构确保了大语言模型能够高效访问并利用工具和资源,从而提升其在各类应用中的功能。

02.3 MCP 的核心组件

1. 协议层:协议层负责消息的构建、将请求与响应关联起来,以及定义高层次的通信模式。

主要类包括:

  1. 协议(Protocol)

  2. 客户端(Client)

  3. 服务器(Server)

2. 传输层:传输层负责管理客户端与服务器之间的实际通信,支持多种传输机制:

  1. 标准输入 / 输出传输(Stdio Transport):利用标准输入 / 输出进行通信,非常适合本地进程。

  2. 基于服务器发送事件(SSE)的 HTTP 传输:服务器向客户端发送消息采用服务器发送事件(SSE)方式,客户端向服务器通信则使用 HTTP POST 请求。

所有传输机制均借助 JSON – RPC 2.0 进行消息交换。如需了解 MCP 消息格式的详细信息,请参考官方文档。

3. 消息类型:MCP 定义了几种关键的消息类型。

  1. 请求(Requests):期望接收方给出响应。

  2. 结果(Results):表示对请求的成功响应。

  3. 错误(Errors):表明请求失败。

Last but not least

2025,Agent 的面纱即将解开。

MCP 正在打开智能体的更多可能性,它可以让开发者的开发流程更加顺畅,也可以让使用者操作起来高效便捷。

© 版权声明
THE END
喜欢就支持一下吧
点赞73 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片