☰
将 REST API 通过 Azure API Management 发布为 MCP Server:从创建、限流策略到 Copilot Agent 调用全指南
2026/10/3 17:38:41 网站建设 项目流程
  • 教程
  • 文档
  • 人工智能

【免费下载链接】mcp-for-beginners

This open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable, and secure AI workflows from session setup to service orchestration.

项目地址:https://gitcode.com/GitHub_Trending/mc/mcp-for-beginners
点击查看免费下载

本文是mcp-for-beginners开源课程 09-CaseStudy/apimsample.md 的深度实战解析。你将学会如何把 Azure API Management(APIM)中已有的 REST API 端点一键发布为 Model Context Protocol(MCP)服务器,让这些端点以标准「工具」形态接入 Agentic AI 应用,并借助 APIM 的策略体系(Policy)为 MCP 工具叠加限流、认证等治理能力。读完本文,你将掌握从「创建 MCP Server」到「在 VS Code 中通过 GitHub Copilot Agent 模式调用工具」的完整可运行链路。

为什么选择「MCP + Azure API Management」

Model Context Protocol 正在快速成为 Agentic AI 应用的标准协议,它为 AI 应用提供了一种统一、一致的方式来暴露工具(Tool)和数据。与此同时,Azure API Management 是位于你的 API 端点之上的一层网关服务,它像代理一样拦截所有入站请求,并决定如何处理这些请求。

两者结合非常自然:MCP Server 本身常常需要集成其他 API 来响应工具调用请求,而 APIM 恰好解决了「谁来管理这些 API」的问题。把 API 端点发布为 MCP Server,既能让端点成为 Agentic 应用的一部分,又能继续享有 APIM 的完整治理能力:

  • 安全(Security):支持 API Key、JWT、托管标识(Managed Identity)等多种认证方式,保护暴露出去的 MCP 工具;
  • 限流(Rate limiting):可按时间单位精确控制放行的调用次数,避免服务被请求压垮,同时保证所有用户都有良好体验;
  • 缩放与负载均衡(Scaling & Load balancing):可配置多个后端端点分摊负载,并自定义「负载均衡」策略;
  • AI 能力:语义缓存(semantic caching)、Token 限额、Token 监控等特性,既能提升响应速度,也能帮助你掌控 Token 开销。

在课程的安全模块中,APIM 还被定位为 MCP 服务器的「认证网关」:02-Security/README.md的安全峰会工作坊(Sherpa)将「Gateway」列为一个独立营地(Camp 2: Gateway),强调使用 API Management、Private Endpoints 与治理策略来构筑 MCP 的纵深防御层。可见 APIM 作为 MCP 基础设施的价值已被广泛认可。

核心特性一览

  • 你可以选择性地把 API 端点中的方法(Operations)暴露为 MCP 工具——既可以全选,也可以只挑部分操作;
  • 发布后获得的额外能力取决于你在 API 的 Policy 区域配置的策略,例如本文演示的限流策略;
  • 端点以 MCP 工具的形式对外提供,客户端(如 VS Code + Copilot)可直接通过自然语言调用。

前置步骤:导入一个 API

如果 Azure API Management 中已有一个 API,可以跳过本步。否则需要先把后端 API 导入到 APIM 中(例如导入 Swagger/OpenAPI 定义或已有 HTTP 端点)。完成后,你会得到一个可以在 APIM 中管理、配置策略并发布为 MCP Server 的 REST API。

将 API 端点发布为 MCP Server

