MCP 课程文档

关键概念和术语

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

关键概念和术语

在深入了解模型上下文协议(MCP)之前,理解构成 MCP 基础的关键概念和术语至关重要。本节将介绍构成协议的基本思想,并为在整个课程中讨论 MCP 实现提供一个通用词汇表。

MCP 通常被描述为“AI 应用程序的 USB-C”。就像 USB-C 为将各种外设连接到计算设备提供了标准化的物理和逻辑接口一样,MCP 为将 AI 模型连接到外部功能提供了统一的协议。这种标准化使整个生态系统受益:

  • 用户享受 AI 应用程序中更简单、更一致的体验
  • AI 应用程序开发者可以轻松集成日益增长的工具和数据源生态系统
  • 工具和数据提供商只需创建一次即可与多个 AI 应用程序配合使用的单个实现
  • 更广泛的生态系统受益于互操作性、创新和碎片化减少

集成问题

M×N 集成问题指的是在没有标准化方法的情况下,将 M 个不同的 AI 应用程序连接到 N 个不同的外部工具或数据源所面临的挑战。

没有 MCP(M×N 问题)

如果没有像 MCP 这样的协议,开发者将需要创建 M×N 个自定义集成——每个 AI 应用程序与外部功能的可能配对都需要一个集成。

Without MCP

每个 AI 应用程序都需要单独与每个工具/数据源集成。这是一个非常复杂且成本高昂的过程,给开发者带来了很多障碍,并导致高昂的维护成本。

一旦我们有了多个模型和多个工具,集成的数量就会变得难以管理,每个集成都有其独特的接口。

Multiple Models and Tools

使用 MCP(M+N 解决方案)

MCP 通过提供一个标准接口,将此问题转化为 M+N 问题:每个 AI 应用程序只实现一次 MCP 的客户端,每个工具/数据源只实现一次服务器端。这极大地降低了集成复杂性和维护负担。

With MCP

每个 AI 应用程序实现一次 MCP 的客户端,每个工具/数据源实现一次服务器端。

核心 MCP 术语

既然我们理解了 MCP 解决的问题,那么接下来让我们深入了解构成 MCP 协议的核心术语和概念。

MCP 是一种类似 HTTP 或 USB-C 的标准,它是一种将 AI 应用程序连接到外部工具和数据源的协议。因此,使用标准术语对于 MCP 的有效运行至关重要。

在编写应用程序文档和与社区交流时,我们应该使用以下术语。

组件

就像 HTTP 中的客户端-服务器关系一样,MCP 也具有客户端和服务器。

MCP Components

  • 主机 (Host):终端用户直接交互的面向用户的 AI 应用程序。示例包括 Anthropic 的 Claude Desktop、AI 增强型 IDE(如 Cursor)、Hugging Face Python SDK 等推理库,或使用 LangChain 或 smolagents 等库构建的自定义应用程序。主机发起与 MCP 服务器的连接,并协调用户请求、LLM 处理和外部工具之间的整个流程。

  • 客户端 (Client):主机应用程序内的一个组件,负责管理与特定 MCP 服务器的通信。每个客户端与单个服务器保持 1:1 连接,处理 MCP 通信的协议级细节,并充当主机逻辑和外部服务器之间的中介。

  • 服务器 (Server):通过 MCP 协议公开功能(工具、资源、提示)的外部程序或服务。

许多内容互换使用“客户端”和“主机”。严格来说,主机是面向用户的应用程序,而客户端是主机应用程序中管理与特定 MCP 服务器通信的组件。

功能

当然,您的应用程序的价值是它所提供功能的总和。因此,功能是您应用程序最重要的部分。MCP 可以与任何软件服务连接,但有一些常见功能用于许多 AI 应用程序。

能力 描述 示例
工具 AI 模型可以调用的可执行函数,用于执行操作或检索计算数据。通常与应用程序的用例相关。 天气应用程序的工具可能是返回特定位置天气的函数。
资源 提供上下文而无需大量计算的只读数据源。 研究助手可能拥有一个用于科学论文的资源。
提示 预定义模板或工作流,指导用户、AI 模型和可用功能之间的交互。 一个摘要提示。
采样 服务器发起的请求,要求客户端/主机执行 LLM 交互,从而实现递归操作,使 LLM 能够审查生成的内容并做出进一步的决策。 一个写作应用程序审查其自己的输出并决定进一步完善它。

在下面的图表中,我们可以看到应用于代码代理用例的集体功能。

collective diagram

此应用程序可能以下列方式使用其 MCP 实体:

实体 名称 描述
工具 代码解释器 一个可以执行 LLM 编写的代码的工具。
资源 文档 包含应用程序文档的资源。
提示 代码风格 一个指导 LLM 生成代码的提示。
采样 代码审查 一个允许 LLM 审查代码并做出进一步决策的采样。

结论

理解这些关键概念和术语是有效使用 MCP 的基础。在接下来的章节中,我们将在此基础上探索构成模型上下文协议的架构组件、通信协议和功能。

< > 在 GitHub 上更新