购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 MCP是如何工作的

MCP并不复杂,这个协议的核心是定义了三个角色并明确了它们之间的协作模式。

1.1.1 主机-客户端-服务器

aa 1.MCP主机

MCP主机(有时简称主机 )是MCP的中心枢纽,它既是用户与大模型直接交互的终端,又是协调外部资源的调度中心。

主机具有双重客户端的属性。

aa 作为与大模型交互的客户端:接收用户输入并请求大模型生成回答。所有支持MCP的AI应用(主要包括AI对话助手、智能体、AI编辑器),都可以看作主机。

aa 作为服务协调的MCP客户端:主机创建并管理多个客户端实例(与服务器一一对应)。在请求大模型生成回答的过程中,主机可以通过客户端实例请求外挂的服务器获取额外的数据或者执行特定的任务。主机把从外挂的服务器获取的数据或者执行任务的结果,作为上下文补充给大模型,让大模型生成更加符合用户需求的回答。

aa 2.MCP服务器

MCP服务器(有时简称服务器)是MCP的核心组件,主要负责对接外部数据或服务,并通过标准的数据格式将响应内容发送给MCP客户端。

我们可以将MCP服务器理解为外部数据或服务的一个代理网关,所有的数据交互都通过该代理网关进行。

比如,高德地图(作为数据或服务提供方)开放了其路程规划的API:在MCP出来之前,AI应用需要通过编码的方式,自行对接高德地图API;有了MCP之后,高德地图就可以实现一个MCP服务器,并通过它暴露自己的能力,而支持MCP的AI应用可以直接集成此MCP服务器,不需要额外的对接工作。

aa 3.MCP客户端

MCP客户端(有时简称客户端)是MCP主机与MCP服务器之间的桥梁。客户端“寄生”于主机中,由主机创建并进行调度,客户端与服务器进行连接,从而实现与外部数据或服务的交互。

cc MCP是基于经典的C/S(客户端-服务器)架构设计的。MCP客户端是相对于MCP服务器的概念,请注意,本书先介绍的是MCP服务器,然后是MCP客户端,目的就是想体现“有了连接服务器的需求,主机才创建了客户端实例”。不过出于表述习惯,我们依然称其为“主机-客户端-服务器”架构。MCP主机要想调用一个外部的MCP服务器,就需要创建一个MCP客户端,才能进行彼此的连接,MCP客户端与MCP服务器是一一对应的。

而MCP主机本身是把大模型作为交互对象的客户端,我们称之为“大模型客户端”。尽管在某些场景中,我们容易混淆“大模型客户端”和“MCP客户端”,但在系统架构层面,两者应该明确区分——“大模型客户端”是面向用户(用户可见)的AI应用 ,“MCP客户端”是由MCP主机创建的进程。

官方给出的MCP架构如图1-2所示(关于MCP架构的相关内容,我们还会在第2章深入讲解)。

图1-2 MCP架构图

1.1.2 举个例子来理解

用一个具体的例子来理解MCP的运行机制。假设用户要在Claude 中使用高德地图MCP服务器来进行路程规划,路程规划的流程如下所示。

1.高德地图把自己的路程规划能力以API的形式开放;同时提供一个MCP服务器,对接自身的API,提供给所有客户端使用。

2.用户打开Claude,配置了高德地图MCP服务器的调用方式和密钥。

3.用户向Claude发送问题:“我想下周从北京开车去上海,帮我规划一条最省时的路线。”

4.Claude请求大模型,告诉大模型有一个叫作高德地图的MCP服务器可用,其中包含一个路程规划工具。

5.大模型回复Claude,需要请求高德地图MCP服务器调用路程规划工具,查询参数是:“出发地=北京,目的地=上海”。

6.Claude创建一个内部的MCP客户端程序。

7.Claude内部的MCP客户端程序请求高德地图MCP服务器。

8.高德地图MCP服务器将驾驶路线信息返回给MCP客户端程序。

9.Claude把查到的驾驶路线和用户最初的问题一起发送给大模型,请求大模型回答用户的问题。

10.有了驾驶路线作为上下文信息,大模型回复用户的问题,返回更为精准的回答。

11.Claude将回答呈现给用户。

用一幅图来描述这个过程,如图1-3所示

图1-3 在Claude中使用高德地图MCP服务器的交互流程

cc 在这个例子中,Claude是主机,通过外挂高德地图MCP服务器,让大模型有了路程规划能力。

同样的原理,任意提供数据或服务的第三方,都可以通过MCP服务器,暴露自身的数据或服务能力,包括:互联网上的各类服务,本地电脑上的各类文件、数据库等。

任意AI应用,都可以实现MCP,与各类MCP服务器进行通信,将获得的数据作为上下文补充给大模型,旨在让大模型的回答更加精确。

有人把MCP比喻成AI应用的扩展坞,如图1-4所示,我觉得非常贴切。

图1-4 MCP与扩展坞

AI应用就像一台只有有限接口的笔记本电脑,无法直接访问外部数据或服务。MCP则扮演了“扩展坞”的角色,通过标准化的协议接口,为AI应用提供连接各种外部系统的能力。

通过MCP,AI应用不再受限于大模型的能力边界,而是能够像连接了扩展坞的笔记本电脑一样,灵活地接入各种外部系统,实现更强大的功能。 tLKHjawOU+cH3S5puyHmo5NAw84VJz0yQaPuZOKiAQCkeGANeDo3AaXToy/9jefB

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开