在 Azure Portal 中完成以下操作:

  1. 打开 Azure Portal 并导航到你的 API Management 实例(可通过https://portal.azure.com/?Microsoft_Azure_ApiManagement=mcp直达 MCP 相关入口)。
  2. 在左侧菜单中依次选择APIs > MCP Servers > + Create new MCP Server。
  3. 在 API 下拉框中,选择一个 REST API作为要发布的 MCP Server 来源。
  4. 选择一个或多个 API Operations 作为要暴露的工具。你可以全选所有操作,也可以只勾选特定操作——这决定了 Agent 最终能看到哪些工具。
  5. 点击Create完成创建。
  6. 回到APIs > MCP Servers菜单,即可在 MCP Servers 面板中看到刚刚创建的 MCP Server:API 操作已被暴露为工具,同时URL 列展示了该 MCP Server 的端点地址,这个地址既可用于测试,也可配置到客户端应用中。

至此,一个可直接被 MCP 客户端调用的服务器就绪了。

可选进阶:为 MCP Server 配置策略(Policy)

Azure API Management 的核心概念之一是策略(Policy)——针对端点设置不同的规则,例如限流或语义缓存。策略以XML格式编写。

以下步骤演示如何为 MCP Server 配置限流策略:

  1. 在 Portal 中,进入APIs > MCP Servers。
  2. 选中你创建的 MCP Server。
  3. 在左侧菜单的 MCP 分组下,选择Policies。
  4. 在策略编辑器中添加或编辑要应用到该 MCP Server 工具上的策略。例如,限制客户端 IP 对 MCP Server 工具的调用频率——每 30 秒每个客户端 IP 最多 5 次调用,对应的 XML 如下:
<rate-limit-by-key calls="5" renewal-period="30" counter-key="@(context.Request.IpAddress)" remaining-calls-variable-name="remainingCallsPerIP" />

策略参数说明:

参数含义
calls在renewal-period内允许的最大调用次数,示例中为 5 次
renewal-period限流时间窗口(秒),示例中为 30 秒
counter-key计数依据,@(context.Request.IpAddress)表示按客户端 IP 维度统计
remaining-calls-variable-name保存剩余调用次数的上下文变量名,可用于后续策略或响应头输出

保存策略后,APIM 网关会在每次工具调用时执行该限流规则;超过配额即被拒绝。你可以基于同样的模式继续叠加语义缓存、认证等更多策略,让 MCP 工具具备完整的 API 治理能力。

实战验证:在 VS Code 中用 GitHub Copilot Agent 模式调用 MCP 工具

传输端点说明

[!NOTE] Azure API Management 目前通过Streamable HTTP/mcp端点暴露该服务器。旧式的 HTTP+SSE/sse传输已被弃用,仅应服务于遗留客户端。

因此,在客户端配置中请使用形如https://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp的 Streamable HTTP 地址。

在 VS Code 中注册 MCP Server

我们将使用 Visual Studio Code 与 GitHub Copilot 的 Agent 模式,把 MCP Server 添加到mcp.json文件中。这样 VS Code 就成为一个具备 Agent 能力的 MCP 客户端,用户输入提示词即可与服务器交互。

  1. 通过命令面板执行MCP: Add Server命令。
  2. 当被询问服务器类型时,选择HTTP (HTTP or Server Sent Events)。
  3. 输入 API Management 中该 MCP Server 展示的 Streamable HTTP URL,例如https://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp。
  4. 输入一个你自定义的服务器 ID——该值不要求严格格式,仅用于帮助记住这是哪个服务器实例。
  5. 选择将配置保存到工作区设置还是用户设置:
  • 工作区设置(Workspace settings):配置保存在.vscode/mcp.json,仅对当前工作区生效:
"servers": { "APIM petstore" : { "type": "http", "url": "url-to-mcp-server/mcp" } }
  • 用户设置(User settings):配置写入全局settings.json,对所有工作区生效,结构与上面类似。

配置认证头:Ocp-Apim-Subscription-Key

为了让客户端能够正确通过 Azure API Management 的认证,还需要添加一个名为Ocp-Apim-Subscription-Key的请求头。

  • 在 VS Code 设置界面中直接添加该 Header 时,VS Code 会弹出一个提示框,要求你输入 API Key 的值——该值可以在 Azure Portal 中对应 API Management 实例里找到。
  • 若改用mcp.json配置,则可以通过inputs声明一个密码型提示变量,并在headers中引用它:
"inputs": [ { "type": "promptString", "id": "apim_key", "description": "API Key for Azure API Management", "password": true } ], "servers": { "APIM petstore" : { "type": "http", "url": "url-to-mcp-server/mcp", "headers": { "Ocp-Apim-Subscription-Key": "Bearer ${input:apim_key}" } } }

这样配置后,VS Code 会在需要时提示你输入订阅密钥,并以请求头形式随每次 MCP 工具调用一并发送,完成对 APIM 网关的认证。这与课程 02-Security 中强调的「以网关统一管理认证」思路一脉相承——客户端无需知道后端实现细节,只需携带网关颁发的密钥即可。

使用 Agent 模式调用工具

配置完成后即可开始体验:

  1. 在界面中找到Tools 图标,点击后会列出从该 MCP Server 暴露出来的工具清单。
  2. 在聊天中输入一个自然语言提示来触发工具调用。例如,如果之前勾选了「获取订单信息」操作,可以输入:
get information from order 2
  1. Agent 会先弹出一个工具调用确认提示,选择继续运行该工具后,你将看到类似以下的文本输出结果。

实际看到的内容取决于你勾选了哪些工具,但核心体验是一致的:通过自然语言让 Agent 调用 APIM 中发布的 MCP 工具并获得结构化响应。

从仓库视角看本案例的定位

在mcp-for-beginners课程体系中,本案例属于「实战案例」模块。09-CaseStudy/README.md将其归纳为以下学习要点:

  • 在 Azure API Management 中搭建 MCP Server;
  • 将 API 操作暴露为 MCP 工具;
  • 配置限流与安全策略;
  • 使用 VS Code 与 GitHub Copilot 验证 MCP Server。

这与本模块其他案例(Azure AI Travel Agents 多代理编排、Azure DevOps 工作流自动化、文档检索等)共同展示了 MCP 在不同企业场景中的落地模式。安全维度上,02-Security/mcp-security-best-practices.md与02-Security/mcp-best-practices.md均引用了「Azure API Management 作为 MCP 认证网关」的实践,说明在 APIM 之上发布 MCP Server 已成为企业级 MCP 部署的推荐架构之一。

后续学习路径

  • 返回案例总览:Case Studies Overview
  • 继续学习下一个案例:Azure AI Travel Agents 多代理旅行规划
  • 了解 MCP 安全基线:安全最佳实践
  • 其他可参考资源(均可在官方文档与示例仓库中检索):Azure API Management 的 MCP Server 导出教程、面向 Python 的安全远程 MCP 服务器示例、MCP 客户端授权实验、VS Code 中导入与管理 API 的 APIM 扩展教程、Azure API Center 中注册与发现远程 MCP 服务器,以及展示 APIM 多种 AI 能力的 AI Gateway 参考仓库及其工作坊。
  • 教程
  • 文档
  • 人工智能

【免费下载链接】mcp-for-beginners

This open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable, and secure AI workflows from session setup to service orchestration.

项目地址:https://gitcode.com/GitHub_Trending/mc/mcp-for-beginners
点击查看免费下载
上一篇:oh-my-openagent 内存子进程 outcome 权威性竞态修复实录:publishing/launch/outcome 三标志文件发布顺序的 RED-GREEN 验证
下一篇:OpenMontage 前端性能优化实践:为什么不要在 useMemo 中包裹简单原始类型表达式

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询