proxmox-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PROXMOX_MCP_HOME | No | Directory containing profiles.toml. Defaults to ~/.config/proxmox-mcp. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_nodesA | Every node the cluster reports, with capacity, uptime, and PVE version. Read-only and idempotent. A single-node installation is not a degenerate case: it reports one node and no cluster-wide quorum. An offline or unreadable node yields a partial result with a warning naming it, never an exception that hides the nodes that answered. |
| get_node_capacityA | CPU, memory, swap, and per-mount filesystem utilization for exactly one node. Read-only and idempotent. The per-mount figures and the memory detail come from the node
itself, so a node that cannot be reached yields a partial result naming it rather than an
exception. |
| list_guestsA | Every LXC and VM in the cluster, or a filtered subset. Read-only and idempotent. Stopped guests are included: they are the ones a caller is most
likely to have forgotten about. A filter that matches nothing returns an empty list, not
an error. A guest the cluster reports as |
| get_guest_configA | One guest's configuration, on exactly the node named. Read-only and idempotent. Returns cores, memory, swap, disks and their storage, network interfaces with bridge, address, and gateway, the unprivileged flag, the OS template, boot-on-start, and features. It never returns a password, a cloud-init password, or an SSH public key: there is no field for one. A vmid the cluster does not report on the node named raises a structured error naming both. A config that cannot be read yields a partial result with a warning. |
| get_guest_statusA | One guest's live status, on exactly the node named. Read-only and idempotent. Returns state, uptime, CPU, memory, swap, disk read and write, network in and out, and the high-availability state. A stopped guest is an answer, not a failure: it returns this model with its state, a
warning saying the live figures are not meaningful, and |
| list_storageA | Storage entries with their per-node status and a cluster-wide aggregate. Read-only and idempotent. With A storage that cannot be read yields a warning and |
| list_snapshotsA | Snapshots for exactly one guest, with parent, description, timestamp, and RAM state. Read-only and idempotent. A guest that has never been snapshotted returns an empty list:
the endpoint always reports a The node and vmid are bound together before anything is read, so this never answers about a guest on a node the caller did not name. |
| list_backupsA | Backup volumes with their guest, format, size, and timestamp, plus recency per guest. Read-only and idempotent. Recency covers every guest in scope whether or not it has a backup, because a guest missing from a backup listing is the most important thing such a listing reports. A storage that cannot be listed yields a warning and |
| check_ip_availabilityA | Whether one address inside the profile's configured networks is in use. Read-only and idempotent. Combines every guest configuration in the cluster, the neighbour table of one node, and one probe, and reports the evidence for its conclusion. Refuses any address outside Reports |
| list_guest_containersA | Docker containers inside one LXC guest, on exactly the node named. Read-only and idempotent. Reports each container's name, image, state, health verdict, creation time, published ports, compose project and service, and attached networks. Environment variables are never returned, and neither are container labels or command lines: there is no field for any of them. None of the four absences is an error. Docker not installed and a QEMU guest are both
complete answers with |
| inspect_compose_stackA | One compose project inside one LXC guest, on exactly the node named. Read-only and idempotent. Reports the project's status, working directory, configuration file paths, and for each service its image, state, health verdict, working directory, published ports, attached networks, and persistent mounts, plus the networks the project owns. Mount paths are returned; mount contents are never read -- no command form this server can issue opens a file. Environment variables are never returned, and neither are container labels or command lines. An empty |
| guest_health_summaryA | One consolidated read of a guest, on exactly the node named. Read-only and idempotent. Combines live status, resource pressure against the guest's
configured limits, filesystem headroom, Docker container health counts, snapshot and
backup recency, and a short list of concrete concerns. Prefer this over calling
Each entry in Three states stay distinguishable and none of them is an error. A guest that is not
running reports its state, a warning, and no resource figures, because the zeroes the
cluster carries for it describe nothing. A guest without Docker reports
A vmid the cluster does not report on the node named raises a structured error naming
both. Anything that could not be read yields a warning and |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| tool-index | Which tool to prefer for which question, what each result carries, how to read 'partial' and 'warnings', and what none of these tools will ever return. Read this before choosing a tool. |
| profiles-example | The shape of the operator's profiles.toml, with placeholder values only. Configuring it is an operator task; this server ships no default node, user, key path, or network. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/edymol/proxmox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server