你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:基本 | 标准 | 高级
在 API 管理中,可以将 API 管理中管理的 REST API 公开为远程 模型上下文协议 (MCP) 服务器。 将一个或多个 API 操作公开,作为 MCP 客户端可以通过 MCP 协议调用的工具。
使用 API 管理公开远程 MCP 服务器可提供对身份验证、授权和监视的集中控制。 它简化了将 API 公开为 MCP 服务器的过程,同时帮助缓解常见的安全风险并确保可伸缩性。
在这篇文章中,你将学会如何:
- 将 API 管理中的 REST API 公开为 MCP 服务器
- 为 MCP 服务器配置策略
- 从 MCP 客户端测试生成的 MCP 服务器
关于 MCP 服务器
由于增强的大型语言模型(LLM)功能,AI 代理正被广泛采用。 但是,即使是最先进的模型也面临着限制,因为它们与外部数据隔离。 每个新的数据源可能需要自定义实现来提取、准备和使数据可供模型访问。
模型上下文协议(MCP)可帮助解决此问题。 MCP 是一种开放标准,用于将 AI 模型和代理与外部数据源(例如本地数据源(数据库或计算机文件)或远程服务(通过 Internet 提供的系统(如远程数据库或 API)连接。
MCP 体系结构
下图说明了 MCP 体系结构:
该体系结构包括以下组件:
组件 | DESCRIPTION |
---|---|
MCP 主机 | 需要访问外部功能的 LLM 应用程序包括 IDE 中的聊天应用或 AI 助手(如 Visual Studio Code 中的 GitHub Copilot) |
MCP 客户端 | 在主机应用程序内部,与服务器保持 1:1 连接的协议客户端 |
MCP 服务器 | 轻量程序每个都公开特定功能,并为客户提供上下文、工具和提示。 |
MCP 协议 | 中间的传输层 |
MCP 遵循客户端服务器体系结构,其中主机应用程序可以连接到多个服务器。 只要 MCP 主机或客户端需要工具,它就连接到 MCP 服务器。 然后,MCP 服务器连接到数据库或 API。 MCP 主机和服务器通过 MCP 协议相互连接。
远程与本地 MCP 服务器
MCP 利用基于 JSON-RPC 2.0 进行消息传递的客户端主机-服务器体系结构。 客户端和服务器之间的通信通过定义的传输层发生,并且主要支持两种作模式:
远程 MCP 服务器 - MCP 客户端通过 Internet 连接到 MCP 服务器,使用 HTTP 和服务器发送的事件(SSE)建立连接,并使用 OAuth 授权 MCP 客户端访问用户帐户上的资源。
本地 MCP 服务器 MCP 客户端使用标准输入/输出作为本地传输方法连接到同一计算机上的 MCP 服务器。
先决条件
- 完成以下快速入门:创建一个 Azure API 管理实例。 目前,只有高级层、标准层和基本层的 API 管理支持 MCP 服务器。
- 确保实例管理要公开为 MCP 服务器的 REST API。 若要导入示例 API,请参阅 导入并发布第一个 API。
注释
只有来自 API 管理的 HTTP API 才能作为 MCP 服务器公开。
- 若要测试 MCP 服务器,可以使用 Visual Studio Code 访问 GitHub Copilot。
将 API 公开为 MCP 服务器
在 Azure 门户中,使用以下 URL 访问 MCP 服务器预览版:
https://portal.azure.com/?Microsoft_Azure_ApiManagement=mcp
导航到 API 管理实例。
在左侧菜单中,选择 API>MCP 服务器>+ 创建新的 MCP 服务器。
在 API 中,选择要公开为 MCP 服务器的 REST API。
选择要公开为工具的一个或多个 API 操作。 你可以选择所有操作或仅选择特定操作。
选择 创建。
创建了 MCP 服务器,并将 API 操作作为工具公开。 MCP 服务器列在 MCP 服务器 窗格中。 URL 列显示 MCP 服务器的终结点,可以调用该终结点进行测试或在客户端应用程序中。
为 MCP 服务器配置策略
配置一个或多个 API 管理 策略 以帮助管理 MCP 服务器。 这些策略适用于在 MCP 服务器中公开为工具的所有 API 操作,并可用于控制这些工具的访问、身份验证和其他方面。
有关如何配置策略的教程,请参阅 转换和保护 API。
若要为 MCP 服务器配置策略,请执行以下作:
在门户中的 API 下,选择 MCP 服务器。
选择创建的 MCP 服务器。
在左侧菜单中的 MCP 下,选择“ 策略”。
在策略编辑器中,添加或编辑要应用于 MCP 服务器工具的策略。 这些策略以 XML 格式定义。 例如,可以添加策略来限制对 MCP 服务器工具的调用(在此示例中,每个客户端 IP 地址每 30 秒 5 次调用)。
<rate-limit-by-key calls="5" renewal-period="30" counter-key="@(context.Request.IpAddress)" remaining-calls-variable-name="remainingCallsPerIP" />
测试和使用 MCP 服务器
若要验证 MCP 服务器是否正常工作,可以使用 Visual Studio Code 将请求发送到 MCP 服务器工具。
在 Visual Studio Code 中,在代理模式下使用 GitHub Copilot 聊天(预览版)添加 MCP 服务器并使用这些工具。 有关 Visual Studio Code 中 MCP 服务器的背景信息,请参阅 VS Code 中的“使用 MCP 服务器”(预览版)。
在 Visual Studio Code 中添加 MCP 服务器
若要在 Visual Studio Code 中添加 MCP 服务器,请执行以下作:
使用命令面板中的 MCP: Add Server 命令。
出现提示时,选择服务器类型:HTTP(HTTP 或服务器发送事件)。
在 API 管理中输入 MCP 服务器的 URL 。 示例:
https://<apim-service-name>.azure-api.net/<api-name>-mcp/sse
(对于 SSE 终结点)或https://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp
(对于 MCP 终结点)输入您选择的 服务器 ID。
选择是将配置保存到 工作区设置 还是 用户设置。
工作区设置 - 服务器配置被保存到一个文件,该文件仅在当前工作区中可用。
用户设置 - 服务器配置将添加到全局
settings.json
文件,可在所有工作区中使用。 配置如下所示:
为 JSON 配置添加字段,用于设置例如身份验证标头。 以下示例显示了在标头中作为输入值传递的 API 管理订阅密钥的配置。 详细了解 配置格式
在代理模式下使用工具
添加 MCP 服务器后,可以在代理模式下使用工具。
在 GitHub Copilot 聊天中,选择 代理 模式,然后选择 “工具” 按钮以查看可用的工具。
从 MCP 服务器中选择一个或多个可在聊天中使用的工具。
在聊天中输入提示以调用该工具。 例如,如果选择了一个工具来获取有关订单的信息,则可以向代理询问订单。
Get information for order 2
选择 “继续 ”以查看结果。 代理使用该工具调用 MCP 服务器,并在聊天中返回结果。