项目简介
Azure MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的应用程序后端实现。它旨在为大型语言模型 (LLM) 客户端(如AI助手)提供一种标准化的方式,以访问和管理 Azure 云服务中的资源和功能。通过实现 MCP 规范,Azure MCP 服务器能够托管一系列工具 (Tools),允许 LLM 客户端通过结构化的 JSON-RPC 请求调用这些工具来执行诸如列出资源、查询数据或管理配置等操作,并接收标准化的响应。
主要功能点
该服务器提供了与多种 Azure 服务交互的能力,通过暴露相应的 MCP 工具实现:
- Azure Cosmos DB (NoSQL):列出账户、数据库、容器;查询容器中的数据。
- Azure Storage:列出存储账户、Blob 容器、Blob、表;获取容器详情。
- Azure Monitor (Log Analytics):列出 Log Analytics 工作区、表;执行 KQL 日志查询。
- Azure App Configuration:列出配置存储、键值对;锁定/解锁、设置、显示、删除键值对。
- Azure Resource Groups:列出资源组。
- Azure CLI (az):通过 MCP 调用 Azure CLI 命令。
- Azure Developer CLI (azd):通过 MCP 调用 Azure Developer CLI 命令。
服务器通过 JSON-RPC 协议通信,支持标准 I/O (Stdio) 和 SSE (Server-Sent Events) 等传输方式,并处理 Azure 身份验证。
安装步骤
Azure MCP 服务器作为一个可执行程序发布,通常通过 Node.js 包管理器 'npm' 或 'npx' 进行安装和运行。
-
安装 Node.js 和 npm:确保您的系统已安装 Node.js 和 npm。您可以从 Node.js 官方网站 下载并安装。
-
安装 Azure CLI 或 Azure Developer CLI (可选):某些工具(如 'azmcp-extension-az' 和 'azmcp-extension-azd')依赖于本地安装的 Azure CLI 或 Azure Developer CLI。如果需要使用这些工具,请确保它们已正确安装并配置。
-
通过 npx 运行:最常见的启动服务器的方式是使用 'npx' 命令,它会自动下载并运行最新的 Azure MCP 服务器包:
npx -y @azure/mcp@latest server start [options]这里的 '[options]' 可以包含传输方式(如 '--transport sse --port 5008')等参数。
服务器配置
Azure MCP 服务器是为 MCP 客户端设计的。您的 MCP 客户端需要知道如何启动并连接到此服务器。典型的 MCP 客户端配置通常是一个 JSON 对象,指示服务器的启动命令和参数。
以下是一个 MCP 客户端可能使用的配置示例(请注意,这取决于您的具体 MCP 客户端实现,配置格式可能有所不同,此处仅为概念性示例,不是可以直接运行的代码):
{ "servers": { "Azure MCP Server": { // 服务器的友好名称 "command": "npx", // 启动服务器的可执行命令 "args": [ // 传递给命令的参数列表 "-y", // npx 参数,自动确认安装包 "@azure/mcp@latest", // Azure MCP 包名称和版本 "server", // 命令组 "start" // 启动服务器的命令 // 可选参数,例如指定 SSE 传输和端口: // "--transport", "sse", // "--port", "5008" ] // 其他客户端可能需要的配置,例如传输类型等 // "type": "stdio" // 或 "sse" // "url": "http://localhost:5008/sse" // 如果使用 SSE 传输 } } }
客户端将使用此配置信息来启动 Azure MCP 服务器进程,并通过配置的传输方式(默认为标准 I/O)与之建立 JSON-RPC 连接。
基本使用方法
一旦 MCP 客户端(例如一个AI助手或集成开发环境插件)成功连接到 Azure MCP 服务器,客户端就可以向服务器发送 MCP 请求来利用其功能。最常见的请求是调用工具 ('tools/call') 和列出可用工具 ('tools/list')。
AI助手客户端通常会将用户的自然语言指令转换为 'tools/call' 请求,例如:
- 当用户说 "List my Azure storage accounts" 时,客户端可能会发送一个请求调用 'azmcp-storage-account-list' 工具。
- 当用户说 "Query logs from my workspace" 时,客户端可能会发送一个请求调用 'azmcp-monitor-log-query' 工具,并提供工作区名称和查询语句作为参数。
服务器收到请求后,会执行相应的 Azure 操作,并将结果以结构化的 JSON 格式返回给客户端。客户端再根据这些结果生成对用户的响应。
您可以通过支持 MCP 的客户端(如某些版本的 Visual Studio Code 集成的 AI 功能)来直接体验与 Azure MCP 服务器的交互。
信息
分类
AI与计算