使用说明
项目简介
Azure MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器端应用,旨在为大型语言模型 (LLM) 客户端提供访问和管理 Azure 云资源的能力。它通过标准化的 MCP 协议,将 Azure 服务的操作封装成易于 LLM 调用的工具,并支持未来扩展 Prompt 模板和资源管理功能。
主要功能点
- 工具 (Tools) 注册与执行: 服务器预置了一系列用于操作 Azure 资源的工具,例如:
- 列出 Azure 订阅 (list-subscriptions)
- 列出资源组 (list-resource-groups)
- 创建资源组 (create-resource-group)
- 列出资源组中的资源 (list-resources)
- 检查存储账户名称是否可用 (check-storage-account-name-availability) 这些工具可以通过 MCP 协议被 LLM 客户端调用,从而实现与 Azure 资源的交互。
- 基于标准 Stdio 的 MCP 协议: 服务器使用标准输入输出 (Stdio) 作为 MCP 协议的传输方式,方便集成到各种 LLM 应用环境中。
- 简单的工具定义和扩展: 工具的定义采用 JSON Schema 描述输入参数,易于理解和扩展新的 Azure 资源操作工具。
安装步骤
- 克隆仓库:
git clone https://github.com/rchaganti/azure-mcp-server cd azure-mcp-server - 安装依赖:
建议使用虚拟环境。
这将安装项目依赖,包括 'mcp' 库和 Azure SDK 相关库。pip install -e . - 配置 Azure 凭据:
Azure MCP Server 需要 Azure 凭据才能访问您的 Azure 资源。推荐使用环境变量配置凭据。
- 设置环境变量: 您需要设置以下环境变量,通常可以通过创建 '.env' 文件在项目根目录下配置,或者直接在您的 shell 环境中设置。
注意: 请替换 '<...>' 为您的实际 Azure 凭据信息。您需要创建一个 Azure 服务主体并授予其适当的 Azure 资源访问权限。具体步骤请参考 Azure 官方文档。AZURE_SUBSCRIPTION_ID="<您的 Azure 订阅 ID>" AZURE_CLIENT_ID="<您的 Azure 服务主体客户端 ID>" AZURE_CLIENT_SECRET="<您的 Azure 服务主体客户端密钥>" AZURE_TENANT_ID="<您的 Azure 租户 ID>"
- 设置环境变量: 您需要设置以下环境变量,通常可以通过创建 '.env' 文件在项目根目录下配置,或者直接在您的 shell 环境中设置。
服务器配置
MCP 客户端需要配置以下 JSON 信息以连接 Azure MCP Server:
{ "serverName": "azure-mcp-server", "command": "azure-mcp-server", "args": [], "transport": "stdio" }
配置参数说明:
- 'serverName': 服务器名称,标识该 MCP 服务器,设置为 "azure-mcp-server" 即可。
- 'command': 启动 MCP 服务器的命令。由于项目安装后会将 'azure-mcp-server' 命令添加到 Python 的 scripts 目录(通常在 'PATH' 环境变量中),因此可以直接使用 'azure-mcp-server' 命令启动服务器。
- 'args': 启动命令的参数,本服务器无需额外参数,保持为空列表 '[]' 即可。
- 'transport': 指定 MCP 客户端与服务器通信的传输协议。本服务器使用标准输入输出,因此设置为 '"stdio"'。
重要提示:
- 确保您的 MCP 客户端能够执行 'azure-mcp-server' 命令。这通常意味着 Python 的 scripts 目录已添加到系统的 'PATH' 环境变量中。
- 确保已正确配置 Azure 凭据环境变量,否则服务器将无法访问 Azure 资源。
基本使用方法
- 启动 MCP 服务器: 在安装了 Azure MCP Server 的环境中,MCP 客户端启动后会自动根据配置信息启动 'azure-mcp-server' 命令,服务器将在后台运行并通过 Stdio 与客户端通信。
- 客户端调用工具: LLM 客户端可以通过 MCP 协议向 Azure MCP Server 发送请求,例如调用 'list-subscriptions' 工具来获取 Azure 订阅列表,或调用 'create-resource-group' 工具来创建新的资源组。
- 查看服务器响应: 服务器执行工具后,会将结果封装成 MCP 响应返回给客户端,客户端可以解析响应并呈现给用户或供 LLM 使用。
示例 (MCP 客户端操作流程): 客户端首先会发送 'initialize' 请求到服务器,服务器返回 'initialize' 响应,声明其 capabilities。 客户端可以发送 'mcp/listTools' 请求获取工具列表,服务器会返回包含所有可用工具的列表的响应。 客户端可以通过 'mcp/callTool' 请求调用具体的工具,例如调用 'list-resource-groups' 工具时,客户端需要根据工具的 'inputSchema' 提供相应的参数(例如 'subscription_id')。服务器执行工具后,会将结果通过 'mcp/callTool' 响应返回。
信息
分类
开发者工具