mcpField
P
Proxmox MCP is an opinionated MCP server

Proxmox MCP is an opinionated MCP server

本地服务
github.com云与基础设施53 周前更新

关于 Proxmox MCP is an opinionated MCP server

Proxmox MCP Server 为 AI 助手和自动化 Agent 提供一个或多个 Proxmox 集群的结构化信息。默认工具为只读;可选破坏性工具可启用备份操作,基础设施变更仍由现有自动化工具负责。

主要功能

  1. 01检查集群、节点、存储、虚拟机和容器
  2. 02查看资源使用、状态和近期事件
  3. 03以结构化数据呈现多个集群
  4. 04启用可选备份操作

适用场景

  1. 01检查集群健康状况和资源使用
  2. 02查看近期 Proxmox 任务与配置
  3. 03在变更前收集基础设施信息

MCP 相关

将 MCP 客户端连接到 Proxmox VE API,并提供集群检查工具。支持 stdio 和 HTTP;可选操作工具由 `--allow-destructive` 控制。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"sergelogvinov-proxmox": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/sergelogvinov/proxmox-mcp:v0.3.0"
]
}
}
}
启动命令docker run -i --rm ghcr.io/sergelogvinov/proxmox-mcp:v0.3.0

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

安装包
ocighcr.io/sergelogvinov/proxmox-mcp:v0.3.0

工具

还没有获取到工具列表

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

详细介绍

Proxmox MCP 服务

NOTE: 此项目正在积极开发中。

动机

现代基础设施通常会使用 Terraform/OpenTofu、Ansible 和 GitOps 等工具。这些工具用于部署和配置 Proxmox 基础设施 以及 Kubernetes 集群。

Proxmox MCP 服务不会取代这些工具,而是让 AI 助手 和自动化 Agent 能够访问 Proxmox 集群的信息。

默认工具为只读工具。对于备份和重启等操作,可以通过 --allow-destructive 启用可选的操作工具。

你无需在 Proxmox UI 中查看许多页面,也无需运行多条命令, 只需让 AI 助手收集并分析所需信息即可。 现有的自动化工具仍是基础设施变更的主要方式。

概览

此服务将 MCP 客户端(例如 AI 助手)连接到 Proxmox VE API。 它支持多个 Proxmox 集群,并返回结构化数据。

你可以使用它来:

  • 检查集群、节点和存储
  • 查看资源使用情况和节点状态
  • 查看最近的 Proxmox 任务事件
  • 查找差异和可能的配置问题
  • 在进行基础设施变更前收集信息

给你的 AI 拴好缰绳。

Proxmox 核心工具

MCP 服务提供以下只读工具:

工具参数描述
proxmox_clusters_list无列出已配置的 Proxmox 集群。
proxmox_clusters_describecluster显示集群的版本、节点、节点状态和总资源。
proxmox_containers_listcluster列出 LXC 容器及其状态和资源使用情况。
proxmox_containers_describecluster、vmid、node(可选)显示 LXC 容器的当前状态;如果容器正在运行,还会显示其运行时网络接口。
proxmox_events_listcluster、limit(可选)列出所有节点上的近期任务事件。默认限制为 10。
proxmox_nodes_listcluster列出节点及其状态和资源使用情况。
proxmox_nodes_describecluster、node显示节点的状态、资源、运行时间、版本、内核和启动信息。
proxmox_storage_listcluster列出存储资源及其状态、类型、内容和容量使用情况。
proxmox_storage_describecluster、name、node(可选)显示存储详情;如果提供了节点,还会显示该节点可见的内容。
proxmox_vms_listcluster列出 QEMU 虚拟机及其状态和资源使用情况。
proxmox_vms_describecluster、vmid、node(可选)显示 QEMU 虚拟机的当前状态;当其 QEMU Guest Agent 正常响应时,还会显示客户机网络接口。

首先使用 proxmox_clusters_list 查找其他工具所需的集群名称。MCP 客户端可以发现完整的输入和输出架构。你也可以通过命令行列出工具:

proxmox-mcp tools --config /absolute/path/to/cluster-config.yaml

启用 --allow-destructive 后,proxmox_vms_backup 和 proxmox_containers_backup 接受 cluster、vmid、可选的 node、 storage、mode 和 compress 参数。它们会启动异步备份 并返回 Proxmox 任务标识符;创建任务并不意味着备份已经成功完成。

安装

如需使用 Homebrew 进行本地安装,请运行:

brew install sergelogvinov/tap/proxmox-mcp

如果你使用的是托管在其他机器上的 MCP 服务,则无需本地安装。

配置 Proxmox 集群

创建一个 YAML 文件,其中包含一个或多个 Proxmox 集群:

clusters:
  - region: homelab
    url: https://pve.example.com:8006/api2/json
    token_id: mcp@pve!reader
    token_secret_file: /absolute/path/to/token-secret
    ca_file: /absolute/path/to/proxmox-ca.crt

