【Azure APIM】通过 API Management 公开现有 MCP Server 的试验 (一)

随着 GitHub Copilot、Claude、ChatGPT 等 AI 客户端逐渐支持 Model Context Protocol(MCP),企业需要以统一、可控的方式向这些客户端提供内部工具。

对于已经存在的远程 MCP Server,如果直接让客户端访问,通常难以统一实施鉴权、限流、审计和网络访问控制。

Azure API Management(APIM)提供了 Expose an existing MCP server(公开现有 MCP Server) 功能。

通过该功能,可以将一个外部 MCP Server 接入 APIM,由 APIM 作为代理入口对外公开其工具,并复用 APIM 的产品、订阅、策略和监控能力。

问题描述

本文将参考官方文档完成一次试验:将 Microsoft Learn MCP Server 通过 APIM 公开(连接和管理现有 MCP 服务器 - Azure API 管理 | Microsoft Learn),并在 Visual Studio Code 中由 GitHub Copilot 调用其工具。

本次试验的调用链路如下:

在本次实验中,使用"https://learn.microsoft.com/api/mcp" 作为一个可以访问的MCP Server。

操作步骤

登录 Azure 门户,进入目标 APIM 实例后,按以下步骤创建 MCP Server:

  1. 在左侧菜单中选择 APIs > MCP servers

  2. 选择 + Create MCP server

  3. 选择 Expose an existing MCP server

  4. Backend MCP server 区域填写后端 MCP Server 的基础地址。本次试验填写:https://learn.microsoft.com/api/mcp

  5. Transport type 中选择 Streamable HTTP。该选项默认已选中,也是当前推荐的 MCP 远程传输方式。

  6. New MCP server 区域填写 APIM 中的 MCP Server 名称与基础路径。例如基础路径设为 learn/api

  7. 可选地将 MCP Server 加入一个 Product。这样客户端便可以通过该 Product 的订阅密钥访问服务。

  8. 选择 Create,等待 APIM 创建完成。

动态展示图:

创建完成后,复制页面中的"MCP Server URL",作为下一步在VS Code中配置MCP Server的URL。

在VS Code中添加MCP配置

可以通过命令面板执行 MCP: Add Server 添加服务器,也可以直接在工作区的 .vscode/mcp.json 中配置。

示例配置如下:

复制代码
        "my-mcp-server-apim-learn": {
            "url": "https://xxxxxx.azure-api.cn/learn/api/api/mcp",
            "type": "http",
            "headers": {
                "Ocp-Apim-Subscription-Key": "xxxxxxxxxxxxx"
            }
        }

这里需要注意:

  • type 设置为 http,用于连接 Streamable HTTP MCP 终结点。
  • APIM 产品启用订阅要求时,客户端需在 Ocp-Apim-Subscription-Key 请求头中携带订阅密钥。

配置保存后,可在 VS Code 中启动该 MCP Server。

测试MCP调用

在 GitHub Copilot Chat 中切换至 Agent 模式,打开 Tools,即可看到从 Microsoft Learn MCP Server 发现的工具,例如"调用MCP服务来查看APIM的官方指导文档,如何配置api内容"

实验成功。

本文讨论的是"公开已经存在的 MCP Server(Via Proxy)"模式。若要把 APIM 中已有的 REST API 直接转换为 MCP 工具,应使用"将 REST API 公开为 MCP Server"的功能,两者的适用场景不同。

参考资料

APIM 公开现有 MCP 服务器 : https://learn.microsoft.com/zh-cn/azure/api-management/expose-existing-mcp-server#expose-an-existing-mcp-server


当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关推荐
典典分享指南7 分钟前
用飞书 Wiki 搭内容作战室:从零搭建团队内容协作中枢
django·flask·numpy·pyqt
宝桥南山11 小时前
Microsoft Fabric - 简单尝试一下Microsoft Fabric .NET SDK
microsoft·微软·.net·.netcore·powerbi·fabric
hqyjzsb11 小时前
规划工商管理大学成长:搭建四层能力体系,重视高阶的 AI 能力建设
开发语言·人工智能·python·microsoft·职场和发展·数据挖掘·业界资讯
life码农15 小时前
python框架Flask多语言配置示例
python·flask
ai_finder1 天前
买卖点预警系统是怎么工作的?从自然语言到盯盘任务的一次工程拆解
人工智能·科技·microsoft·金融
毕业设计7032 天前
(免费领源码)基于Python的博物馆研学活动管理系统的设计与实现22724- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
python·mysql·随机森林·pycharm·django·flask·推荐算法
m0_466525292 天前
从火柴人看护画面看云从科技生态企业的隐私保护实践
大数据·人工智能·科技·microsoft
大模型码小白2 天前
告别造假数据,直接连数据库查真实时序数据喂给 TimechoAI 大模型
java·数据库·人工智能·microsoft·架构
海盗12343 天前
微软技术日报 2026-09-14:Rust 升为微软一级语言,云业务重组为智能体与基础设施
开发语言·microsoft·rust
深圳市尚想信息技术有限公司3 天前
HITENX海速芯TM52F1363-SSOP24 8KB Flash存储+EEPROM,国产8位MCU单片机
单片机·mcu·flask·芯片·控制器·海速芯