EchelonGraph CVE & Exposure
CVE, KEV, EPSS, SBOM and advisory lookups; per-CVE exposure from Shodan data (© Shodan). Keyless.
제작자가 쓴 설명(영어 원문)
Manage Proxmox VE via Cursor: QEMU, LXC, storage, HA, firewall, access.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
PROXMOX_MCP_CONFIG, PROXMOX_TOKEN_VALUE, PROXMOX_MCP_VERBOSE, PROXMOX_MCP_LOG_LEVEL비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
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/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"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .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는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
PROXMOX_MCP_VERBOSE envPROXMOX_MCP_LOG_LEVEL env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
레지스트리 이름이 GitHub 계정 hackmods 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: PROXMOX_MCP_CONFIG, PROXMOX_TOKEN_VALUE
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.9.0)은 4개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv), Docker도 있어야 해요.
같은 카테고리에는: EchelonGraph CVE & Exposure, KillerSkills, Phishnoo Sandbox
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
CVE, KEV, EPSS, SBOM and advisory lookups; per-CVE exposure from Shodan data (© Shodan). Keyless.
Security verdicts for agent skills and MCP servers, from sandbox runs, before you install them.
Explore synthetic security awareness metrics and file example threat reports.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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
Registered via tools/register.py (called from ProxmoxMCPServer._setup_tools()) — inventory locked by tools/inventory.py / tests/expected_tools.py (CI fails on drift).
| Domain | Tools | ||
|---|---|---|---|
| Nodes | get_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 / tasks | get_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) | ||
| QEMU | lifecycle + 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 | ||
| LXC | lifecycle + 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=auto | keyctl | crun) / 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 / Backups | snapshot CRUD/rollback; one-shot backup CRUD; scheduled list/create/delete_backup_job | ||
| Storage | list, content, list_os_templates, list_isos, download-url, definition CRUD; PBS via create_storage(type=pbs) + get_pbs_storage_status | ||
| Migrate / HA | migrate_guest; HA groups + resources CRUD | ||
| Firewall | cluster + guest rules/options; aliases; IP sets + CIDR members; macros | ||
| Access | users, groups, roles, ACL, tokens, get_permissions, get_token_permissions | ||
| Replication | list/status/run/create/update/delete jobs | ||
| SDN | zones/vnets/subnets CRUD + list controllers/ipams/dns + apply_sdn | ||
| ACME | list + create account/plugin, delete plugin, order_acme_certificate / renew_acme_certificate | ||
| Ceph | status, 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) | ||
| Pools | list/get/create/update/delete |
get_next_vmid → list_os_templates / list_isos → list_node_networksprovision_lxc / provision_vm (preferred one-shot) or create_lxc / create_vm → wait_for_task → startcreate_snapshot before risky changes → update_*_config → get_guest_pending → reboot if neededmigrate_guest / HA / firewall / access / replication as neededGuest 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.
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-serveris a different codebase. Always install `cursor-proxmox-mcp`.
# Install uv if needed: pip install uv OR winget install astral-sh.uv
uvx cursor-proxmox-mcp
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.
git clone https://github.com/hackmods/cursor-proxmox-mcp.git
cd cursor-proxmox-mcp uv venv
uv pip install -e ".[dev]" cp proxmox-config/config.example.json proxmox-config/config.json
uv run cursor-proxmox-mcp
python -m venv .venv
pip install -e ".[dev]"
$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.
.\scripts\ci-local.ps1
./scripts/ci-local.sh
Runs: editable install → entrypoint smoke → ruff → pytest → inventory floor (≥100 tools).
| Symptom | Fix |
|---|---|
spawn uvx ENOENT | Install uv (pip install uv or winget install astral-sh.uv), then restart Cursor |
ModuleNotFoundError: proxmox_mcp | Use uvx/uv run, or set PYTHONPATH=.../src for plain python |
ModuleNotFoundError: mcp.server.fastmcp | MCP 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 set | Point env at proxmox-config/config.json (absolute path) |
| Auth OK but empty data / odd 403 | Privilege Separation Yes without token ACL — see SETUP.md |
403 on HA / firewall / keyctl | Token needs elevated role; prefer scoped mcp@pve over root@pam when possible |
| Tools missing in Cursor | Restart 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).
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.
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).
${ENV} secret interpolation)tool_call audit logging (redacted) + verbose / env log overridesget_console_connection (VNC/SPICE/termproxy) — no websocket proxy (D6).[openapi] for mcporuff + pytest + coverage + inventory + design invariants)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.
.\scripts\ci-local.ps1
After adding a tool: update definitions.py, R
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요