每个集群支持以下字段:

字段必填说明
region是唯一名称,用于在工具调用中选择集群。
url是完整的 Proxmox API URL,包括 /api2/json。
token_id使用令牌登录时Proxmox API 令牌 ID,例如 mcp@pve!reader。
token_id_file使用令牌登录时包含令牌 ID 的文件。使用此字段代替 token_id。
token_secret使用令牌登录时Proxmox API 令牌密钥。
token_secret_file使用令牌登录时包含令牌密钥的文件。使用此字段代替 token_secret。
username使用密码登录时Proxmox 用户名。必须与 password 一起使用。
password使用密码登录时Proxmox 密码。必须与 username 一起使用。
ca_file否用于验证 Proxmox TLS 证书的 CA 证书路径。
insecure否跳过 TLS 证书检查。仅用于本地测试。默认值:false。

每个集群只能使用令牌登录或密码登录,不能同时使用两种方式。建议将密钥 存储在文件中,以免将密钥值写入 YAML 文件。 Proxmox 账户应仅具有工具所需的权限。

使用 --config 或 CONFIG_FILE 设置配置文件路径。

配置 MCP 客户端

本地 stdio 服务

对于使用 JSON MCP 配置的客户端,请添加如下条目:

{
  "mcpServers": {
    "proxmox": {
      "command": "proxmox-mcp",
      "args": ["mcp"],
      "env": {
        "CONFIG_FILE": "/absolute/path/to/cluster-config.yaml"
      }
    }
  }
}
远程 HTTP 服务

使用以下命令启动可流式传输的 HTTP 服务:

proxmox-mcp server \
  --config /absolute/path/to/cluster-config.yaml \
  --listen-address :8080

:8080 会接受来自所有 IPv4 和 IPv6 地址的连接。若要仅监听一个 地址,请将地址与端口一起指定,例如 127.0.0.1:8080 或 [::1]:8080。 MCP 端点为 http://host:8080/mcp

对于远程客户端,请使用以 /mcp 结尾的 HTTPS URL:

{
  "mcpServers": {
    "proxmox": {
      "type": "http",
      "url": "https://proxmox-mcp.example.com/mcp",
      "headers": {
        "Authorization": "Bearer PVEAPIToken=mcp@pve!reader=TOKEN_SECRET"
      }
    }
  }
}

该服务不会为 HTTP 端点提供用户身份验证。 它依靠 Proxmox 身份验证和 API 令牌进行访问控制。 像这样在 MCP 标头中提供令牌:

Authorization: PVEAPIToken=mcp@pve!reader=TOKEN_SECRET

存在此标头时,工具调用将使用其中的令牌,而不是集群配置中的 凭据。配置的集群仍必须包含 region 和 url。

保存配置后,重启或重新加载 MCP 客户端。

运行

常用标志

mcp、server 和 tools 命令使用以下标志。每个标志 也可以通过环境变量设置。命令行标志的优先级高于环境变量。

标志环境变量默认值说明
--config <path>CONFIG_FILE无必需的集群 YAML 配置文件路径。
--extensions <list>EXTENSIONSall要启用的扩展列表,以逗号分隔;也可以使用 all。
--allow-destructiveALLOW_DESTRUCTIVEfalse在可用时允许使用有破坏性的工具。目前的核心工具为只读工具。
--log-level <level>LOG_LEVELinfo日志级别:debug、info、warn 或 error。
--log-format <format>LOG_FORMATtext日志输出格式:text 或 json。

server 命令还接受 --listen-address 或 LISTEN_ADDRESS (host:port)。默认值为 127.0.0.1:8080,容器镜像设置的 LISTEN_ADDRESS=:8080。tools 命令接受 --output(-o),可选值为 text、json 或 yaml。其默认值为 text。

例如,使用 JSON 日志运行 stdio 服务:

proxmox-mcp mcp \
  --config /absolute/path/to/cluster-config.yaml \
  --log-format json

测试配置

列出所有可用工具:

export CONFIG_FILE="/absolute/path/to/cluster-config.yaml"
proxmox-mcp tools

直接调用工具:

proxmox-mcp tools proxmox_clusters_list
proxmox-mcp tools proxmox_nodes_list cluster=homelab
proxmox-mcp tools -o json proxmox_events_list cluster=homelab limit=5

许可证

本软件根据 Apache License, Version 2.0(以下简称“许可证”)授权; 除非遵守许可证,否则不得使用此文件。 你可以通过以下地址获取许可证副本:

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或经书面同意,否则根据许可证分发的软件 均按“原样”提供,不附带任何明示或暗示的保证或条件。 有关许可证规定的权限和限制,请参阅许可证。


Proxmox® 是 Proxmox Server Solutions GmbH 的注册商标。

评论

支持 Markdown

第一次接触 MCP?

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

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