Open source MCP server for Proxmox VE. Automate, monitor, and operate clusters, VMs, and containers with 140+ tools, built-in guardrails, and real-world workflows.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http
verified
reported
listed in the official MCP registry counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 38db22b · analyzer v33 · 1w ago
skills & prompt files 2
- agent-rules NANDI-Services-proxmox-mcp-38db22b/AGENTS.md
- agent-rules NANDI-Services-proxmox-mcp-38db22b/CLAUDE.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 102
filesystem 23
- fs NANDI-Services-proxmox-mcp-38db22b/emulator/fake-pve/gen-cert.mjs :10
import { existsSync, mkdirSync } from "node:fs"; - fs NANDI-Services-proxmox-mcp-38db22b/emulator/fake-pve/server.mjs :15
import { readFileSync } from "node:fs"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/scripts/check-mcp-descriptor-sync.mjs :1
import { readFile } from "node:fs/promises"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/scripts/generate-tools-doc.mjs :1
import { writeFileSync } from "node:fs"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/scripts/next-version.mjs :19
import { readFileSync } from "node:fs"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/scripts/set-version.mjs :15
import { readFileSync, writeFileSync } from "node:fs"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/scripts/validate-live-tools.mjs :1
import { readFileSync, writeFileSync } from "node:fs"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/scripts/validate-manifest.mjs :1
import { readFile } from "node:fs/promises"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/scripts/validate-package-metadata.mjs :1
import { readFile } from "node:fs/promises"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/scripts/verify-registry-entry.mjs :1
import { readFile } from "node:fs/promises"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/scripts/write-changelog.mjs :13
import { readFileSync, writeFileSync } from "node:fs"; - fs NANDI-Services-proxmox-mcp-38db22b/src/cli/bootstrap.ts :2
import { existsSync, readFileSync } from "node:fs";
show 11 more
- fs NANDI-Services-proxmox-mcp-38db22b/src/cli/doctor.ts :1
import { readFile } from "node:fs/promises"; - fs NANDI-Services-proxmox-mcp-38db22b/src/cli/setup.ts :1
import { mkdir, readFile, writeFile } from "node:fs/promises"; - fs NANDI-Services-proxmox-mcp-38db22b/src/config/fileConfig.ts :1
import { readFile, stat } from "node:fs/promises"; - fs NANDI-Services-proxmox-mcp-38db22b/src/config/permissions.ts :1
import { mkdir, readFile, writeFile } from "node:fs/promises"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/tests/e2e/globalSetup.ts :2
import { mkdtempSync, readFileSync, rmSync } from "node:fs"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/tests/unit/bootstrap.test.ts :1
import { mkdtempSync, writeFileSync } from "node:fs"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/tests/unit/catalog-policy.test.ts :1
import { readFileSync } from "node:fs"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/tests/unit/configDiscovery.test.ts :1
import { mkdirSync, mkdtempSync, writeFileSync } from "node:fs"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/tests/unit/harden.test.ts :1
import { mkdtempSync, readFileSync, writeFileSync, mkdirSync } from "node:fs"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/tests/unit/instances.test.ts :1
import { mkdtempSync, mkdirSync, writeFileSync } from "node:fs"; - fs (weak) NANDI-Services-proxmox-mcp-38db22b/tests/unit/permissions.test.ts :1
import { mkdtempSync, readFileSync, writeFileSync } from "node:fs";
shell / exec 6
- shell NANDI-Services-proxmox-mcp-38db22b/emulator/fake-pve/gen-cert.mjs :9
import { spawnSync } from "node:child_process"; - shell (weak) NANDI-Services-proxmox-mcp-38db22b/scripts/next-version.mjs :18
import { execFileSync } from "node:child_process"; - shell NANDI-Services-proxmox-mcp-38db22b/src/cli/bootstrap.ts :1
import { spawnSync } from "node:child_process"; - shell NANDI-Services-proxmox-mcp-38db22b/src/cli/setup.ts :5
import { spawnSync } from "node:child_process"; - shell NANDI-Services-proxmox-mcp-38db22b/src/utils/safeExec.ts :1
import { spawn } from "node:child_process"; - shell (weak) NANDI-Services-proxmox-mcp-38db22b/tests/e2e/globalSetup.ts :1
import { spawnSync } from "node:child_process";
network 7
- net NANDI-Services-proxmox-mcp-38db22b/emulator/fake-pve/server.mjs :13
import { createServer as createHttpsServer } from "node:https"; - net (weak) NANDI-Services-proxmox-mcp-38db22b/scripts/verify-registry-entry.mjs :37
const response = await fetch(`${registryUrl}?search=${encodeURIComponent(expected.name)}`, { - net NANDI-Services-proxmox-mcp-38db22b/src/proxmox/client.ts :1
import { Agent, fetch } from "undici"; - net NANDI-Services-proxmox-mcp-38db22b/src/server/mcpServer.ts :1
import type { Server as HttpServer } from "node:http"; - net (weak) NANDI-Services-proxmox-mcp-38db22b/tests/e2e/error-matrix.e2e.test.ts :1
import { createServer } from "node:net"; - net (weak) NANDI-Services-proxmox-mcp-38db22b/tests/e2e/mcpHarness.ts :97
const response = await fetch(`http://127.0.0.1:${emulator.ctrlPort}/_control/fault`, { - net (weak) NANDI-Services-proxmox-mcp-38db22b/tests/integration/http-transport.test.ts :1
import { request as httpRequest } from "node:http";
secrets 1
- secrets NANDI-Services-proxmox-mcp-38db22b/src/config/env.ts :11
tokenSecret: process.env.PROXMOX_TOKEN_SECRET,
install hooks 1
- prepare NANDI-Services-proxmox-mcp-38db22b/package.json :81
npm run build
declared dependencies 13
- @modelcontextprotocol/sdk@1.27.1
- commander@13.1.0
- express@5.2.1
- express-rate-limit@8.6.2
- undici@7.29.0
- zod@3.25.76
- @eslint/js@9.39.1
- @types/express@5.0.5
- @types/node@22.18.12
- eslint@9.39.4
- typescript@5.9.2
- typescript-eslint@8.57.1
show 1 more
- vitest@3.2.7
obfuscation 2
- dynamic require()/import() NANDI-Services-proxmox-mcp-38db22b/scripts/generate-tools-doc.mjs :6
const { toolCatalog, toolCountByCategory } = await import(`file://${modulePath.replaceAll("\\", "/")}`); - dynamic require()/import() NANDI-Services-proxmox-mcp-38db22b/scripts/validate-live-tools.mjs :7
const distCatalog = await import(`file://${resolve(root, "dist/src/tools/catalog.js").replaceAll("\\", "/")}`);
transport_posture 1
- binds all interfaces (0.0.0.0) NANDI-Services-proxmox-mcp-38db22b/emulator/fake-pve/server.mjs :216
host = "0.0.0.0",