内容
# Azure VM Management MCP
一个基于Python的演示工具,用于通过MCP(模型上下文协议)管理Azure虚拟机。该项目提供了一个简单的接口,可以使用自然语言创建、列出和删除Azure虚拟机及其相关的网络资源,支持使用LLM客户端,如Claude或Visual Studio Code。
## 先决条件
- Python 3.13或更高版本
- Azure订阅
- Azure CLI(用于身份验证)
- 一个LLM/MCP客户端。可以使用[Claude](https://claude.ai/download)或[Visual Studio Code](https://code.visualstudio.com/docs/copilot/chat/mcp-servers)
## 安装
1. 克隆此代码库:
```sh
git clone https://github.com/brauliomsft/azure-mcp
cd azure-mcp
```
2. 安装uv并设置Python项目和环境:
```sh
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```
3. 创建并激活虚拟环境:
```sh
uv venv
.venv\Scripts\activate
```
4. 安装依赖:
```sh
pip install -r src/requirements.txt
```
## 配置
1. 复制示例环境文件:
```sh
cp src/.env.example src/.env
```
2. 使用您的Azure凭据更新`.env`文件:
```
AZURE_RESOURCE_GROUP = "your-resource-group"
AZURE_LOCATION = "your-location"
SUBSCRIPTION_ID = "your-subscription-id"
```
## 可用命令
该项目提供以下MCP工具:
- `list_vms`:列出指定资源组中的所有虚拟机
- `create_vm`:创建一个新的Ubuntu 18.04虚拟机,并进行基本网络设置
- `delete_vm`:删除虚拟机及其相关的网络资源
## 使用方法
运行MCP服务器:
```sh
uv run .\src\main.py
```
## MCP客户端配置(针对Claude)
### Claude
1. 导航到Claude配置文件(`C:\Users\<user>\AppData\Roaming\Claude for Windows`)
2. 将以下文本添加到claude_desktop_config.json文件中。**确保使用您本地机器上的完整路径。例如 'C:\\code\\azure-mcp\\src'**
```sh
{
"mcpServers": {
"Azure VM": {
"command": "uv",
"args": [
"--directory",
"<FULL_PATH\\>azure-mcp\\src\\",
"run",
"main.py"
]
}
}
}
```
3. 验证Claude是否已连接到MCP服务器。打开Claude应用程序,导航到文件 -> 设置。在开发者选项卡中,“Azure MCP”服务器应显示为正在运行


## 项目结构
```
├── src/
│ ├── azure_clients.py # Azure SDK客户端初始化
│ ├── networking.py # 网络资源管理
│ ├── vm_operations.py # 虚拟机管理操作
│ └── main.py # 入口点
├── pyproject.toml # 项目依赖和元数据
└── README.md
```
## 安全提示
⚠️ 默认的虚拟机配置使用硬编码密码。对于生产使用,请修改`vm_operations.py`中的`create_vm`函数,以使用更安全的身份验证方法。
## 贡献
欢迎贡献!请随时提交Pull Request。