PluginBench
MCP Server
Active
MIT

ProxmoxMCP-Plus MCP Server

io.github.RekklesNA/proxmox-mcp-plus

Control Proxmox VE VMs, LXCs, snapshots, backups, and jobs from MCP clients or OpenAPI.

What is the ProxmoxMCP-Plus MCP server?

ProxmoxMCP-Plus is an MCP server that lets AI agents and MCP clients (Claude Desktop, Cursor, VS Code, Open WebUI, Codex) manage Proxmox VE environments, including VMs, LXC containers, snapshots, backups, ISOs, storage, and cluster operations. It also exposes an OpenAPI/REST bridge for HTTP automation, plus a persistent job-tracking layer for long-running asynchronous Proxmox tasks.

ProxmoxMCP-Plus is a security-conscious control plane between AI clients (or HTTP tooling) and Proxmox VE. It exposes the same operational surface via native MCP (stdio or Streamable HTTP) and via an OpenAPI bridge, covering VM/LXC lifecycle management, snapshot rollback, backup/restore, ISO management, SSH-backed container command execution, and cluster/storage inspection. Long-running Proxmox operations are wrapped in a persistent job layer with stable job IDs, retry, cancel, and audit history, so agents can poll async tasks reliably. Safety controls include Proxmox API tokens, OpenAPI bearer auth, command policy, approval tokens, TLS validation, and Host/Origin allowlisting for HTTP deployments.

How to install ProxmoxMCP-Plus

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • PROXMOX_MCP_CONFIG

    Optional path to a JSON config file. If set, file config is used before environment variable fallback.

  • PROXMOX_HOST
    required

    Hostname or IP address of the Proxmox VE API endpoint.

  • PROXMOX_USER
    required

    Proxmox username with realm, for example root@pam.

  • PROXMOX_TOKEN_NAME
    required

    Name of the Proxmox API token.

  • PROXMOX_TOKEN_VALUE
    required
    secret

    Secret value of the Proxmox API token.

  • PROXMOX_PORT

    Proxmox API port. Defaults to 8006.

  • PROXMOX_VERIFY_SSL

    Set to true to verify TLS certificates, or false for self-signed lab environments.

  • PROXMOX_DEV_MODE

    Set to true when using verify_ssl=false in a self-signed lab environment.

  • PROXMOX_SERVICE

    Proxmox service type. Defaults to PVE.

  • LOG_LEVEL

    Server log verbosity. Defaults to INFO.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "proxmox-mcp-plus": {
      "command": "uvx",
      "args": [
        "proxmox-mcp-plus"
      ],
      "env": {
        "PROXMOX_MCP_CONFIG": "<YOUR_PROXMOX_MCP_CONFIG>",
        "PROXMOX_HOST": "<YOUR_PROXMOX_HOST>",
        "PROXMOX_USER": "<YOUR_PROXMOX_USER>",
        "PROXMOX_TOKEN_NAME": "<YOUR_PROXMOX_TOKEN_NAME>",
        "PROXMOX_TOKEN_VALUE": "<YOUR_PROXMOX_TOKEN_VALUE>",
        "PROXMOX_PORT": "<YOUR_PROXMOX_PORT>",
        "PROXMOX_VERIFY_SSL": "<YOUR_PROXMOX_VERIFY_SSL>",
        "PROXMOX_DEV_MODE": "<YOUR_PROXMOX_DEV_MODE>",
        "PROXMOX_SERVICE": "<YOUR_PROXMOX_SERVICE>",
        "LOG_LEVEL": "<YOUR_LOG_LEVEL>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "proxmox-mcp-plus": {
      "command": "uvx",
      "args": [
        "proxmox-mcp-plus"
      ],
      "env": {
        "PROXMOX_MCP_CONFIG": "<YOUR_PROXMOX_MCP_CONFIG>",
        "PROXMOX_HOST": "<YOUR_PROXMOX_HOST>",
        "PROXMOX_USER": "<YOUR_PROXMOX_USER>",
        "PROXMOX_TOKEN_NAME": "<YOUR_PROXMOX_TOKEN_NAME>",
        "PROXMOX_TOKEN_VALUE": "<YOUR_PROXMOX_TOKEN_VALUE>",
        "PROXMOX_PORT": "<YOUR_PROXMOX_PORT>",
        "PROXMOX_VERIFY_SSL": "<YOUR_PROXMOX_VERIFY_SSL>",
        "PROXMOX_DEV_MODE": "<YOUR_PROXMOX_DEV_MODE>",
        "PROXMOX_SERVICE": "<YOUR_PROXMOX_SERVICE>",
        "LOG_LEVEL": "<YOUR_LOG_LEVEL>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "proxmox-mcp-plus": {
      "command": "uvx",
      "args": [
        "proxmox-mcp-plus"
      ],
      "env": {
        "PROXMOX_MCP_CONFIG": "<YOUR_PROXMOX_MCP_CONFIG>",
        "PROXMOX_HOST": "<YOUR_PROXMOX_HOST>",
        "PROXMOX_USER": "<YOUR_PROXMOX_USER>",
        "PROXMOX_TOKEN_NAME": "<YOUR_PROXMOX_TOKEN_NAME>",
        "PROXMOX_TOKEN_VALUE": "<YOUR_PROXMOX_TOKEN_VALUE>",
        "PROXMOX_PORT": "<YOUR_PROXMOX_PORT>",
        "PROXMOX_VERIFY_SSL": "<YOUR_PROXMOX_VERIFY_SSL>",
        "PROXMOX_DEV_MODE": "<YOUR_PROXMOX_DEV_MODE>",
        "PROXMOX_SERVICE": "<YOUR_PROXMOX_SERVICE>",
        "LOG_LEVEL": "<YOUR_LOG_LEVEL>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "proxmox-mcp-plus": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "proxmox-mcp-plus"
      ],
      "env": {
        "PROXMOX_MCP_CONFIG": "<YOUR_PROXMOX_MCP_CONFIG>",
        "PROXMOX_HOST": "<YOUR_PROXMOX_HOST>",
        "PROXMOX_USER": "<YOUR_PROXMOX_USER>",
        "PROXMOX_TOKEN_NAME": "<YOUR_PROXMOX_TOKEN_NAME>",
        "PROXMOX_TOKEN_VALUE": "<YOUR_PROXMOX_TOKEN_VALUE>",
        "PROXMOX_PORT": "<YOUR_PROXMOX_PORT>",
        "PROXMOX_VERIFY_SSL": "<YOUR_PROXMOX_VERIFY_SSL>",
        "PROXMOX_DEV_MODE": "<YOUR_PROXMOX_DEV_MODE>",
        "PROXMOX_SERVICE": "<YOUR_PROXMOX_SERVICE>",
        "LOG_LEVEL": "<YOUR_LOG_LEVEL>"
      }
    }
  }
}
Claude Code
claude mcp add proxmox-mcp-plus --env PROXMOX_MCP_CONFIG=<YOUR_PROXMOX_MCP_CONFIG> --env PROXMOX_HOST=<YOUR_PROXMOX_HOST> --env PROXMOX_USER=<YOUR_PROXMOX_USER> --env PROXMOX_TOKEN_NAME=<YOUR_PROXMOX_TOKEN_NAME> --env PROXMOX_TOKEN_VALUE=<YOUR_PROXMOX_TOKEN_VALUE> --env PROXMOX_PORT=<YOUR_PROXMOX_PORT> --env PROXMOX_VERIFY_SSL=<YOUR_PROXMOX_VERIFY_SSL> --env PROXMOX_DEV_MODE=<YOUR_PROXMOX_DEV_MODE> --env PROXMOX_SERVICE=<YOUR_PROXMOX_SERVICE> --env LOG_LEVEL=<YOUR_LOG_LEVEL> -- uvx proxmox-mcp-plus

Tools & capabilities

Tools this server exposes to the agent.

  • get_nodesList Proxmox cluster nodes.
  • get_cluster_statusGet overall cluster status.
  • get_storageInspect available storage.
  • get_vmsList virtual machines.
  • get_containersList LXC containers.
  • create_vmCreate a new virtual machine.
  • start_vmStart a virtual machine.
  • stop_vmStop a virtual machine.
  • delete_vmDelete a virtual machine.
  • create_containerCreate a new LXC container.
  • start_containerStart an LXC container.
  • stop_containerStop an LXC container.
  • delete_containerDelete an LXC container.
  • list_snapshotsList snapshots for a VM or LXC (vm_type=qemu or lxc).
  • create_snapshotCreate a snapshot of a VM or container.
  • rollback_snapshotRoll back to a snapshot.
  • delete_snapshotDelete a snapshot.
  • execute_vm_commandExecute a command inside a VM guest via QEMU Guest Agent.
  • execute_container_commandExecute a command inside an LXC container via SSH to the Proxmox node.
  • list_jobsList persisted async jobs.

Use cases

  • Inspect cluster health, nodes, storage, and running VMs/containers via natural-language MCP queries
  • Create, start, stop, and delete VMs or LXC containers from an AI agent
  • Create, roll back, or delete snapshots before/after risky changes
  • Run backup/restore workflows and manage ISO downloads for VM provisioning
  • Execute commands inside guests via QEMU Guest Agent or SSH-backed container command execution
  • Track and manage long-running Proxmox tasks (job polling, retry, cancel) through stable job IDs
README (reference)

Source of truth, from the repository.

ProxmoxMCP-Plus

<!-- mcp-name: io.github.RekklesNA/proxmox-mcp-plus --> <div align="center"> <img src="docs/assets/logo-proxmoxmcp-plus.png" alt="ProxmoxMCP-Plus Logo" width="160"/> </div> <p align="center"><strong>Operate Proxmox VE from MCP clients, AI agents, and OpenAPI tooling through one security-conscious control plane for VMs, LXCs, snapshots, backups, ISOs, container commands, and persistent long-running jobs.</strong></p> <p align="center"> <a href="https://pypi.org/project/proxmox-mcp-plus/"><img alt="PyPI" src="https://img.shields.io/pypi/v/proxmox-mcp-plus"></a> <a href="https://github.com/RekklesNA/ProxmoxMCP-Plus/releases"><img alt="GitHub Release" src="https://img.shields.io/github/v/release/RekklesNA/ProxmoxMCP-Plus"></a> <a href="https://github.com/RekklesNA/ProxmoxMCP-Plus/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/RekklesNA/ProxmoxMCP-Plus/ci.yml?branch=main"></a> <a href="https://github.com/RekklesNA/ProxmoxMCP-Plus/pkgs/container/ProxmoxMCP-Plus"><img alt="GHCR" src="https://img.shields.io/badge/GHCR-container-blue"></a> <a href="LICENSE"><img alt="License" src="https://img.shields.io/github/license/RekklesNA/ProxmoxMCP-Plus"></a> </p> <p align="center"> <a href="#quick-start">Quick Start</a> | <a href="#client-install">Client Install</a> | <a href="#demo">Demo</a> | <a href="#choose-the-right-tool">Tools</a> | <a href="#safety-model">Safety</a> | <a href="#scenario-templates">Scenarios</a> | <a href="#documentation">Docs</a> | <a href="https://github.com/RekklesNA/ProxmoxMCP-Plus/wiki">Wiki</a> </p>

ProxmoxMCP-Plus architecture

Why ProxmoxMCP-Plus

ProxmoxMCP-Plus sits between AI clients and Proxmox VE so operators do not have to stitch together raw API calls, one-off shell scripts, and custom job polling for every workflow.

