你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

关于 Azure API 管理中的 MCP 服务器

适用于:基本 | 基本 v2 | 标准 | 标准 v2 | 高级 | 高级 v2

本文介绍 Azure API 管理中的功能,可用于管理模型上下文协议 (MCP) 服务器。 MCP 服务器允许大型语言模型(LLM)和 AI 代理通过标准化协议访问外部数据源,例如数据库或 API。

随着 AI 代理和大型语言模型(LLM)的激增,MCP 服务器的管理变得越来越重要:

  • 代理需要对工具和资源的安全、受管理的访问权限
  • 开发人员希望重复使用现有 API 作为代理工具
  • 企业需要可观测性、控制和缩放性

使用 API 管理为 LLM 和 AI 代理(如 GitHub Copilot、ChatGPT、Claude 等)安全地公开和管理 MCP 服务器及其后端。 API 管理提供对 MCP 服务器身份验证、授权和监视的集中控制。 它简化了 MCP 服务器的管理,同时帮助缓解常见的安全风险并确保可观测性、控制和可伸缩性。

MCP 概念和体系结构

由于增强的 LLM 功能,AI 代理正被广泛采用。 但是,即使是最先进的模型也面临着限制,因为它们与外部数据隔离。 每个新的数据源可能需要自定义实现来提取、准备和使数据可供模型访问。

模型上下文协议(MCP)可帮助解决此问题。 MCP 是一种开放标准,用于将 AI 模型和代理与外部数据源(例如本地数据源(数据库或计算机文件)或远程服务(通过 Internet 提供的系统(如远程数据库或 API)连接。

MCP 遵循客户端服务器体系结构,其中主机应用程序可以连接到多个服务器。 只要 MCP 主机或客户端需要工具,它就连接到 MCP 服务器。 然后,MCP 服务器连接到数据库或 API。 MCP 主机和服务器通过 MCP 协议相互连接。

下图说明了 MCP 体系结构:

模型上下文协议(MCP)体系结构示意图。

该体系结构包括以下组件:

组件 DESCRIPTION
MCP 主机 需要访问外部功能的 LLM 应用程序包括 IDE 中的聊天应用或 AI 助手(如 Visual Studio Code 中的 GitHub Copilot)
MCP 客户端 在主机应用程序内部,与服务器保持 1:1 连接的协议客户端
MCP 服务器 轻量程序每个都公开特定功能,并为客户提供上下文、工具和提示。
MCP 协议 中间的传输层

MCP 体系结构基于 JSON-RPC 2.0 进行消息传递。 客户端和服务器之间的通信通过定义的传输层发生,并且主要支持两种作模式:

  • 远程 MCP 服务器 - 使用基于 HTTP 的传输(如 Streamable HTTP)作为通过 Internet 访问的独立进程运行,使 MCP 客户端能够连接到任何位置托管的外部服务和 API。

  • 本地 MCP 服务器 MCP 客户端使用标准输入/输出作为本地传输方法连接到同一计算机上的 MCP 服务器。

MCP 服务器终结点

MCP 为远程服务器提供以下传输类型和典型终结点:

传输类型 端点 注释
可流式传输 HTTP /mcp 替换 HTTP + SSE 传输
SSE (服务器发送的事件) /sse - 用于建立 SSE 连接

/messages - 用于 MCP 客户端和服务器之间的双向消息传送
已弃用协议版本 2024-11-05

在 API 管理中公开 MCP 服务器

Azure API 管理支持远程 MCP 服务器模式,使用 API 管理和 AI 网关的本机功能 来管理 MCP 服务器终结点。

在预览版中,API 管理提供了两种用于公开 MCP 服务器的内置方法:

来源 DESCRIPTION
REST API 作为 MCP 服务器 将 API 管理中管理的任何 REST API 公开为 MCP 服务器,包括从 Azure 资源导入的 REST API。 API作成为 MCP 工具。 了解详细信息
现有 MCP 服务器 通过 API 管理公开与 MCP 兼容的服务器(例如 LangChain、LangServe、Azure 逻辑应用、Azure 函数应用)。 了解详细信息

有关分步说明和预览限制,请参阅链接的文章。

控制 MCP 服务器

配置一个或多个 API 管理 策略 以帮助管理 MCP 服务器。 目前,策略将应用于在 MCP 服务器中公开为工具的所有 API作,并可用于控制工具的访问、身份验证和其他方面。

配置如下策略:

  • 速率限制和配额强制实施 - 将每个时间段的请求数限制为 MCP 服务器的工具,并为客户端或订阅设置使用配额。
  • 身份验证和授权 - 要求并使用Microsoft Entra ID 或其他标识提供者颁发的 JSON Web 令牌(JWT)来验证传入的请求,以便进行安全访问。
  • IP 筛选 - 基于客户端 IP 地址限制对 MCP 服务器工具的访问。
  • 缓存 - 通过 MCP 服务器工具缓存响应以提高性能并减少后端负载。

保护对 MCP 服务器的访问

可以保护对 MCP 服务器的入站访问(从 MCP 客户端到 API 管理)和出站访问(从 API 管理到 MCP 服务器后端)。 根据后端和组织的安全状况应用一个或多个安全措施。

有关详细信息和示例,请参阅 安全访问 MCP 服务器

监测

若要监视 Azure API 管理中的 MCP 服务器,可以使用 API 管理与用于网关活动的 Azure Monitor 的内置集成。

  • 配置 Azure Application Insights 或 Azure Monitor 以捕获 MCP 服务器请求、响应和详细诊断。
  • 在请求标头中包含相关 ID,以跟踪跨多个系统和组件的请求。
  • 配置 MCP 服务器的 跟踪 策略,以将自定义跟踪添加到测试控制台、Application Insights 遥测或资源日志中的请求跟踪输出中。

有关详细信息,请参阅 监视 API 管理

发现 MCP 服务器

使用 Azure API 中心 在组织中注册和发现 MCP 服务器。

  • Azure API 中心提供一个集中位置来管理 MCP 服务器,包括 API 管理和托管在 API 管理外部的服务器中公开的服务器。

  • 部署 API 中心门户 ,使用户能够通过专用的、企业就绪的 MCP 服务器注册表发现 MCP 服务器并与 MCP 服务器交互。

可用性

在预览版中,API 管理中的 MCP 服务器在以下服务层级中可用:

  • 经典层:基本层、标准层、高级层
  • v2 层:基本 v2、标准 v2、高级 v2

注释

  • 在经典层中,通过加入 AI 网关早期更新组来访问 MCP 服务器功能。
  • 工作区 或自 承载网关目前不支持 MCP 服务器。