Token导航 LogoToken导航TokenDH.com
Azure Functions MCP Resource Graph logo
运维云端未说明官方级别未说明来源级核验

Azure Functions MCP Resource Graph

MCP Server

通过Azure Functions提供的MCP工具,允许客户端执行KQL查询以跨订阅搜索Azure资源。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
资源管理TypeScript云端部署

安装说明

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

作者 / 组织

horihiro

提供方

horihiro

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

MCP资源图(Azure函数)

此项目通过Azure Functions(Node.js v4)公开了一个模型上下文协议(MCP)工具。它允许MCP客户端对Azure资源图执行KQL查询,通过 query_resource_graph 工具。

概述

  • 条目: src/index.ts –功能初始化。
  • MCP工具: src/functions/mcpResourceGraph.ts

- 工具名称: query_resource_graph - 经办人: mcpQueryGraph

  • 逻辑: src/logics/queryGraphLogic.ts –调用资源图REST API。
  • 认证: src/utils/auth.ts –通过以下方式获得ARM范围的令牌 DefaultAzureCredential.
  • 验证: src/utils/patterns.ts –用于订阅ID等的正则表达式。

能力

  • 将KQL查询发送到Azure资源图并检索结果。

- 示例:列出虚拟机、资源组、订阅、具有特定标签的资源等。

  • 如果 subscriptions 省略了环境变量 AZURE_SUBSCRIPTION_ID (如果存在)用作默认值。

先决条件

  • Node.js 18+(TypeScript 5)
  • Azure功能核心工具v4(func)
  • Azure CLI(建议用于本地身份验证)
  • 权限:目标订阅的阅读器或更高版本

设置

# Install dependencies
npm install

# Authenticate locally
az login

# Optionally set a default subscription for queries
# Linux / macOS
export AZURE_SUBSCRIPTION_ID=""
# Windows (PowerShell)
$env:AZURE_SUBSCRIPTION_ID=""

local.settings.json 配置用于开发 AzureWebJobsStorage=UseDevelopmentStorage=true (Azurite)。函数不使用存储触发器,但函数需要存储连接。

在本地运行

  • VS代码任务

- npm watch (functions) 背景 - func: host start 背景

  • 或通过命令
# TypeScript watch build
npm run watch
# In another terminal, or let prestart build and start
npm start   # = func start

当Functions Core Tools启动时,MCP Webhook会监听 http://localhost:7071/runtime/webhooks/mcp.

从MCP使用

  • 端点: http://localhost:7071/runtime/webhooks/mcp
  • 工具: query_resource_graph
  • 参数:

- subscriptions?: string[] –目标订阅ID(可选) - query: string –KQL用于资源图

配置支持MCP的客户端(编辑器/代理)以注册上述端点。客户将列出 query_resource_graph 并允许您传递参数和运行查询。

注意:MCP webhooks的HTTP有效载荷格式取决于客户端实现。建议使用MCP客户端而不是手动客户端 curl.

示例查询(KQL)

  • 列出虚拟机:
Resources
| where type =~ "Microsoft.Compute/virtualMachines"
| project name, location, resourceGroup, subscriptionId, properties.hardwareProfile.vmSize
  • 列出资源组:
ResourceContainers
| where type =~ "microsoft.resources/subscriptions/resourcegroups"
| project name, location, subscriptionId, tags

常见错误和补救措施

  • 一个或多个订阅ID无效:

- 确认订阅ID格式(UUID)。

  • 未能获取Azure AD/Entra ID令牌:

- 确保 az login 已完成,或 AZURE_TENANT_ID / AZURE_CLIENT_ID / AZURE_CLIENT_SECRET (或托管身份)设置正确。

  • 未能绘制数据:

- 检查权限(Reader+)、网络可达性和API版本(2022-10-01).

部署(概述)

  1. 在Azure中创建功能应用程序(Node 18,Linux推荐)。
  2. 启用系统分配的托管标识,并在目标订阅上授予Reader或更高版本。
  3. 可选设置 AZURE_SUBSCRIPTION_ID 在应用程序设置中。
  4. 从VS代码或功能核心工具部署:
func azure functionapp publish 

开发说明

  • TypeScript: npm run build / npm run watch
  • 密钥代码:

- src/functions/mcpResourceGraph.ts –MCP工具暴露和arg定义 - src/logics/queryGraphLogic.ts –资源图REST执行 - src/utils/auth.ts –通过以下方式获取代币 DefaultAzureCredential

  • API终点:

- POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2022-10-01

许可证

如果没有为此存储库定义许可证,请根据您的组织/个人协议进行处理。

目录标签

目录标签

资源管理TypeScript云端部署本地部署跨订阅查询KQL查询Azure资源

接入字段

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

未说明

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

session

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明session部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP