Token导航 LogoToken导航TokenDH.com
MCP Apim Functions Sample logo
开发工具未说明官方级别未说明来源级核验

MCP Apim Functions Sample

MCP Server

这是一个Azure参考实现,通过单个Azure API管理网关提供MCP服务器和状态变更操作的REST API,适用于配送跟踪和管理的学习与验证。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
API集成ShellVS CodeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mizti

提供方

mizti

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

mcp-apim函数示例

具有API管理和功能的MCP服务器的Azure参考实现

建筑

alt text

此回购提供了什么

这是一个最小的Azure示例,通过单个Azure API管理(APIM)网关公开:

  • 托管在Azure Functions上的MCP服务器(Python编程模型v2)公开 工具 (只读,装运跟踪场景)
  • 托管在Azure函数上的小型REST API 状态变化 操作(创建/读取货物),APIM还将其暴露为 MCP工具

它专为学习和验证而设计,可以使用Azure Developer CLI进行端到端部署:

  • 一个命令部署: azd up
  • APIM是唯一的公共入口点
  • Azure功能开启 弹性消费
  • 启用应用程序洞察

端点(APIM公共):

  • MCP服务器(装运跟踪/详细信息/规则,可流式HTTP):APIM 现有MCP服务器 端点URL(如所示 azd up 输出)
  • MCP服务器(发货,流式HTTP):APIM 将REST API公开为MCP服务器 端点URL(如所示 azd up 输出)

身份验证(示例):APIM订阅密钥。

注意:根据您的APIM配置,订阅密钥可能是可选的。附带的烟雾测试脚本支持这两种模式。

如何使用

先决条件:

  • Azure订阅
  • Azure开发者命令行界面(azd)
  • Azure命令行界面(az)

部署:

azd auth login
azd env set APIM_PUBLISHER_EMAIL "you@example.com"
azd env set APIM_PUBLISHER_NAME "Your Name"
azd up

注意:资源命名使用 AZURE_ENV_NAME 通过 infra/main.parameters.json 因此,您为其输入的Azure环境名称 azd 反映在配置的资源名称中。

之后 azd up,请注意打印的APIM网关基本URL和订阅密钥。

调用REST API(示例):

curl -sS -X POST "${APIM_BASE_URL}/api/shipments" \
	-H "Content-Type: application/json" \
	-H "Ocp-Apim-Subscription-Key: ${APIM_SUBSCRIPTION_KEY}" \
	-d '{"recipientName":"佐藤花子","from":"東京都千代田区","to":"大阪府大阪市","weightKg":10,"sizeCm":"40x30x20","note":"割れ物注意"}'

呼叫MCP服务器:

  • 使用任何支持以下功能的MCP客户端 可流式传输的HTTP.
  • 对于VS Code/GitHub Copilot,配置由打印的服务器URL azd up 并包括 Ocp-Apim-Subscription-Key 头球

注:APIM MCP端点可能会以SSE帧输出进行响应(event: / data:)即使后端使用Streamable HTTP。

烟雾测试:

  • ./tests/apim_smoke_test.sh 通过APIM验证REST+MCP。

清理:

azd down

______________________________________________________________________

日本语

此存储库提供

此存储库是一个最小的示例,它将单个Azure API管理(APIM)作为网关,同时发布以下内容:。

  • 在Azure Functions(Python编程模型v2)中运行 MCP服务器(参照系的 工具 公开。配送跟踪、配送详细信息、配送规则)
  • 在空气功能中运行 REST API(配送货物的登记/参照等状态变更系)

用于学习和验证,功能最小。可以通过Azure Developer CLI批量部署。

  • azd up 然后将基础设施+应用程序集中部署
  • 公共端点假定为APIM
  • Azure Functions是 弹性消费
  • 启用应用程序索引

端点:

  • 参考:配送跟踪/配送详细信息/配送规则。可流HTTP):APIM的 现有MCP服务器 服务器URL(azd up 在输出中显示)
  • 配送系:shipments操作作为tools公开。可流HTTP):APIM的 REST API作为MCP服务器 服务器URL(azd up 在输出中显示)

认证(示例):APIM Subscription Key。

注意:根据APIM的设置,可以不需要Subscription Key。本存储库的烟雾测试可在任何设置下运行。

使用此存储库