It exposes the same operational surface in two ways:

  • MCP for Claude Desktop, Cursor, VS Code, Open WebUI, Codex, and other MCP-capable agents
  • OpenAPI for HTTP automation, dashboards, internal tools, and no-code workflows

What you get:

  • VM and LXC lifecycle actions
  • snapshot create, rollback, and delete
  • backup and restore workflows
  • ISO download and cleanup
  • node, storage, and cluster inspection
  • SSH-backed container command execution with guardrails
  • persistent job tracking for async Proxmox tasks

What Makes It Different

PriorityHow the project handles it
Dual access pathsNative MCP for agent workflows and OpenAPI for standard HTTP automation
Proxmox-oriented workflowsDay-2 VM, LXC, snapshot, backup, ISO, storage, and cluster operations
Long-running operationsStable job_ids, Proxmox UPID tracking, polling, retry, cancel, and audit history
Safer executionProxmox API tokens, OpenAPI bearer auth, command policy, approval tokens, TLS validation, and MCP HTTP Host/Origin controls
Real validationUnit, integration, Docker/OpenAPI, and live Proxmox e2e entry points are documented in the repo

Quick Start

1. Prepare Proxmox Credentials

Create a Proxmox API token with only the permissions your workflows need. Then create the local config file:

cp proxmox-config/config.example.json proxmox-config/config.json

Then edit proxmox-config/config.json with your environment. At minimum, it needs:

  • proxmox.host
  • proxmox.port
  • auth.user
  • auth.token_name
  • auth.token_value

Add an ssh section as well if you want container command execution. Add a jobs section if you want job state persisted somewhere other than the default local SQLite file.

For real live verification, use a separate proxmox-config/config.live.json created from proxmox-config/config.live.example.json. Do not point live e2e at a placeholder or local-only config.json unless you intentionally run a local API tunnel there.

Optional job persistence config:

{
  "jobs": {
    "sqlite_path": "proxmox-jobs.sqlite3"
  }
}

2. Choose One Runtime Path

PathBest forStart commandVerify
MCP stdio from PyPIClaude Desktop, Cursor, VS Code, Codex, local agentsuvx proxmox-mcp-plusclient lists get_nodes, get_vms, and job tools
Native MCP HTTP from Dockerremote MCP clients that support Streamable HTTPdocker compose --profile mcp-http up -d proxmox-mcp-httpconnect to http://localhost:8000/mcp
OpenAPI bridge from DockerHTTP clients, dashboards, scripts, no-code toolsdocker compose up -dcurl -f http://localhost:8811/livez

MCP stdio with PyPI

uvx proxmox-mcp-plus

Or install it first:

pip install proxmox-mcp-plus
proxmox-mcp-plus

Use this path when the MCP client launches a local stdio server.

Native MCP HTTP with Docker

Use this path when a remote MCP client supports Streamable HTTP:

docker run --rm -p 8000:8000 \
  -e PROXMOX_MCP_MODE=mcp-http \
  -e MCP_HOST=0.0.0.0 \
  -e MCP_PORT=8000 \
  -e MCP_TRANSPORT=STREAMABLE_HTTP \
  -v "$(pwd)/proxmox-config/config.json:/app/proxmox-config/config.json:ro" \
  ghcr.io/rekklesna/proxmoxmcp-plus:latest

Point MCP clients at:

http://<docker-host>:8000/mcp

When serving MCP HTTP behind a reverse proxy, keep DNS rebinding protection enabled and allow only the hostnames you expect:

docker run --rm -p 8000:8000 \
  -e PROXMOX_MCP_MODE=mcp-http \
  -e MCP_HOST=0.0.0.0 \
  -e MCP_PORT=8000 \
  -e MCP_TRANSPORT=STREAMABLE_HTTP \
  -e MCP_DNS_REBINDING_PROTECTION=true \
  -e MCP_ALLOWED_HOSTS=mcp.example.com:*,localhost:* \
  -e MCP_ALLOWED_ORIGINS=https://mcp.example.com \
  -v "$(pwd)/proxmox-config/config.json:/app/proxmox-config/config.json:ro" \
  ghcr.io/rekklesna/proxmoxmcp-plus:latest

