Proxmox MCP服务器
](https://github.com/sponsors/PureGrain)
](https://github.com/PureGrain/ProxmoxEmCP/actions/workflows/docker-multiarch.yml) ](https://github.com/PureGrain/ProxmoxEmCP/actions/workflows/publish-npm.yml) ](https://hub.docker.com/r/puregrain/proxmox-emcp) ](https://www.npmjs.com/package/@puregrain/proxmox-emcp-node)  
用于通过AI助手管理Proxmox VE基础设施的模型上下文协议(MCP)服务器。可作为npm包、Docker容器或独立的Python应用程序使用。
项目背景
2025年5月,我们推出了带有FastMCP、FastAPI和虚拟环境的原始ProxmoxMCP服务器。基于社区反馈和运营经验,我们将该项目重建为ProxmoxEmCP,这是一个更清晰、更简单的实现,在保持完整功能的同时消除了设置复杂性。此版本直接使用官方MCP SDK,无需虚拟环境依赖即可运行,使部署和维护变得更加容易。
目录
- -
- 节点管理 - VM操作 - 集装箱作业 - 存储和备份 - 监控和日志 - 访问控制 - 网络与安全
快速开始
npm/npx
# Install globally
npm install -g @puregrain/proxmox-emcp-node
# Or run directly with npx
npx @puregrain/proxmox-emcp-nodeDocker Hub
docker run -d \
--name proxmox-emcp \
-e PROXMOX_HOST="192.168.1.100" \
-e PROXMOX_TOKEN_ID="your-token-id" \
-e PROXMOX_TOKEN_SECRET="your-token-secret" \
puregrain/proxmox-emcp:latest先决条件
- Proxmox VE:7.0版或更高版本,已启用API访问
- 对于npm包:Node.js 18+
- 对于Docker:已安装Docker引擎
- 对于本地Python:Python 3.9+
- API代币:在Proxmox中以适当的权限创建
安装方法
npm包
npm包提供了一个不需要Docker的原生Node.js实现。
# Install globally
npm install -g @puregrain/proxmox-emcp-node
# Set environment variables
export PROXMOX_HOST="192.168.1.100"
export PROXMOX_TOKEN_ID="your-token-id"
export PROXMOX_TOKEN_SECRET="your-token-secret"
# Run the server
proxmox-emcp-node与npx一起使用(无需安装):
PROXMOX_HOST=192.168.1.100 \
PROXMOX_TOKEN_ID=your-token-id \
PROXMOX_TOKEN_SECRET=your-token-secret \
npx @puregrain/proxmox-emcp-nodeDocker容器
使用Docker Compose(推荐)
- 克隆存储库:
git clone https://github.com/PureGrain/ProxmoxEmCP.git
cd ProxmoxEmCP- 配置环境:
cp .env.example .env
# Edit .env with your Proxmox credentials- 启动容器:
docker-compose up -d使用Docker CLI
docker run -d \
--name proxmox-emcp \
-e PROXMOX_HOST="192.168.1.100" \
-e PROXMOX_TOKEN_ID="your-token-id" \
-e PROXMOX_TOKEN_SECRET="your-token-secret" \
puregrain/proxmox-emcp:latest使用GitHub容器注册表
docker run -d \
--name proxmox-emcp \
-e PROXMOX_HOST="192.168.1.100" \
-e PROXMOX_TOKEN_ID="your-token-id" \
-e PROXMOX_TOKEN_SECRET="your-token-secret" \
ghcr.io/puregrain/proxmox-emcp:latest本地Python
# Clone the repository
git clone https://github.com/PureGrain/ProxmoxEmCP.git
cd ProxmoxEmCP
# Install dependencies
pip install -r requirements.txt
# Set environment variables
export PROXMOX_HOST="192.168.1.100"
export PROXMOX_TOKEN_ID="your-token-id"
export PROXMOX_TOKEN_SECRET="your-token-secret"
# Run the server
python mcp_server_stdio.py打开WebUI集成
对于 打开WebUI 用户,我们提供 ProxmoxWeaver -一个专门的工具,将完整的Proxmox管理功能直接带入您的Open WebUI界面。
ProxmoxWeaver 是一个原生的Open WebUI工具,提供与我们的MCP服务器相同的全面Proxmox VE管理功能,但专门为Open WebUI生态系统设计。
特征:
- 与Open WebUI的工具系统直接集成
- 同样强大的Proxmox管理功能
- 无需额外的容器或服务
- 通过Open WebUI的工具市场进行简单安装
安装:
- 访问 ProxmoxWeaver存储库
- 复制工具配置
- 在Open WebUI中,导航到 工具 → 添加工具
- 粘贴ProxmoxWeaver配置
- 在工具设置中配置Proxmox凭据
用途:
安装后,ProxmoxWeaver在Open WebUI中显示为本机工具,允许您:
- 查询和管理虚拟机和容器
- 监控群集运行状况和资源
- 执行命令并创建快照
- 管理存储、备份和模板
- Open WebUI中的所有自然语言交互
这种集成非常适合已经使用Open WebUI的团队,他们希望在没有额外基础设施的情况下添加Proxmox管理功能。
配置
环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
PROXMOX_HOST | 是 | - | Proxmox服务器IP或主机名 |
PROXMOX_TOKEN_ID | 是 | - | neneneba API令牌ID |
PROXMOX_TOKEN_SECRET | 是 | - | neneneba API令牌机密 |
PROXMOX_USER | 否 | root@pam | Proxmox用户 |
PROXMOX_VERIFY_SSL | 否 | 错误 | 验证SSL证书 |
LOG_LEVEL | 否 | 信息 | 日志记录级别(调试、信息、警告、错误) |
创建API令牌
- 登录Proxmox Web用户界面
- 引导到 数据中心 → 权限 → API令牌
- 点击 添加 创建新令牌
- 配置令牌:
- 用户:选择您的用户(例如。,root@pam) - 令牌ID:选择描述性名称 - 特权分离:取消选中完全用户权限
- 复制令牌密钥(仅显示一次!)
AI代理集成
配置您的AI助手(Claude Desktop、Cline或任何兼容MCP的客户端)以连接到服务器。
对于npm包
{
"mcpServers": {
"proxmox": {
"command": "npx",
"args": ["@puregrain/proxmox-emcp-node"],
"env": {
"PROXMOX_HOST": "192.168.1.100",
"PROXMOX_TOKEN_ID": "your-token-id",
"PROXMOX_TOKEN_SECRET": "your-token-secret"
}
}
}
}Docker容器
{
"mcpServers": {
"proxmox": {
"command": "docker",
"args": ["attach", "proxmox-emcp"],
"env": {
"PROXMOX_HOST": "192.168.1.100",
"PROXMOX_TOKEN_ID": "your-token-id",
"PROXMOX_TOKEN_SECRET": "your-token-secret"
}
}
}
}可用的MCP工具
节点管理
get_nodes-列出群集中的所有节点get_node_status-获取特定节点的详细状态
VM操作
get_vms-列出集群中的所有虚拟机get_vm_status-获取VM状态和配置start_vm-启动虚拟机stop_vm-优雅地停止虚拟机reboot_vm-重新启动虚拟机execute_vm_command-通过QEMU客户代理执行命令create_vm_snapshot-创建VM快照list_vm_snapshots-列出VM的所有快照get_vm_network-获取VM网络配置
集装箱作业(LXC)
get_containers-列出所有LXC容器get_container_status-获取容器状态和配置start_container-启动容器stop_container-优雅地停止容器reboot_container-重新启动容器execute_container_command-在容器中执行命令create_container_snapshot-创建容器快照list_container_snapshots-列出容器快照
存储和备份
get_storage-列出存储池get_storage_details-获取详细的存储池信息get_backups-列出具有筛选功能的备份文件list_templates-列出VM和容器模板
监控和日志
get_cluster_status-获取全面的群集运行状况和资源get_task_status-检查Proxmox任务状态get_recent_tasks-使用筛选列出最近的任务get_cluster_log-获取集群范围内的日志条目
访问控制
get_users-列出所有具有组和令牌的用户get_groups-列出所有有成员的组get_roles-列出所有角色和权限
网络与安全
get_firewall_status-获取防火墙状态和规则
建筑
┌─────────────────┐
│ AI Assistant │
│ (Claude, etc) │
└────────┬────────┘
│ MCP Protocol
▼
┌─────────────────┐
│ MCP Server │
│ (Node/Python) │
└────────┬────────┘
│ REST API
▼
┌─────────────────┐
│ Proxmox VE │
│ Cluster │
└─────────────────┘发展
贡献
- 克隆该仓库
- 创建要素分支
- 进行更改
- 运行测试:
npm test或python -m pytest - 提交拉取请求
预提交钩子
此项目使用预提交来保证代码质量:
pip install pre-commit
pre-commit install
pre-commit run --all-files挂钩包括:
black-Python代码格式化程序flake8-Python linterdetect-secrets-秘密扫描- YAML和空格验证
构建Docker镜像
docker build -t proxmox-emcp .修改服务器
- Node.js版本:在中编辑文件
npm-app/ - Python版本:编辑
mcp_server_stdio.py - Docker配置:编辑
Dockerfile和docker-compose.yml
故障排除
连接问题
- 验证Proxmox是否可访问: `ping
`
- 检查API端口:确保端口8006可访问
- SSL证书:设置
PROXMOX_VERIFY_SSL=false用于自签名证书
身份验证失败
- 令牌权限:确保令牌具有所需的权限
- 令牌格式:验证
TOKEN_ID和TOKEN_SECRET是正确的 - 用户权限:检查用户是否具有适当的Proxmox权限
查看日志
# Docker logs
docker logs proxmox-emcp
# npm/Node.js - set LOG_LEVEL
LOG_LEVEL=DEBUG npx @puregrain/proxmox-emcp-node常见问题
- “连接被拒绝”:检查防火墙和Proxmox API服务
- “未经授权”:验证令牌凭据
- “SSL验证失败”:设置
PROXMOX_VERIFY_SSL=false
许可证
该项目根据以下条款获得双重许可:
如需商业许可咨询,请联系:\[您的电子邮件或网站\]
支持
- 问题:
- 文档: MCP配置指南
- 赞助商:
______________________________________________________________________
作者:SLA Ops,LLC的PureGrain 仓库:
