mcpField
P
Proxmox VE (Mojood Connect)

Proxmox VE (Mojood Connect)

本地服务
mojood.app云与基础设施01 周前更新

关于 Proxmox VE (Mojood Connect)

面向 Proxmox VE 管理者的 MCP 服务,可通过 Claude 查看节点、虚拟机、容器、存储和备份状态,并执行电源操作与快照。所有变更都需确认;不提供删除访客、恢复备份或回滚快照的工具。

主要功能

  1. 01查看节点、存储与访客概况
  2. 02查找虚拟机和容器
  3. 03检查备份、快照及资源告警
  4. 04确认后执行电源操作
  5. 05确认后创建快照

适用场景

  1. 01排查未纳入备份任务或备份逾期的访客
  2. 02查看生产虚拟机停机和存储告警
  3. 03更新前为访客创建快照
  4. 04在聊天中启动或重启虚拟机

MCP 相关

该 MCP 服务通过 Proxmox VE REST API 提供集群与访客查询工具,以及电源管理和快照工具。变更操作需提交一次性确认码后才会执行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"askmojood-proxmox": {
"command": "uvx",
"args": [
"mojood-proxmox-mcp"
],
"env": {
"PVE_URL": "<PVE_URL>",
"PVE_TOKEN_ID": "<PVE_TOKEN_ID>",
"PVE_TOKEN_SECRET": "<PVE_TOKEN_SECRET>",
"PVE_SAMPLE": "<PVE_SAMPLE>"
}
}
}
}
启动命令uvx mojood-proxmox-mcp
需要配置的环境变量
PVE_URLYour Proxmox VE API address
PVE_TOKEN_ID密钥API token id (user@realm!name)
PVE_TOKEN_SECRET密钥API token secret
PVE_SAMPLE0 for real data (1 labels answers SAMPLE)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimojood-proxmox-mcp0.1.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Proxmox VE MCP 服务

Proxmox VE (Mojood Connect) MCP server

用日常语言询问 Claude 关于你的 Proxmox VE:哪些虚拟机没有备份作业覆盖,哪些虚拟机的备份已逾期,哪些生产虚拟机已停止运行,以及某台虚拟机的情况如何。你也可以在同一聊天中启动、关闭或重启虚拟机,并创建快照;任何更改执行前都会经过确认。没有任何工具可以删除虚拟机、还原备份或回滚快照。

由 Mojood Connect 构建,作为 Proxmox 的可运行演示。它通过 REST API 和 API token 连接任意 Proxmox VE 8 或 9。本仓库包含一个脚本,可在 Apple Silicon Mac 上的虚拟机中安装本地 Proxmox VE 9.2(Proxmox 官方 arm64 版本),并配置一家虚构公司 Harbor Trading 的示例虚拟机,让你无需接触真实集群即可试用。

工具

工具功能是否会进行更改?
overview节点(CPU、内存、运行时间)、存储使用情况、运行中和已停止的虚拟机、备份作业否
find_guests按名称、ID、标签或状态查找虚拟机和容器,并显示 CPU 和内存使用情况否
guest_details单个虚拟机:核心数、磁盘、备注、快照、上次备份、是否有备份作业覆盖、近期任务(谁做了什么)否
needs_attention未纳入任何备份作业的虚拟机、备份逾期的虚拟机、已停止的生产虚拟机、旧快照、存储空间不足、内存不足的虚拟机否
power_guest启动、正常关闭或重启虚拟机或容器是,需确认
snapshot_guest创建快照,并附上说明,注明是谁提出的请求是,需确认

如何确保更改安全。 调用 power_guest 或 snapshot_guest 时,如果没有提供 confirmation,不会进行任何更改:工具会返回一段简明说明(“启动 mail-relay(lima-pve 上的 VM 104,当前已停止)。它带有 prod 标签。”)和一个一次性代码。只有在 10 分钟内,使用该代码再次提交相同请求,更改才会执行。每个代码只能使用一次,且仅适用于签发该代码的请求。服务的指令会要求模型展示说明并等待用户确认。Proxmox 自身的任务日志会记录每项更改,并注明 token 所属用户。