OpenAPI bridge with Docker

OpenAPI mode is the default Docker runtime and requires an API key:

export PROXMOX_API_KEY="$(openssl rand -hex 32)"
docker run --rm -p 8811:8811 \
  -e PROXMOX_API_KEY="$PROXMOX_API_KEY" \
  -v "$(pwd)/proxmox-config/config.json:/app/proxmox-config/config.json:ro" \
  ghcr.io/rekklesna/proxmoxmcp-plus:latest

Verify the OpenAPI surface:

curl -f http://localhost:8811/livez
curl -f -H "Authorization: Bearer $PROXMOX_API_KEY" http://localhost:8811/health
curl -H "Authorization: Bearer $PROXMOX_API_KEY" http://localhost:8811/openapi.json

For local unauthenticated development only, set PROXMOX_ALLOW_NO_AUTH=true.

Source checkout

git clone https://github.com/RekklesNA/ProxmoxMCP-Plus.git
cd ProxmoxMCP-Plus
uv venv
uv pip install -e ".[dev]"
python main.py

The 8811 service is the OpenAPI/REST bridge. The 8000 service is the native MCP HTTP endpoint.

Client Install

Use the one-click buttons when your client supports MCP install deeplinks, or copy the JSON config below.

Install in VS Code Install in Cursor

Recommended stdio config:

{
  "mcpServers": {
    "proxmox-mcp-plus": {
      "command": "uvx",
      "args": ["proxmox-mcp-plus"],
      "env": {
        "PROXMOX_HOST": "your-proxmox-host",
        "PROXMOX_USER": "root@pam",
        "PROXMOX_TOKEN_NAME": "mcp-token",
        "PROXMOX_TOKEN_VALUE": "your-token-secret",
        "PROXMOX_PORT": "8006",
        "PROXMOX_VERIFY_SSL": "true"
      }
    }
  }
}

Use a local config file if you prefer not to keep credentials in the client config:

{
  "mcpServers": {
    "proxmox-mcp-plus": {
      "command": "uvx",
      "args": ["proxmox-mcp-plus"],
      "env": {
        "PROXMOX_MCP_CONFIG": "/path/to/ProxmoxMCP-Plus/proxmox-config/config.json"
      }
    }
  }
}

Client-specific examples for Claude Desktop, Cursor, VS Code, Codex, OpenCode, Open WebUI, Streamable HTTP, and OpenAPI are in the Client Setup Guide and Integrations Guide.

Demo

This demo is a direct terminal recording of qwen/qwen3.6-plus driving a live MCP session in English against a local Proxmox lab. It shows natural-language control flowing through MCP tools to create and start an LXC, execute a container command, and confirm the authenticated HTTP /health surface.

Recorded demo gif

Watch the MP4 version

Choose The Right Tool

Start with read-only discovery, then move to mutating tools only after the target node, storage, VMID, and permissions are clear.

Operator goalStart withThen useNotes
Inspect the clusterget_nodes, get_cluster_statusget_storage, get_vms, get_containersBest first health check after client install
Create or manage a VMget_nodes, get_storagecreate_vm, start_vm, stop_vm, delete_vmLong-running mutations return job_id and Proxmox task_id
Manage LXCsget_containers, get_storagecreate_container, start_container, stop_container, delete_containerSSH-backed command tools require the optional ssh config
Roll back risky changeslist_snapshots with vm_type=qemu or vm_type=lxccreate_snapshot, rollback_snapshot, delete_snapshotCreate a snapshot before destructive workflow tests
Run commands inside guestsVM or container status toolsexecute_vm_command, execute_container_commandVM path needs QEMU Guest Agent; LXC path needs SSH to the Proxmox node
Track async workmutation response with job_idpoll_job, get_job, list_jobs, retry_job, cancel_jobUse job_id for agent/user conversations and task_id for raw Proxmox traceability
Automate from HTTP tools/openapi.json/jobs, /health, generated tool routesUse bearer auth and keep CORS restricted outside local development

