原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Cursor Proxmox MCP

作者:hackmods版本 1.9.0i★ –i在你的电脑上运行
注册名称io.github.hackmods/cursor-proxmox-mcp

安装

概览

作者提供的说明(英文原文)

Manage Proxmox VE via Cursor: QEMU, LXC, storage, HA, firewall, access.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 其他
  • 你需要填写:PROXMOX_MCP_CONFIG, PROXMOX_TOKEN_VALUE

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: PROXMOX_MCP_CONFIG, PROXMOX_TOKEN_VALUE, PROXMOX_MCP_VERBOSE, PROXMOX_MCP_LOG_LEVEL

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • PyPI已安装 Python 的 uv(用于 uvx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "cursor-proxmox": {
      "command": "uvx",
      "args": [
        "cursor-proxmox-mcp"
      ],
      "env": {
        "PROXMOX_MCP_CONFIG": "your-value",
        "PROXMOX_TOKEN_VALUE": "your-value",
        "PROXMOX_MCP_VERBOSE": "your-value",
        "PROXMOX_MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add cursor-proxmox --env PROXMOX_MCP_CONFIG=your-value --env PROXMOX_TOKEN_VALUE=your-value --env PROXMOX_MCP_VERBOSE=your-value --env PROXMOX_MCP_LOG_LEVEL=your-value -- uvx cursor-proxmox-mcp

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "cursor-proxmox": {
      "command": "uvx",
      "args": [
        "cursor-proxmox-mcp"
      ],
      "env": {
        "PROXMOX_MCP_CONFIG": "your-value",
        "PROXMOX_TOKEN_VALUE": "your-value",
        "PROXMOX_MCP_VERBOSE": "your-value",
        "PROXMOX_MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "cursor-proxmox": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "cursor-proxmox-mcp"
      ],
      "env": {
        "PROXMOX_MCP_CONFIG": "your-value",
        "PROXMOX_TOKEN_VALUE": "your-value",
        "PROXMOX_MCP_VERBOSE": "your-value",
        "PROXMOX_MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • PROXMOX_MCP_CONFIG 必填 env
    Absolute path to Proxmox MCP config.json (host, token, SSL).
  • PROXMOX_TOKEN_VALUE 机密 env
    API token secret when config uses ${PROXMOX_TOKEN_VALUE}.
  • PROXMOX_MCP_VERBOSE env
    Set to 1 for verbose tool_call detail (also bumps INFO→DEBUG).
  • PROXMOX_MCP_LOG_LEVEL env
    Override logging.level (DEBUG|INFO|WARNING|ERROR).

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 hackmods 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 32484 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 32484 个服务器的 19% 更新
  • 基础检查结果等于或优于此分类中其他 32484 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Cursor Proxmox MCP 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:PROXMOX_MCP_CONFIG, PROXMOX_TOKEN_VALUE

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(1.9.0)于3个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv), Docker。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, Recta

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

作者:formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

在你的电脑上运行★ 440MIT14个月前更新
安装

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

在云端运行★ 211昨天更新
安装

Recta

作者:RectaBuild

Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.

电脑或云端今天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

cursor-proxmox-mcp

Formal Cursor ↔ [Proxmox VE](https://www.proxmox.com/) MCP integration — 212 tools covering QEMU VMs (incl. guest-agent network/file/guest-info/fsfreeze + bootstrap_cloudinit_vm / provision_vm + qm_set_vm), LXC (incl. provision_lxc, bootstrap_docker_lxc, crun Path B, DNS/SSH helpers, deploy_node_app), unified guest power, storage admin (incl. PBS plugin + status), cluster/tasks (incl. join), snapshots, backups, migration, HA, firewall, access control, replication, SDN write + apply, ACME order/renew, Ceph status/pools + gated OSD create/destroy, node network CRUD, console tickets/get_console_connection, and host reboot/shutdown. v1.9.0 adds optional dual-credential elevated mode (auth_write, D31) + provision_vm + Cursor day-2 auto-approve docs.

Repo: hackmods/cursor-proxmox-mcp

Docs: Setup guide · Wiki (docs/wiki/) · Publishing · Security · Contributing · API coverage · Changelog

MCP tools

Registered via tools/register.py (called from ProxmoxMCPServer._setup_tools()) — inventory locked by tools/inventory.py / tests/expected_tools.py (CI fails on drift).

DomainTools
Nodesget_nodes, get_node_status, list_node_networks + create/update/delete + reload_node_network, get_node_subscription, list_node_certificates, get_node_report, list_node_services, get_node_time, wake_node, reboot_node / shutdown_node (confirm= )
Cluster / tasksget_cluster_status, get_next_vmid, get_task_status, list_tasks, wait_for_task, get_version, get_mcp_capabilities, get_cluster_resources, get_cluster_log, get_cluster_options, get_cluster_join_info, join_cluster (confirm=JOIN)
QEMUlifecycle + config (ISO/cloud-init/net/onboot/tags/description; optional wait=true) + get_vm_network / get_vm_guest_info / fsfreeze_vm / fsthaw_vm / push_to_vm / pull_from_vm (guest agent) + bootstrap_cloudinit_vm / provision_vm (one-shot create or clone→CI→IP) + qm_set_vm + get_vm_status, get_vm_rrd_data, console tickets
LXClifecycle + config + suspend/resume (CRIU warn) + get_lxc_status / get_lxc_network / get_lxc_rrd_data + VNC/SPICE/termproxy; ssh_public_keys / docker_ready / nameserver / wait / onboot / description / tags on create; provision_lxc (one-shot create→start→IP→SSH) / bootstrap_docker_lxc / prepare_lxc_for_docker (`docker_mode=autokeyctlcrun) / configure_lxc_dns / configure_lxc_ssh / get_docker_lxc_status / pct_set_lxc / push_to_lxc / pull_from_lxc / deploy_static_nginx / deploy_node_app via opt-in **host** SSH + pct ([setup](SETUP.md#ssh-for-lxc-exec-opt-in)); optional get_containers(probes=true)`
Guest (unified)start/stop/shutdown/reboot/delete_guest, get_guest_status, get_guest_pending, move_guest_disk, get_console_connection (guest_type)
Snapshots / Backupssnapshot CRUD/rollback; one-shot backup CRUD; scheduled list/create/delete_backup_job
Storagelist, content, list_os_templates, list_isos, download-url, definition CRUD; PBS via create_storage(type=pbs) + get_pbs_storage_status
Migrate / HAmigrate_guest; HA groups + resources CRUD
Firewallcluster + guest rules/options; aliases; IP sets + CIDR members; macros
Accessusers, groups, roles, ACL, tokens, get_permissions, get_token_permissions
Replicationlist/status/run/create/update/delete jobs
SDNzones/vnets/subnets CRUD + list controllers/ipams/dns + apply_sdn
ACMElist + create account/plugin, delete plugin, order_acme_certificate / renew_acme_certificate
Cephstatus, list pools/OSDs/MONs/MGRs, pool CRUD; gated OSD: list_node_disks → propose_ceph_osd → create_ceph_osd/destroy_ceph_osd (typed confirm; create defaults dry_run=true)
Poolslist/get/create/update/delete
Suggested agent flow
  1. get_next_vmid → list_os_templates / list_isos → list_node_networks
  2. provision_lxc / provision_vm (preferred one-shot) or create_lxc / create_vm → wait_for_task → start
  3. create_snapshot before risky changes → update_*_config → get_guest_pending → reboot if needed
  4. migrate_guest / HA / firewall / access / replication as needed

Guest type unknown? Prefer unified tools (start_guest, stop_guest, shutdown_guest, reboot_guest, delete_guest, get_guest_status) with guest_type=qemu|lxc. Parallel *_vm / *_lxc names stay for existing prompts.

Installation

Prerequisites
  • uv (recommended) or Python 3.10+
  • Proxmox API token
Path 1 — uvx (recommended)

PyPI package name is `cursor-proxmox-mcp` (console scripts: cursor-proxmox-mcp, plus aliases proxmox-mcp-server / proxmox-mcp).

Note: The unrelated PyPI project proxmox-mcp-server is a different codebase. Always install `cursor-proxmox-mcp`.

# Install uv if needed:  pip install uv   OR   winget install astral-sh.uv

After PyPI publish (GitHub Release → publish.yml):

uvx cursor-proxmox-mcp

From a local checkout (dev / before first publish):

uvx --from . cursor-proxmox-mcp

Cursor MCP (published package — no checkout):

{

"mcpServers": { "proxmox": { "command": "uvx", "args": ["cursor-proxmox-mcp"], "env": { "PROXMOX_MCP_CONFIG": "C:/Users/YOU/proxmox-config/config.json" } } } }

From a local checkout, use "args": ["--from", "C:/Users/YOU/Projects/cursor-proxmox-mcp", "cursor-proxmox-mcp"] instead.

Why uvx: it resolves dependencies into an isolated ephemeral env so Cursor does not depend on a hand-managed venv/PYTHONPATH.

Path 2 — uv from source
git clone https://github.com/hackmods/cursor-proxmox-mcp.git

cd cursor-proxmox-mcp uv venv

Windows: .\.venv\Scripts\Activate.ps1

Linux/macOS: source .venv/bin/activate

uv pip install -e ".[dev]" cp proxmox-config/config.example.json proxmox-config/config.json

Edit host + token, then:

uv run cursor-proxmox-mcp

Path 3 — pip fallback
python -m venv .venv

activate venv

pip install -e ".[dev]"

optional OpenAPI bridge: pip install -e ".[openapi]"

$env:PROXMOX_MCP_CONFIG="proxmox-config\config.json" # PowerShell python -m proxmox_mcp.server

Cursor MCP (direct Python — use absolute paths):

{

"mcpServers": { "proxmox": { "command": "python", "args": ["-m", "proxmox_mcp.server"], "cwd": "C:/Users/YOU/Projects/cursor-proxmox-mcp", "env": { "PROXMOX_MCP_CONFIG": "C:/Users/YOU/Projects/cursor-proxmox-mcp/proxmox-config/config.json", "PYTHONPATH": "C:/Users/YOU/Projects/cursor-proxmox-mcp/src" } } } }

Restart the proxmox MCP server in Cursor after pulling new tools. Manual launchers: start.bat (Windows) / start.sh (Unix) — prefer uvx cursor-proxmox-mcp in mcp.json.

Verify / local CI
.\scripts\ci-local.ps1
./scripts/ci-local.sh

Runs: editable install → entrypoint smoke → ruff → pytest → inventory floor (≥100 tools).

Troubleshooting
SymptomFix
spawn uvx ENOENTInstall uv (pip install uv or winget install astral-sh.uv), then restart Cursor
ModuleNotFoundError: proxmox_mcpUse uvx/uv run, or set PYTHONPATH=.../src for plain python
ModuleNotFoundError: mcp.server.fastmcpMCP SDK v2 dropped FastMCP — this server pins mcp<2. Reinstall from this checkout (pip install -e ".[dev]" / uvx --from .) so the cap applies
PROXMOX_MCP_CONFIG ... must be setPoint env at proxmox-config/config.json (absolute path)
Auth OK but empty data / odd 403Privilege Separation Yes without token ACL — see SETUP.md
403 on HA / firewall / keyctlToken needs elevated role; prefer scoped mcp@pve over root@pam when possible
Tools missing in CursorRestart MCP server after git pull

First-time cluster wiring (token, privsep, Cursor JSON, example prompts): [SETUP.md](SETUP.md). LXC shell / runtime IP needs opt-in host SSH (authorized_keys, optional host_overrides, reload MCP): [SETUP.md — SSH for LXC exec](SETUP.md#ssh-for-lxc-exec-opt-in).

Configuration

Example proxmox-config/config.json:

{

"proxmox": { "host": "PROXMOX_HOST", "port": 8006, "verify_ssl": false, "service": "PVE" }, "auth": { "user": "USER@pve", "token_name": "TOKEN_NAME", "token_value": "TOKEN_VALUE" }, "logging": { "level": "INFO", "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s", "file": "proxmox_mcp.log", "verbose": false, "tool_calls": true } }

Tool invocations are audited to the log file as tool_call name=… ok=… duration_ms=… (secrets redacted). Set verbose: true or env PROXMOX_MCP_VERBOSE=1 for richer diagnostics without urllib3 spam. Details: proxmox-config/README.md — Logging.

Create the token in Proxmox UI: Datacenter → Permissions → API Tokens. See [SETUP.md — API token & Privilege Separation](SETUP.md#1-create-a-proxmox-api-token) for the full walkthrough.

Privilege Separation: leave Yes (default) and grant ACLs to the token (user@realm!tokenid). Setting it to No makes the token inherit the user’s full permissions (common lab shortcut; larger blast radius if leaked). Grant roles matching the tools you use (PVEAuditor, PVEVMAdmin, Datastore.*, Sys.Audit/Sys.Modify for HA/firewall/access).

Prefer "token_value": "${PROXMOX_TOKEN_VALUE}" in config and set the env var in Cursor MCP config so secrets stay out of the JSON file.

Security

This server can create/delete guests, change firewall/ACL, and run guest commands. Treat the API token like production infra credentials. Full policy: [SECURITY.md](SECURITY.md).

Features

  • Token auth via proxmoxer (JSON config + optional ${ENV} secret interpolation)
  • Structured tool_call audit logging (redacted) + verbose / env log overrides
  • Full guest lifecycle, snapshots, vzdump backups
  • Storage content + definition CRUD + URL download
  • Cluster HA, firewall (rules/aliases/ipsets), access/ACL/tokens
  • Replication jobs, SDN write + apply, ACME order/renew, Ceph status/pools, pools
  • Console ticket mint + get_console_connection (VNC/SPICE/termproxy) — no websocket proxy (D6)
  • PBS as PVE storage plugin (not full PBS product admin); node network CRUD + reload
  • uvx / uv / pip / Docker (GHCR) install paths; optional .[openapi] for mcpo
  • Local + GitHub CI (ruff + pytest + coverage + inventory + design invariants)
Closed non-goals (not missing — D30)

Do not treat these as planned gaps: long-lived VNC/SPICE websocket proxy (tickets only — D6), full PBS product admin, or ungated Ceph OSD/MON/MGR create/destroy. Gated OSD tools are shipped; MON/MGR lifecycle stays on Ceph/PVE tooling.

Development

.\scripts\ci-local.ps1

After adding a tool: update definitions.py, R

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx