你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:基本 | 基本 v2 | 标准 | 标准 v2 | 高级 | 高级 v2
本文介绍如何使用 API 管理公开和管理现有的远程 模型上下文协议 (MCP) 服务器 - API 管理外部托管的工具服务器。 通过 API 管理公开和管理服务器的工具,以便 MCP 客户端可以使用 MCP 协议调用它们。
某些示例情境包括:
- 通过 API 管理通过每个服务器身份验证和速率限制的代理 LangChain 或 LangServe 工具服务器。
- 使用 IP 筛选和 OAuth 安全地公开基于 Azure 逻辑应用的工具来应对。
- 将 MCP 服务器工具从 Azure Functions 和开源运行时集中到 Azure API 中心。
- 启用 GitHub Copilot、Claude by Anthropic 或 ChatGPT 以安全地与企业中的工具交互。
API 管理还支持从托管 REST API 在 API 管理中本机公开的 MCP 服务器。 有关详细信息,请参阅 将 REST API 公开为 MCP 服务器。
了解有关以下方面的详细信息:
局限性
以下限制适用于此预览版。 预览功能可能会更改,因此请重新查看更新。
外部 MCP 服务器必须符合 MCP 版本
2025-06-18或更高版本。 服务器必须支持:- 没有授权或符合以下标准的授权协议: https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization#standards-compliance
- 可流式传输 HTTP 传输
重要
不支持符合旧版 MCP 版本或使用 SSE 传输的服务器。
API 管理支持 MCP 服务器工具功能,但不支持 MCP 资源或提示。
API 管理 工作区不支持 MCP 服务器功能。
先决条件
如果还没有 API 管理实例,请完成以下快速入门: 创建 Azure API 管理实例。
- 预览版支持以下服务层:经典基本、标准、高级、基本 v2、标准 v2 或高级 v2。
- 在经典基本层、标准层或高级层中,必须加入 AI 网关早期更新组 才能访问 MCP 服务器功能。 最多允许应用更新 2 小时。
访问与外部 MCP 兼容的服务器(例如,托管在 Azure 逻辑应用、Azure Functions、LangServe 或其他平台中)。
MCP 服务器的相应凭据(如 OAuth 2.0 客户端凭据或 API 密钥,具体取决于服务器)进行安全访问。
如果已在 API 管理服务实例的全局范围(所有 API)上通过 Application Insights 或 Azure Monitor 启用诊断日志记录,请确保前端响应 的日志设置的有效负载字节数 设置为 0。 这可以防止跨所有 API 误记录响应正文,并帮助确保 MCP 服务器正常运行。 若要选择性地记录特定 API 的有效负载,请在 API 范围内单独配置设置,从而允许对响应日志记录进行有针对性的控制。
若要测试 MCP 服务器,可以使用 Visual Studio Code 访问 GitHub Copilot。
公开现有的 MCP 服务器
按照以下步骤公开现有的 MCP 服务器是 API 管理:
- 在 Azure 门户,导航到 API 管理实例。
- 在左侧菜单中的 API 下,选择 MCP 服务器>+ 创建 MCP 服务器。
- 选择“ 公开现有 MCP 服务器”。
- 在 后端 MCP 服务器中:
- 输入现有的 MCP 服务器基 URL。 示例:
https://free.blessedness.top/api/mcp对于 Microsoft Learn MCP 服务器 - 在传输类型中,默认选择 可流式传输 HTTP 。
- 输入现有的 MCP 服务器基 URL。 示例:
- 在新 MCP 服务器中:
- 在 API 管理中输入 MCP 服务器 的名称 。
- 在 “基本路径”中,输入工具的路由前缀。 示例:
mytools - (可选)输入 MCP 服务器 的说明 。
- 选择 创建。
- 创建 MCP 服务器,远程服务器的作以工具的形式公开。
- MCP 服务器列在 MCP 服务器 窗格中。 “服务器 URL”列显示要调用以进行测试或在客户端应用程序中调用的 MCP 服务器 URL。
重要
目前,API 管理不会显示现有 MCP 服务器中的工具。 必须在现有远程 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 范围内禁用响应正文日志记录 - 请参阅 先决条件 |