For the full tool map, see the Tool Selection Guide and API & Tool Reference.

Safety Model

ProxmoxMCP-Plus is an access layer, not a replacement for Proxmox RBAC, network controls, or client-side MCP approval prompts.

The project gives operators several control points:

  • Proxmox API tokens decide what the backend can do.
  • PROXMOX_API_KEY protects the OpenAPI bridge by default.
  • TLS verification is enforced unless development mode is explicitly enabled.
  • command_policy controls command execution and high-risk operations.
  • approval_token can gate command execution and high-risk mutating actions.
  • MCP Streamable HTTP deployments can use DNS rebinding protection plus Host and Origin allowlists.
  • Logs are designed to avoid exposing command and credential material.

Read the Security Guide before exposing the server outside a trusted local environment.

Core Platform Capabilities

ProxmoxMCP-Plus provides a unified control surface for the operational tasks most teams actually need in Proxmox VE. The same server can expose these workflows to MCP clients for LLM and AI-agent use cases, and to HTTP consumers through the OpenAPI bridge.

Supported workflow areas:

Capability AreaAvailability
VM create / start / stop / deleteAvailable
VM snapshot create / rollback / deleteAvailable
Backup create / restoreAvailable
ISO download / deleteAvailable
LXC create / start / stop / deleteAvailable
Container SSH-backed command executionAvailable
Container authorized_keys updateAvailable
Persistent job store for long tasksAvailable
MCP job control tools (list_jobs, get_job, poll_job, cancel_job, retry_job)Available
OpenAPI /jobs endpoints with explicit status codesAvailable
Local OpenAPI /livez, /readyz, /health, and schemaAvailable
Docker native MCP Streamable HTTP at /mcpAvailable
Docker image build and /livezAvailable

Validation and contract entry points in this repository:

  • pytest -q --cov=proxmox_mcp --cov-report=term-missing --cov-fail-under=75
  • ruff check .
  • mypy src --ignore-missing-imports
  • pip-audit -r requirements.txt
  • tests/integration/test_real_contract.py
  • tests/scripts/run_real_e2e.py

tests/scripts/run_real_e2e.py now prefers proxmox-config/config.live.json or PROXMOX_MCP_E2E_CONFIG. This avoids accidentally running live checks against a machine-specific default config.json.

Long-Running Jobs

Many Proxmox mutations are asynchronous. ProxmoxMCP-Plus now wraps those tasks in a persistent job layer so MCP and OpenAPI clients can track them through a stable Job ID.

Long-running tools such as VM create/start/stop, container create/start/stop, snapshot changes, backup/restore, and ISO download/delete now return both:

  • task_id: the raw Proxmox UPID
  • job_id: the stable server-side job record

The job record stores:

  • current status and progress
  • retry count and prior UPIDs
  • latest result payload or failure reason
  • audit history for create, poll, retry, and cancel actions

By default the job store persists to proxmox-jobs.sqlite3, so restart does not lose in-flight or completed job metadata.

MCP Job Tools

  • list_jobs
  • get_job
  • poll_job
  • cancel_job
  • retry_job

OpenAPI Job Routes

When the OpenAPI proxy is enabled and a local JobStore is available, these routes are exposed directly:

PathMethodPurposeSuccess Codes
/jobsGETlist persisted jobs200
/jobs/{job_id}GETfetch one job, optional refresh=true200
/jobs/{job_id}/pollPOSTrefresh status from Proxmox200
/jobs/{job_id}/cancelPOSTrequest cancellation202
/jobs/{job_id}/retryPOSTreplay a stored retry recipe202

