基于Python的模型上下文协议(MCP)服务器,用于与Proxmox虚拟化管理程序交互,提供一个干净的接口来管理节点、虚拟机和容器。
在开始之前,请确保您拥有:
pip install uv)克隆并设置环境:
# 克隆仓库
cd ~/Documents/Cline/MCP # 对于Cline用户
# 或者
cd your/preferred/directory # 手动安装
git clone https://github.com/canvrno/ProxmoxMCP.git
cd ProxmoxMCP
# 创建并激活虚拟环境
uv venv
source .venv/bin/activate # Linux/macOS
# 或者
.\.venv\Scripts\Activate.ps1 # Windows
安装依赖项:
# 安装开发依赖项
uv pip install -e ".[dev]"
创建配置:
# 创建配置目录并复制模板
mkdir -p proxmox-config
cp config/config.example.json proxmox-config/config.json
编辑 proxmox-config/config.json:
{
"proxmox": {
"host": "PROXMOX_HOST", // 必需:您的Proxmox服务器地址
"port": 8006, // 可选:默认是8006
"verify_ssl": false, // 可选:对于自签名证书设置为false
"service": "PVE" // 可选:默认是PVE
},
"auth": {
"user": "USER@pve", // 必需:您的Proxmox用户名
"token_name": "TOKEN_NAME", // 必需:API令牌ID
"token_value": "TOKEN_VALUE" // 必需:API令牌值
},
"logging": {
"level": "INFO", // 可选:DEBUG以获取更多细节
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
"file": "proxmox_mcp.log" // 可选:记录到文件
}
}
检查Python环境:
python -c "import proxmox_mcp; print('安装成功')"
运行测试:
pytest
验证配置:
# Linux/macOS
PROXMOX_MCP_CONFIG="proxmox-config/config.json" python -m proxmox_mcp.server
# Windows (PowerShell)
$env:PROXMOX_MCP_CONFIG="proxmox-config\config.json"; python -m proxmox_mcp.server
您应该看到:
用于测试和开发:
# 首先激活虚拟环境
source .venv/bin/activate # Linux/macOS
# 或者
.\.venv\Scripts\Activate.ps1 # Windows
# 运行服务器
python -m proxmox_mcp.server
对于Cline用户,在您的MCP设置文件中添加此配置(通常位于~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):
{
"mcpServers": {
"github.com/canvrno/ProxmoxMCP": {
"command": "/绝对路径/to/ProxmoxMCP/.venv/bin/python",
"args": ["-m", "proxmox_mcp.server"],
"cwd": "/绝对路径/to/ProxmoxMCP",
"env": {
"PYTHONPATH": "/绝对路径/to/ProxmoxMCP/src",
"PROXMOX_MCP_CONFIG": "/绝对路径/to/ProxmoxMCP/proxmox-config/config.json",
"PROXMOX_HOST": "您的Proxmox主机",
"PROXMOX_USER": "用户名@pve",
"PROXMOX_TOKEN_NAME": "令牌名称",
"PROXMOX_TOKEN_VALUE": "令牌值",
"PROXMOX_PORT": "8006",
"PROXMOX_VERIFY_SSL": "false",
"PROXMOX_SERVICE": "PVE",
"LOG_LEVEL": "DEBUG"
},
"disabled": false,
"autoApprove": []
}
}
}
为了生成正确的路径,您可以使用以下命令:
# 这将打印带有您的绝对路径填充的MCP设置
python -c "import os; print(f'''{{
\"mcpServers\": {{
\"github.com/canvrno/ProxmoxMCP\": {{
\"command\": \"{os.path.abspath('.venv/bin/python')}\",
\"args\": [\"-m\", \"proxmox_mcp.server\"],
\"cwd\": \"{os.getcwd()}\",
\"env\": {{
\"PYTHONPATH\": \"{os.path.abspath('src')}\",
\"PROXMOX_MCP_CONFIG\": \"{os.path.abspath('proxmox-config/config.json')}\",
...
}}
}}
}}
}}''')"
重要事项:
该服务器提供了以下MCP工具来与Proxmox交互:
列出Proxmox集群中的所有节点。
🖥️ Proxmox 节点
🖥️ pve-compute-01
• 状态:在线
• 运行时间:⏳ 156天 12小时
• CPU核心数:64
• 内存:186.5 GB / 512.0 GB (36.4%)
🖥️ pve-compute-02
• 状态:在线
• 运行时间:⏳ 156天 11小时
• CPU核心数:64
• 内存:201.3 GB / 512.0 GB (39.3%)
获取特定节点的详细状态。
node(字符串,必需):节点名称🖥️ 节点:pve-compute-01
• 状态:在线
• 运行时间:⏳ 156天 12小时
• CPU使用率:42.3%
• CPU核心数:64 (AMD EPYC 7763)
• 内存:186.5 GB / 512.0 GB (36.4%)
• 网络:⬆️ 12.8 GB/s ⬇️ 9.2 GB/s
• 温度:38°C
列出集群中的所有虚拟机。
🗃️ 虚拟机
🗃️ prod-db-master (ID: 100)
• 状态:运行中
• 节点:pve-compute-01
• CPU核心数:16
• 内存:92.3 GB / 128.0 GB (72.1%)
🗃️ prod-web-01 (ID: 102)
• 状态:运行中
• 节点:pve-compute-01
• CPU核心数:8
• 内存:12.8 GB / 32.0 GB (40.0%)
列出可用存储。
💾 存储池
💾 ceph-prod
• 状态:在线
• 类型:rbd
• 使用情况:12.8 TB / 20.0 TB (64.0%)
• IOPS:⬆️ 15.2k ⬇️ 12.8k
💾 local-zfs
• 状态:在线
• 类型:zfspool
• 使用情况:3.2 TB / 8.0 TB (40.0%)
• IOPS:⬆️ 42.8k ⬇️ 35.6k
获取集群的整体状态。
⚙️ Proxmox 集群
• 名称:enterprise-cloud
• 状态:健康
• 多数票:正常
• 节点:4 在线
• 版本:8.1.3
• 高可用状态:活动
• 资源:
- 总CPU核心数:192
- 总内存:1536 GB
- 总存储:70 TB
• 工作负载:
- 正在运行的虚拟机:7
- 总虚拟机数:8
- 平均CPU使用率:38.6%
- 平均内存使用率:42.8%
使用QEMU Guest Agent在虚拟机控制台执行命令。
node(字符串,必需):虚拟机所在节点名称vmid(字符串,必需):虚拟机IDcommand(字符串,必需):要执行的命令🔧 控制台命令结果
• 状态:成功
• 命令:systemctl status nginx
• 节点:pve-compute-01
• 虚拟机:prod-web-01 (ID: 102)
输出:
● nginx.service - 高性能Web服务器和反向代理服务器
加载:已加载 (/lib/systemd/system/nginx.service; 启用; 默认预设启用)
活动:活动 (正在运行) 自2025年2月18日星期二15:23:45 UTC以来;2个月3天
激活虚拟环境后:
pytestblack .mypy .ruff .proxmox-mcp/
├── src/
│ └── proxmox_mcp/
│ ├── server.py # 主MCP服务器实现
│ ├── config/ # 配置处理
│ ├── core/ # 核心功能
│ ├── formatting/ # 输出格式化和主题
│ ├── tools/ # 工具实现
│ │ └── console/ # 虚拟机控制台操作
│ └── utils/ # 实用工具(认证、日志)
├── tests/ # 测试套件
├── proxmox-config/
│ └── config.example.json # 配置模板
├── pyproject.toml # 项目元数据和依赖项
└── LICENSE # MIT License
MIT License