什么是 MCP 客户端?

MCP 客户端是 AI 智能体应用的一个子程序,它与 MCP 服务器进行通信,以获取信息并执行任务。

学习目标

阅读本文后,您将能够:

  • 解释 MCP 客户端和服务器如何交互
  • 了解 MCP 主机
  • 开始在 Cloudflare 上部署 MCP 客户端和服务器

复制文章链接

什么是 MCP 客户端?

模型上下文协议 (MCP) 客户端是一种计算机程序,作为 AI 智能体的一部分或在其指示下,向 MCP 服务器发出请求。MCP 客户端从 MCP 服务器获取的信息帮助 AI 智能体做出决策或执行任务。可以将 MCP 客户端设想为一位助手,它可以预订餐厅或代表其雇主(AI 智能体)跟进人们的要求。

假设 Acme Corp. 开发了一个 AI 智能体,能够自主地根据客户的简单指示(例如"我想为我的九岁孩子布置卧室")下单订购儿童卧室家具套装。为了找到最佳方案,该 AI 智能体需要收集有关可用儿童家具的型号、价格,以及这些家具尺寸与标准卧室规格对比的相关数据。如果家具制造商使用 MCP 暴露这些信息,则 AI 智能体可以要求 MCP 客户端直接请求所需的信息。

MCP 客户端在 MCP 主机内运行:MCP 主机就是一个 AI 智能体或应用。MCP 不同于互联网所基于的 客户端-服务器模型,其中,“客户端”最初被假定为是具有各自 IP 地址的独立设备。MCP 客户端、主机和服务器有可能全部在同一台计算机上运行,尽管并非总是如此。

MCP 主机如何工作

MCP 主机是一个智能体式 AI 应用。除了其他功能,该应用包含一个或多个客户端,这些客户端是主机的辅助程序。这些客户端帮助主机获取必要的信息或采取行动,以响应最终用户的提示词。每个客户端直接与一个 MCP 服务器通信。新增服务器连接需要实例化更多客户端。

图表:最终用户设备运行一个 AI 应用,该应用查询 MCP 客户端,后者查询 MCP 服务器
上图显示了当 MCP 服务器托管于 Cloudflare 时,MCP 客户端和服务器如何在面向用户的应用的后台进行交互。

从最终用户的视角,这一切都隐藏在应用的幕后:他们所见到的仅是将提示词输入 AI 应用,应用随后给出回复或执行他们的请求。但在幕后,该应用至少部分依赖 MCP 客户端和服务器来完成工作。

什么是 MCP 服务器?

MCP 服务器是一种软件程序,旨在支持 MCP 的使用并向 MCP 客户端提供可用信息。MCP 服务器会积极帮助 MCP 客户端完成提示词操作,例如,在必要时请求更多上下文。

MCP 服务器和 MCP 客户端可以在同一物理机器上运行。它们也可以是通过互联网远程相互连接的独立设备。MCP 服务器可以托管在 Web 服务器上(或 Cloudflare,如上图所示),但并非必须如此。

MCP 服务器有哪些核心功能?

MCP 服务器向 MCP 客户端提供多项功能。这些功能有助于 MCP 客户端执行其任务。

  • 工具:这些是可以执行以帮助相应提示词的功能。例如,MCP 服务器工具可以是一个调用 API 的函数。
  • 资源:资源是保存的只读数据源,例如文档、API 文档或知识库文章。
  • 提示词:已保存的结构化模板,用于调用特定工具和资源。

MCP 客户端有哪些核心功能?

MCP 客户端还向 MCP 服务器提供功能,后者可以使用这些功能向客户端请求信息或获得说明。

  • 信息获取:一旦建立连接,服务器可能需要更多上下文或信息来完成客户端的请求。服务器使用信息获取功能从客户端获取此信息,客户端可向用户提出询问。
  • 根路径:客户端可要求服务器聚焦于文件的特定子目录,以确保服务器生成相关的响应。试想在上述示例中,若客户端请求服务器聚焦于 file:///home-goods/furniture/childrens-furniture/ 路径。这样,服务器就不太可能向客户端提供无助于满足用户提示词的不相关信息,例如有关一般家庭用品或成人尺寸床的信息。
  • 采样:服务器可以向客户端发送请求,让 AI 应用完成任务。

如何使用 Cloudflare 构建 MCP 服务器或 MCP 客户端

Cloudflare 允许开发人员构建、测试和部署自己的 MCP 客户端和服务器,作为开发自己的 AI 智能体的一部分。开发人员可以在其本地设备上构建并部署到 Cloudflare,也可以通过 GitHub 帐户进行构建。通过在 Cloudflare 上部署 MCP 服务器或客户端,无需自行托管,即可在一个与全球 95% 互联网用户之间延迟不超过 50 毫秒的全球网络上向智能体暴露工具和数据。

OAuth 身份验证也可以内置于 MCP 服务器中。如果没有 身份验证,任何人都可以连接和使用服务器。通过身份验证,只有经授权的各方才能这样做。因此,身份验证有助于保持 MCP 服务器上数据的机密性和安全性。

有关如何使用 Cloudflare 构建远程 MCP 服务器的完整教程,请参阅 Cloudflare 的 MCP 开发人员文档