Common error codes:

  • 404: unknown job_id
  • 409: the job exists but that operation is not valid now
  • 503: the OpenAPI proxy was started without a local JobStore

tests/scripts/run_real_e2e.py now prefers proxmox-config/config.live.json or PROXMOX_MCP_E2E_CONFIG. This avoids accidentally running live checks against a machine-specific default config.json.

Positioning Against Common Approaches

CapabilityOfficial Proxmox APIOne-off scriptsProxmoxMCP-Plus
MCP for LLM and AI agent workflowsNoNoYes
OpenAPI surface for standard HTTP toolingNoUsually noYes
VM and LXC operations in one interfaceLow-level onlyDependsYes
Snapshot, backup, and restore workflowsLow-level onlyDependsYes
Persistent async job tracking and retryNoRareYes
Container command execution with policy controlsNoCustom onlyYes
Docker distribution pathNoRareYes
Repository-level live-environment verificationN/ARareYes

Scenario Templates

Ready-to-copy examples live in docs/examples/:

These are written for both human operators and LLM-driven usage.

Documentation

The README is intentionally optimized for fast GitHub comprehension. Longer operational docs live in docs/wiki/ and can also be published to the GitHub Wiki.

If you need to...Start here
Understand the project and deployment flowWiki Home
Configure and run against a Proxmox environmentOperator Guide
Connect Claude Desktop, Cursor, VS Code, Codex, Open WebUI, or HTTP clientsClient Setup Guide
Choose the right tool for a workflowTool Selection Guide
Review docs quality goals, media plan, and publishing checklistDocumentation Quality Plan
Review integration patterns and transport detailsIntegrations Guide
Install from MCP-aware IDEs and agentsAgent Installation
Enable LXC command execution over SSHContainer Command Execution
Review security and command policySecurity Guide
Inspect tool parameters, prerequisites, and behaviorAPI & Tool Reference
Debug startup, auth, or health issuesTroubleshooting
Work on the codebase or release itDeveloper Guide
Review release and upgrade notesRelease & Upgrade Notes

Published wiki:

Repo Layout

  • src/proxmox_mcp/: MCP server, config loading, security, OpenAPI bridge
  • main.py: MCP entrypoint for local and client-driven usage
  • docker-compose.yml: HTTP/OpenAPI runtime
  • requirements/: auxiliary dependency sources and runtime install lists
  • scripts/: helper startup scripts for local workflows
  • tests/scripts/run_real_e2e.py: live Proxmox and Docker/OpenAPI path
  • tests/: unit and integration coverage
  • docs/examples/: scenario-driven prompts and HTTP examples
  • docs/wiki/: longer-form operator, integration, and reference docs

Development Checks

pytest -q --cov=proxmox_mcp --cov-report=term-missing --cov-fail-under=75
ruff check .
mypy src --ignore-missing-imports
pip-audit -r requirements.txt
python -m build

Paramiko 5.0.0 or newer is required so pip-audit can run without a CVE-2026-44405 exception.

License

MIT

Related MCP servers

Give your AI agent stealth web scraping with Cloudflare bypass and CSS selection, powered by Scrapling.

67k
Python
BSD-3-Clause
View repository →

Give your AI coding agent full control of a live Chrome browser for automation, debugging, and performance analysis.

45k
TypeScript
Apache-2.0
View repository →

Let AI agents manage your Puter files, websites, and serverless workers over MCP.

43k
TypeScript
AGPL-3.0
View repository →

Browser automation for AI agents via MCP, powering ByteDance's Agent TARS hybrid GUI/DOM browser control.

37k
TypeScript
Apache-2.0
View repository →

Run arbitrary shell commands from an MCP-connected AI agent.

37k
TypeScript
Apache-2.0
View repository →

Filesystem access MCP server from ByteDance's UI-TARS/Agent TARS ecosystem.

37k
TypeScript
Apache-2.0
View repository →