你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:基本 | 基本 v2 | 标准 | 标准 v2 | 高级 | 高级 v2
在 API 管理中,可以使用其内置的 AI 网关将 API 管理中的 REST API 公开为远程模型上下文协议 (MCP) 服务器。 将一个或多个 API 操作公开,作为 MCP 客户端可以通过 MCP 协议调用的工具。
Azure API 管理还支持与现有 MCP 兼容的服务器(在 API 管理外部托管的工具服务器)的安全集成。 有关详细信息,请参阅 公开现有的 MCP 服务器。
了解有关以下方面的详细信息:
局限性
以下限制适用于此预览版。 预览功能可能会更改,因此请重新查看更新。
- API 管理支持 MCP 服务器工具,但不支持 MCP 资源或提示。
- API 管理 工作区不支持 MCP 服务器功能。
先决条件
如果还没有 API 管理实例,请完成以下快速入门: 创建 Azure API 管理实例。
- 预览版支持以下服务层:经典基本、标准、高级、基本 v2、标准 v2 或高级 v2。
- 在经典基本层、标准层或高级层中,必须加入 AI 网关早期更新组 才能访问 MCP 服务器功能。 最多允许应用更新 2 小时。
确保实例管理 HTTP 兼容的 API(任何作为 REST API 导入的 API,包括从 Azure 资源导入的 API),你希望将其公开为 MCP 服务器。 若要导入示例 API,请参阅 导入并发布第一个 API。
注释
API 管理中与 HTTP 兼容的其他 API 类型无法作为 MCP 服务器公开。
如果已在 API 管理服务实例的全局范围(所有 API)上通过 Application Insights 或 Azure Monitor 启用诊断日志记录,请确保前端响应 的日志设置的有效负载字节数 设置为 0。 这可以防止跨所有 API 误记录响应正文,并帮助确保 MCP 服务器正常运行。 若要选择性地记录特定 API 的有效负载,请在 API 范围内单独配置设置,从而允许对响应日志记录进行有针对性的控制。
若要测试 MCP 服务器,可以使用 Visual Studio Code 访问 GitHub Copilot。
将 API 公开为 MCP 服务器
按照以下步骤将 API 管理中的托管 REST API 公开为 MCP 服务器:
- 在 Azure 门户,导航到 API 管理实例。
- 在左侧菜单中的 API 下,选择 MCP 服务器>+ 创建 MCP 服务器。
- 选择“ 将 API 公开为 MCP 服务器”。
- 在 后端 MCP 服务器中:
- 选择要作为 MCP 服务器公开的托管 API 。
- 选择要公开为工具的一个或多个 API作 。 你可以选择所有操作或仅选择特定操作。
注释
可以在 MCP 服务器的 “工具” 边栏选项卡中更新公开为工具的作。
- 在新 MCP 服务器中:
- 在 API 管理中输入 MCP 服务器 的名称 。
- (可选)输入 MCP 服务器 的说明 。
- 选择 创建。
- 创建了 MCP 服务器,并将 API 操作作为工具公开。
- MCP 服务器列在 MCP 服务器 边栏选项卡中。 “服务器 URL”列显示要调用以进行测试或在客户端应用程序中调用的 MCP 服务器的终结点。
为 MCP 服务器配置策略
配置一个或多个 API 管理 策略 以帮助管理 MCP 服务器。 这些策略适用于在 MCP 服务器中公开为工具的所有 API 操作,并可用于控制这些工具的访问、身份验证和其他方面。
详细了解如何配置策略:
谨慎
请勿使用 context.Response.Body
MCP 服务器策略中的变量访问响应正文。 这样做会触发响应缓冲,这会干扰 MCP 服务器所需的流式处理行为,并可能导致它们出现故障。
若要为 MCP 服务器配置策略,请执行以下作:
在 Azure 门户,导航到 API 管理实例。
在左侧菜单中的 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 服务器
使用合规的 LLM 代理(如 GitHub Copilot、语义内核或 Copilot Studio)或测试客户端(例如 curl
)调用 API 管理托管的 MCP 终结点。 确保请求包含适当的标头或令牌,并确认 MCP 服务器的成功路由和响应。
小窍门
如果使用 MCP 检查器 测试由 API 管理管理的 MCP 服务器,建议使用版本 0.9.0。
在 Visual Studio Code 中添加 MCP 服务器
在 Visual Studio Code 中,在代理模式下使用 GitHub Copilot 聊天添加 MCP 服务器并使用这些工具。 有关 Visual Studio Code 中 MCP 服务器的背景信息,请参阅 VS Code 中的“使用 MCP 服务器”。
若要在 Visual Studio Code 中添加 MCP 服务器,请执行以下作:
使用命令面板中的 MCP: Add Server 命令。
出现提示时,选择服务器类型:HTTP(HTTP 或服务器发送事件)。
在 API 管理中输入 MCP 服务器的 服务器 URL 。 示例:
https://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp
(对于 MCP 终结点)输入所选 的服务器 ID 。
选择是将配置保存到 工作区设置 还是 用户设置。
工作区设置 - 服务器配置被保存到一个文件,该文件仅在当前工作区中可用。
用户设置 - 服务器配置将添加到全局
settings.json
文件,可在所有工作区中使用。 配置如下所示:
为 JSON 配置添加字段,用于设置例如身份验证标头。 以下示例显示了在标头中作为输入值传递的 API 管理订阅密钥的配置。 详细了解 配置格式
在代理模式下使用工具
在 Visual Studio Code 中添加 MCP 服务器后,可以在代理模式下使用工具。
在 GitHub Copilot 聊天中,选择 代理 模式,然后选择 “工具” 按钮以查看可用的工具。
从 MCP 服务器中选择一个或多个可在聊天中使用的工具。
在聊天中输入提示以调用该工具。 例如,如果选择了一个工具来获取有关订单的信息,则可以向代理询问订单。
Get information for order 2
选择 “继续 ”以查看结果。 代理使用该工具调用 MCP 服务器,并在聊天中返回结果。
故障排除和已知问题
问题 | 原因 | 解决方案 |
---|---|---|
401 Unauthorized 来自后端的错误 |
未转发授权标头 | 使用 set-header 策略手动附加令牌 |
API 调用在 API 管理中工作,但在代理中失败 | 基 URL 不正确或令牌缺失 | 仔细检查安全策略和终结点 |
启用诊断日志时 MCP 服务器流式处理失败 | 通过策略记录响应正文或访问响应正文会干扰 MCP 传输 | 在所有 API 范围内禁用响应正文日志记录 - 请参阅 先决条件 |