最小权限。 演示使用专属的 Proxmox 用户 claude@pve 及自定义角色,该角色仅包含 VM.Audit、VM.PowerMgmt、VM.Snapshot、Datastore.Audit 和 Sys.Audit 权限,另有 VM.Backup 和 Datastore.AllocateSpace 权限(仅限备份存储),因为 Proxmox 只会向有权备份虚拟机的用户列出该虚拟机的备份。没有任何工具会创建、还原或删除备份。

本地试用

需要一台搭载 Apple Silicon 的 Mac(M3 或更新机型,支持嵌套虚拟化),并安装 Lima、uv 和 Python 3.13,约 6 GB 可用内存和 40 GB 磁盘空间。

scripts/reset.sh                         # Proxmox VE 9.2 in a Lima VM (first run installs it), filled with SAMPLE guests
uv run --env-file .env proxmox-mcp       # MCP server on http://127.0.0.1:8008/mcp (Streamable HTTP)

scripts/up.sh 会按照 Proxmox 的 Debian 13 指南安装 Proxmox VE,添加一个 ZFS 池 (位于文件中),以便对虚拟机和容器创建快照;创建 claude@pve 用户及其令牌,以及一个用于 Web 界面的只读 viewer@pve 用户,Web 界面地址为 https://127.0.0.1:8006。密钥只会写入被 git 忽略的 .env 文件,绝不会 打印出来。本地证书为自签名证书,因此 .env 中设置了 PVE_VERIFY_TLS=0;在真实安装环境中请启用该选项。

Claude Desktop: 将以下内容添加到 claude_desktop_config.json(Settings › Developer),并填写此文件夹的路径:

{
  "mcpServers": {
    "proxmox": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/proxmox-mcp", "--env-file", "/path/to/proxmox-mcp/.env", "proxmox-mcp", "--stdio"]
    }
  }
}

然后提问:“哪些服务器没有备份?”“erp-app 出了什么问题?”“在今晚更新之前为 erp-app 创建快照,并重新启动 mail-relay。”

你自己的 Proxmox VE: 创建具有上述权限的用户和 API 令牌 (pveum user token add <user> <name> --privsep 0),然后设置 PVE_URL、PVE_TOKEN_ID(user@realm!name)、 PVE_TOKEN_SECRET 和 PVE_SAMPLE=0。

SAMPLE 虚拟机和容器

为 Harbor Trading 配置了六台虚拟机(实际启动运行的 Alpine Linux)和四个 LXC 容器:ERP 数据库和应用服务器、文件服务器、一台被停止的邮件中继服务器、一套已退役且有 96 天前快照的 CRM、一台预发布 Web 服务器、两个 Web 容器、监控系统和 VPN 网关。夜间备份作业覆盖了其中大多数,但并非全部;其中一个虚拟机或容器的最新备份已有 9.9 天。备份和快照都是真实的;scripts/seed.sh 会将其中一些的时间戳回拨,以便展现这批系统的历史记录。这里的一切都是虚构的。

测试

uv run --env-file .env pytest            # unit tests (a fake Proxmox API), plus live tests when the local Proxmox runs

生产版本的新增功能

此演示使用一个 API 令牌。面向 Proxmox 客户的生产版服务将支持每个人使用自己的 Proxmox 账户登录(通过其 realm、LDAP 或 OpenID),这样 Claude 看到和执行的内容就会严格遵循其角色权限;还将支持包含多个节点的集群、Proxmox Backup Server、记录每次工具调用的托管审计日志,以及目录列表。这正是 Mojood Connect 所构建的内容。

许可证

Apache 2.0。Proxmox 是 Proxmox Server Solutions GmbH 的注册商标;本项目并非由 Proxmox Server Solutions GmbH 制作或认可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。