使用说明
项目简介
本项目 'Azure资源图谱 MCP 服务器' 是一个实现了 Model Context Protocol (MCP) 协议的后端服务。它作为一个桥梁,连接大型语言模型(LLM)客户端和 Azure 资源图谱服务,使得 LLM 能够便捷地查询和利用 Azure 云环境中的资源信息。通过注册 'query-resources' 工具,本服务器允许 LLM 客户端根据用户的自然语言指令,查询 Azure 资源,并将结果以结构化文本形式返回,从而增强 LLM 在云资源管理和信息检索方面的能力。
主要功能点
- Azure 资源查询: 提供查询 Azure 资源图谱的能力,支持使用 Kusto 查询语言 (KQL) 进行灵活和强大的资源检索。
- 默认及自定义查询: 默认查询返回资源 ID、名称、类型和位置等基本信息,同时也支持用户自定义 Resource Graph 查询以获取更精细的数据。
- 基于 MCP 协议: 遵循 MCP 协议标准,易于与任何兼容 MCP 协议的 LLM 客户端集成。
- Azure 身份验证: 使用 'DefaultAzureCredential' 进行 Azure 身份验证,支持多种 Azure 凭据来源,包括 Azure CLI、托管身份、Visual Studio Code 凭据和环境变量等。
- 工具注册: 注册 'query-resources' 工具,供 LLM 客户端调用,实现资源查询功能。
安装步骤
-
克隆仓库: 将 GitHub 仓库 'azure-resource-graph-mcp-server' 克隆到本地计算机。
git clone https://github.com/hardik-id/azure-resource-graph-mcp-server.git cd azure-resource-graph-mcp-server -
安装依赖: 使用 npm 安装项目依赖。
npm install -
构建项目: 构建 TypeScript 项目到 JavaScript。
npm run build
服务器配置
要将此 MCP 服务器集成到 MCP 客户端(例如 Cursor IDE 或 VS Code),您需要配置客户端以启动并连接到此服务器。以下是针对不同客户端的配置示例。请注意,您只需配置客户端,无需修改服务器端配置。
针对 Cursor IDE 的配置 (JSON):
打开 Cursor IDE 的设置 (JSON) 文件,并添加以下 'mcpServers' 配置。请根据您的实际仓库路径修改 'command' 和 'args' 中的路径。
{ "mcpServers": { "azure-resource-graph-mcp-server": { "command": "node", "args": [ "/path/to/azure-resource-graph-mcp-server/build/index.js" ], "env": { "SUBSCRIPTION_ID": "your-azure-subscription-id" } } } }
针对 VS Code 的配置 (JSON):
打开 VS Code 的用户设置 (JSON) 文件,并添加以下 'mcp.servers' 配置。同样,请根据您的实际仓库路径修改 'command' 和 'args' 中的路径。
{ "mcp": { "servers": { "azure-resource-graph": { "type": "stdio", "command": "node", "args": [ "/path/to/azure-resource-graph-mcp-server/build/index.js" ], "env": { "SUBSCRIPTION_ID": "your-azure-subscription-id" } } } } }
配置参数说明:
- '"azure-resource-graph-mcp-server"' 或 '"azure-resource-graph"': 服务器名称,在客户端中用于标识和调用此 MCP 服务器。
- '"command": "node"': 启动服务器的命令,这里使用 Node.js 运行时。
- '"args": [...]': 传递给 'node' 命令的参数,指向构建后的服务器入口文件 'index.js' 的路径。 请务必将 '/path/to/azure-resource-graph-mcp-server' 替换为您本地仓库的实际路径。
- '"env": { "SUBSCRIPTION_ID": "your-azure-subscription-id" }': 设置环境变量。 'SUBSCRIPTION_ID' 用于指定 Azure 订阅 ID。 请将 'your-azure-subscription-id' 替换为您的 Azure 订阅 ID。
环境变量 'SUBSCRIPTION_ID' 说明:
'SUBSCRIPTION_ID' 环境变量用于指定要查询的 Azure 订阅 ID。您可以在服务器配置中设置默认订阅 ID,也可以在调用 'query-resources' 工具时通过参数动态指定。
基本使用方法
配置完成后,您的 MCP 客户端应该能够检测到并使用 'Azure资源图谱 MCP 服务器' 提供的功能。
使用 'query-resources' 工具:
LLM 客户端可以通过调用 'query-resources' 工具来查询 Azure 资源。
- 默认查询: 不带任何参数调用 'query-resources' 工具,将执行默认查询,返回订阅中所有资源的 ID、名称、类型和位置。
- 自定义查询: 可以传递 'query' 参数来执行自定义的 Resource Graph 查询。例如,查询特定类型的资源或应用过滤器。
示例 (假设在支持 MCP 协议的 LLM 客户端中):
用户输入自然语言指令,例如:
"列出我订阅中的所有虚拟机"
LLM 客户端解析指令后,可能会调用 'query-resources' 工具,并传递如下参数 (query 参数的值会根据用户的指令进行转换):
{ "tool_call": { "id": "tool_call_123", "type": "tool", "tool_name": "query-resources", "parameters": { "query": "Resources | where type == 'microsoft.compute/virtualmachines' | project id, name, location" } } }
服务器将执行该查询,并将结果以 JSON 字符串形式返回给 LLM 客户端。客户端可以进一步处理和展示这些信息。
确保 Azure 凭据配置正确:
在运行 MCP 服务器之前,请确保您已经配置了 Azure 凭据。最简单的方式是使用 Azure CLI 登录:
az login
或者,您可以通过设置环境变量等其他方式配置 'DefaultAzureCredential' 支持的凭据。
信息
分类
开发者工具