前提:

  • Azure预订
  • Azure开发者命令行界面(azd
  • Azure命令行界面(az

部署:

azd auth login
azd env set APIM_PUBLISHER_EMAIL "you@example.com"
azd env set APIM_PUBLISHER_NAME "Your Name"
azd up

azd up 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

功能测试

通过以下命令可以确认函数应用程序是否正常运行。

./tests/functions_smoke_test.sh

如果想手动调用REST API,请参考以下内容:

curl -sS -X POST "${APIM_BASE_URL}/api/shipments" \
	-H "Content-Type: application/json" \
	-H "Ocp-Apim-Subscription-Key: ${APIM_SUBSCRIPTION_KEY}" \
	-d '{"recipientName":"佐藤花子","from":"東京都千代田区","to":"大阪府大阪市","weightKg":10,"sizeCm":"40x30x20","note":"割れ物注意"}'

API管理设置

※本来MCP设定也可以用Bicep进行,但是因为没有足够的文档信息,所以APIM的MCP设定 你先去门户吧。

要通过API管理设置MCP,请设置以下内容。

  1. 注册Shipment API(准备)
  • 从APIs>API>Createfrom definition>OpenAPI打开docs/api.yaml。

- 显示名称:发货API - 名称:shipmant api - API URL后缀:API 创建

  • 注册后,从设置

- https:///api将设置为Web service URL(这相当于指定后端) - 取消选中Subscription required(为了使本样本的认证最小化) - alt text

  • 保存,保存
  1. 注册Shipment REST MCP
  • 从MCP服务器>MCP服务器的制作中选择“将API作为MCP服务器公开”
  • 选择Shipment API作为API,API操作选择所有API
  • 作为新的MCP服务器的设定,指定以下“制作”

- 显示名称:装运REST MCP - 名称:装运休息mcp - 说明:可以注册、参照配送行李

alt text

  1. 注册Shipment Tracking MCP
  • 从MCP服务器>MCP服务器的制作中选择“公开现有的MCP服务器”
  • 作为新的MCP服务器的设定,指定以下“制作”

- MCP服务器的基本URL:指定https:/\ - 显示名称:发货跟踪MCP - 名称:货物跟踪mcp - 基本路径:shipment-mcp - 说明:您可以跟踪配送、查看配送详细信息和查看配送规则

alt text

至此,后端的函数应用程序可以在API管理中作为MCP公开。

您可以通过更改注册的MCP设置和策略来进行订阅密钥认证或应用各种策略。另外,也可以和API一样经由产品等公开。

./tests/apim_smoke_test.sh

中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

API中心测试

有两种测试脚本可通过REST API浏览和验证在API中心注册的API。

控制平面API测试

测试通过Azure资源管理器(ARM)获取API中心信息。az rest 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

./tests/apic_rest_api_test.sh

所需权限: Microsoft.ApiCenter/services/*/read(Reader角色等) 自动授予已构建的用户

数据平面API测试

API Center数据平面API(https://.data..azure-apicenter.ms中所述修改相应参数的值。

前提条件(仅需首次设置):

  1. 创建Entra ID应用程序注册

Azure门户>API中心> API中心门户 > 设置 > 配置Entra ID 中所述修改相应参数的值。因此 -apic-aad 将自动创建名为的Entra ID应用程序注册,并将所需的角色授予服务承担者。

但是,被制作的应用程序作为机密客户机(confidential client)被构成。由于测试脚本使用设备代码流(公共客户端流),因此在首次运行时脚本会自动启用公共客户端流。手动设置时Azure Portal>App registrations> -apic-aad > 认证 > 允许公共客户端流 中所述修改相应参数的值。

  1. 添加RBAC角色

测试运行用户 Azure API中心数据读取器 授予角色。 门户设置将自动授予服务承担者,但设备代码流(授权授权授权)将以用户的权限发布令牌执行用户自身也需要角色是:

   az role assignment create \
     --assignee "" \
     --role "Azure API Center Data Reader" \
     --scope "/subscriptions//resourceGroups//providers/Microsoft.ApiCenter/services/"
  1. 运行测试

脚本自动从azd环境中检测API中心名称区域-apic-aad 寻找应用程序注册。由于使用设备代码流身份验证,运行时将提示浏览器进行身份验证。

   ./tests/apic_dataplane_test.sh

也可以在环境变量中手动指定:

   APIC_SERVICE_NAME=apic-apimcp \
   APIC_REGION=japaneast \
   APIC_CLIENT_ID= \
   ./tests/apic_dataplane_test.sh
注: 数据平面API不能通过Azure CLI令牌直接访问(AADSTS 65002)。需要通过Entra ID应用程序注册的认证。了解更多信息 API中心门户的自主机 来修改标记元素的显示属性。

削除:

azd down

目录标签

目录标签

API集成ShellVS Code本地部署API管理AzureFunctionsMCP服务器配送跟踪RESTAPI

支持客户端

VS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP