Read-only MCP server for Proxmox Datacenter Manager (PDM) resources, virtual machines, containers, nodes and storages.
Strong foundation with consistent naming (verb_noun pattern), comprehensive parameter schemas using Zod, and clear descriptions. All 13 tools follow read-only semantics with proper annotations. However, parameter descriptions lack actionable constraints (ranges, formats, examples), output schemas are not formally documented, and error handling is generic. Tool descriptions average ~120 chars (within baseline 194), but lack WHEN-to-use guidance and dependency hints. No pagination guidance despite list tools returning potentially large result sets.
Get detailed read-only runtime and configuration information for one LXC container.
Get detailed read-only status information for one Proxmox VE node.
Get a compact aggregate summary of one PDM remote, including node, VM, container and physical capacity counts. Prefer this for totals instead of listing every resource.
Get read-only status information for one Proxmox VE storage.
Get detailed read-only status and execution result of a specific task by UPID.
Get detailed read-only runtime and configuration information for one QEMU virtual machine.
Output schemas not formally documented. Tool descriptions state what is returned (e.g., 'Found N resources') but do not specify the structure of structuredContent fields. LLMs cannot plan downstream tool calls without knowing response field names and types.
Parameter descriptions lack actionable constraints. E.g., 'max_age' says 'Maximum cache age in seconds' but omits valid range (0 - 3600?). 'limit' in list_tasks defaults to 20 with max 100, but description does not state the bounds. LLMs cannot validate inputs without explicit constraints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | A | 84 | 2026-07-28+ | v2 |
List LXC containers. Defaults to a compact summary. Use view=hardware for assigned CPU/RAM/disk, view=runtime for current usage, and get_container for details about one container.
List PVE nodes. Defaults to a compact summary. Use view=capacity for physical CPU/RAM, view=runtime for current usage, and get_node for one node's details.
List remotes configured in Proxmox Datacenter Manager.
List and filter resources managed by Proxmox Datacenter Manager.
List PVE storages. Defaults to a compact summary. Use view=capacity for total/used/available space, and get_storage for one storage's details.
List recent and active tasks for a remote PVE cluster or specific node. Defaults to a compact summary. Use for tracking backups, migrations, or troubleshooting failures.
List QEMU virtual machines. Defaults to a compact summary. Use view=hardware for assigned CPU/RAM/disk, view=runtime for current usage, and get_vm for details about one VM.
List tools lack pagination guidance. list_resources, list_vms, list_nodes, list_containers, list_storages, list_tasks do not document result limits or pagination strategy. If a Proxmox cluster has 500 VMs, does the tool return all 500 or cap at N? No guidance on how to iterate.
Error handling is generic. toolError() returns only the error message with isError=true. No guidance on whether the error is retryable, user-fixable, or fatal. E.g., 'Connection refused' vs 'Invalid remote name' require different agent responses, but both return the same structure.
Tool descriptions lack WHEN-to-use guidance and dependency hints. E.g., list_vms says 'Use view=hardware for assigned CPU/RAM/disk' but does not explain when to call list_vms vs get_vm vs get_remote_summary. No hints like 'Call list_remotes first if you don't know the remote name.'