mcp proxmox
MCP服务器,用于通过Claude、Cursor和Cline等人工智能助手管理Proxmox VE集群。
通过自然语言配置、管理和监控整个Proxmox基础架构。创建虚拟机和容器、管理快照、浏览存储等。
快速开始
# Run directly with uvx (no install needed)
uvx mcp-proxmox
# Or install with pip
pip install mcp-proxmox
配置
设置这些环境变量(或创建 .env 文件):
PROXMOX_HOST=192.168.1.100 # Your Proxmox VE host
PROXMOX_TOKEN_ID=user@pam!mcp # API token ID
PROXMOX_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # API token secret
可选:
PROXMOX_PORT=8006 # Default: 8006
PROXMOX_VERIFY_SSL=false # Default: false
创建Proxmox API令牌
- 登录到Proxmox web UI
- 首选 数据中心 > 权限 > API令牌
- 点击 添加 并为您的用户创建一个令牌
- 取消勾选 完全访问或分配特定权限的“特权分离”:
- VM.Audit --读取VM/CT状态和配置 - VM.PowerMgmt --启动/停止/关闭/重新启动 - VM.Snapshot --创建/回滚/删除快照 - VM.Allocate --创建/删除/克隆虚拟机和容器 - VM.Clone --克隆操作 - Datastore.Audit --列出存储和浏览内容 - Datastore.AllocateSpace --为新的VM/CT分配磁盘空间 - Sys.Audit --读取节点状态和任务 - VM.Config.Disk --调整磁盘大小 - VM.Config.CPU --更改CPU分配 - VM.Config.Memory --更改内存分配 - VM.Monitor --访问QEMU监视器(用于度量) - VM.Migrate --在节点之间迁移VM/CT - Sys.Modify --管理防火墙规则 - VM.Config.Cloudinit --配置云初始化参数
整合
克劳德桌面版
添加 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"proxmox": {
"command": "uvx",
"args": ["mcp-proxmox"],
"env": {
"PROXMOX_HOST": "192.168.1.100",
"PROXMOX_TOKEN_ID": "user@pam!mcp",
"PROXMOX_TOKEN_SECRET": "your-token-secret"
}
}
}
}
克劳德代码
添加 .claude/settings.json 或 ~/.claude/settings.json:
{
"mcpServers": {
"proxmox": {
"command": "uvx",
"args": ["mcp-proxmox"],
"env": {
"PROXMOX_HOST": "192.168.1.100",
"PROXMOX_TOKEN_ID": "user@pam!mcp",
"PROXMOX_TOKEN_SECRET": "your-token-secret"
}
}
}
}
光标
使用与上述相同的配置添加到光标设置>MCP。
可用工具
发现
| 工具 | 说明 |
|---|
list_nodes | 列出所有具有CPU、内存和正常运行时间的群集节点 |
get_node_status | 详细节点信息:CPU型号、内存、磁盘、版本 |
list_vms | 列出QEMU虚拟机(按节点或状态筛选) |
list_containers | 列出LXC容器(按节点或状态筛选) |
get_guest_status | VMID的详细VM/CT状态(自动检测类型和节点) |
生命周期
| 工具 | 说明 |
|---|
start_guest | 启动已停止的VM或容器 |
stop_guest | 强制停止(需要确认) |
shutdown_guest | 优雅的ACPI/初始化关闭 |
reboot_guest | 重新启动(需要确认) |
存储
| 工具 | 说明 |
|---|
list_storages | 列出存储池的容量和使用情况(按节点筛选) |
list_storage_content | 浏览ISO、模板、备份和磁盘映像 |
配置
| 工具 | 说明 |
|---|
create_vm | 创建具有可配置CPU、内存、磁盘、ISO和网络的QEMU VM |
create_container | 从模板创建LXC容器 |
clone_guest | 克隆VM或CT(完整或链接克隆,跨节点支持) |
delete_guest | 永久删除已停止的VM或CT(需要确认) |
备份与恢复
| 工具 | 说明 |
|---|
list_backups | 列出备份文件(按节点、存储或VMID筛选) |
create_backup | 创建vzdump备份(快照/挂起/停止模式,zstd/lzo/gzip) |
restore_backup | 从备份文件还原VM或CT(需要确认) |
命令执行
| 工具 | 说明 |
|---|
exec_command | 通过来宾代理在QEMU VM内运行命令 |
注: exec_command 需要 qemu-guest-agent 在VM内部安装并运行。LXC容器不支持(Proxmox API限制)。
快照
| 工具 | 说明 |
|---|
list_snapshots | 列出VM/CT的所有快照 |
create_snapshot | 创建新快照 |
rollback_snapshot | 回滚到快照(需要确认) |
delete_snapshot | 删除快照(需要确认) |
网络
| 工具 | 说明 |
|---|
list_networks | 列出节点上的网桥、绑定和物理接口 |
调整大小
| 工具 | 说明 |
|---|
resize_guest | 调整VM或容器的CPU、内存和/或磁盘大小(需要确认) |
监控
| 工具 | 说明 |
|---|
get_guest_metrics | CPU、内存、网络、磁盘I/O随时间变化 |
list_tasks | 节点上最近的任务(备份、迁移等) |
防火墙
| 工具 | 说明 |
|---|
list_firewall_rules | 列出VM/CT、节点或群集的防火墙规则 |
add_firewall_rule | 添加防火墙规则(操作、方向、协议、端口、源/目标) |
delete_firewall_rule | 按位置删除防火墙规则(需要确认) |
迁移
| 工具 | 说明 |
|---|
migrate_guest | 将VM/CT实时或离线迁移到另一个节点(需要确认) |
模板和云初始化
| 工具 | 说明 |
|---|
list_templates | 列出可用于克隆的所有VM模板 |
create_template | 将已停止的VM转换为模板(需要确认,不可逆) |
configure_cloud_init | 在虚拟机上设置用户、密码、SSH密钥、IP配置和DNS |
安全
破坏性行动(stop_guest, reboot_guest, rollback_snapshot, delete_snapshot, delete_guest, resize_guest, restore_backup, delete_firewall_rule, migrate_guest, create_template)要求明确 confirm=true第一个调用返回描述影响的警告;只有具有确认的第二次调用执行该动作。
例子
连接后,您可以询问您的AI助手:
- “列出我的所有虚拟机及其状态”
- “VM 100使用了多少内存?”
- “关闭105号集装箱”
- “创建升级前调用的VM 200的快照”
- “显示VM 100在过去一天的CPU使用情况”
- “最近在节点pve上运行了哪些任务?”
- “哪些虚拟机被停止?”
- “我有哪些存储池,它们有多满?”
- “显示可用的ISO图像”
- “创建一个具有4个内核和8GB RAM的新Ubuntu VM”
- “将VM 100克隆为测试环境”
- “从模板创建Debian容器”
- “删除旧的测试VM 999”
- “将VM 100备份到zfs备份存储”
- “显示VM 200的所有备份”
- “还原容器101的最新备份”
- “在VM 100上运行‘df-h’”
- “检查nginx是否在VM 200上运行”
- “显示节点pve上的网桥”
- “为VM增加100个CPU——将其提升到8个核心”
- “向容器101添加50GB磁盘”
- “显示VM 100上的防火墙规则”
- “允许容器101上的TCP端口443”
- “将VM 200迁移到节点pve2”
- “列出群集中的所有模板”
- “将VM 102转换为模板”
- 在VM 100上设置云初始化:用户管理员、IP dhcp、DNS 8.8.8.8
发展
git clone https://github.com/antonio-mello-ai/mcp-proxmox.git
cd mcp-proxmox
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
# Run tests
pytest
# Lint
ruff check src/ tests/
ruff format src/ tests/
# Type check
mypy src/
许可证
麻省理工学院