ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Cursor Proxmox MCP

โดย hackmodsรุ่น 1.9.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.hackmods/cursor-proxmox-mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

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

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: ความปลอดภัยไซเบอร์
  • ต้องใส่ค่าเหล่านี้: PROXMOX_MCP_CONFIG, PROXMOX_TOKEN_VALUE

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

  • ผลตรวจเบื้องต้น: ผ่าน 1 จาก 1 ข้อ
  • รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
  • ค่าที่คุณต้องใส่เอง: PROXMOX_MCP_CONFIG, PROXMOX_TOKEN_VALUE, PROXMOX_MCP_VERBOSE, PROXMOX_MCP_LOG_LEVEL

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "cursor-proxmox": {
      "command": "uvx",
      "args": [
        "cursor-proxmox-mcp"
      ],
      "env": {
        "PROXMOX_MCP_CONFIG": "ใส่ค่าของคุณ",
        "PROXMOX_TOKEN_VALUE": "ใส่ค่าของคุณ",
        "PROXMOX_MCP_VERBOSE": "ใส่ค่าของคุณ",
        "PROXMOX_MCP_LOG_LEVEL": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add cursor-proxmox --env PROXMOX_MCP_CONFIG='ใส่ค่าของคุณ' --env PROXMOX_TOKEN_VALUE='ใส่ค่าของคุณ' --env PROXMOX_MCP_VERBOSE='ใส่ค่าของคุณ' --env PROXMOX_MCP_LOG_LEVEL='ใส่ค่าของคุณ' -- uvx cursor-proxmox-mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "cursor-proxmox": {
      "command": "uvx",
      "args": [
        "cursor-proxmox-mcp"
      ],
      "env": {
        "PROXMOX_MCP_CONFIG": "ใส่ค่าของคุณ",
        "PROXMOX_TOKEN_VALUE": "ใส่ค่าของคุณ",
        "PROXMOX_MCP_VERBOSE": "ใส่ค่าของคุณ",
        "PROXMOX_MCP_LOG_LEVEL": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "cursor-proxmox": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "cursor-proxmox-mcp"
      ],
      "env": {
        "PROXMOX_MCP_CONFIG": "ใส่ค่าของคุณ",
        "PROXMOX_TOKEN_VALUE": "ใส่ค่าของคุณ",
        "PROXMOX_MCP_VERBOSE": "ใส่ค่าของคุณ",
        "PROXMOX_MCP_LOG_LEVEL": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • 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).

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub hackmods ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด ความปลอดภัยไซเบอร์i

  • ดาวมากกว่า 0% ของอีก 997 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 30% ของอีก 997 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 997 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Cursor Proxmox MCP ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: PROXMOX_MCP_CONFIG, PROXMOX_TOKEN_VALUE

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.9.0) เข้า registry 4 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv), Docker ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี LucidShark, Threatist, Draugr

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

LucidShark

โดย toniantunovi

Local code quality and security scanner: lint, types, SAST, SCA, tests, coverage.

รันบนเครื่องอัปเดต วันนี้
ติดตั้ง

Threatist

โดย threatist.io

Vulnerability records: CVE, GHSA, CISA KEV, EPSS and vendor fixes in one place. No key needed.

รันบนคลาวด์อัปเดต วันนี้
ติดตั้ง

Draugr

โดย draugr-dev

Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.

รันบนเครื่องอัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx