ProxmoxMCP-Plus v0.5.21
Release date: 2026-09-26
Responsive container commands (#135)
SSH-backed container command execution and SSH-key updates now run in a separate
pool with at most four concurrent workers. Long commands no longer occupy the
MCP event loop; tool discovery and unrelated requests remain responsive.
Target routing, read-only restrictions and command/approval policy remain enforced.
Paramiko drains stdout and stderr together and has a wall-clock deadline,
including a watchdog for a stuck exec-request acknowledgement. OpenSSH kills and
reaps its local process when its 70-second wait expires. The command itself runs
under GNU coreutils /usr/bin/timeout inside the container: TERM after 60 seconds,
then KILL after a 5-second grace period. Containers must provide that executable;
minimal images without it fail explicitly rather than executing without a limit.
Sudo uses noninteractive mode with the existing scoped passwordless rule.
Timeout responses contain success: false, code: COMMAND_TIMEOUT,
timed_out: true, exit_code: 124 and captured partial output. Remote watchdog
exit codes 124/137 are interpreted as timeout. SSH/API setup time is additional.
Partial changes are not rolled back; inspect state before retrying. Deliberately
detached processes that escape the command process group are outside this limit.
Bridge discovery (#135)
New read-only list_bridges(node, target=None) returns network records from
/nodes/{node}/network?type=any_bridge, including Linux/OVS bridges and permitted
SDN VNets. It respects target selection, read-only targets and tool filtering.
Proxmox permissions determine which network records are visible.
Upgrade and validation
Install proxmox-mcp-plus==0.5.21 or pull
ghcr.io/rekklesna/proxmoxmcp-plus:0.5.21, then restart/reconnect clients.
Ensure containers used for SSH commands have GNU coreutils installed. Add
list_bridges to explicit allowlists if desired. No configuration migration is
required. Rolling back removes the bridge tool and these timeout protections.
Regression coverage includes a real MCP STDIO client, concurrent discovery and
unrelated calls, stalled/continuously producing SSH channels, both SSH backends,
cleanup, target/policy isolation, and a Linux process-group termination test.
CI covers Python 3.11/3.12, lint/types, dependency audit, packaging and CodeQL.
No live Proxmox container is changed during this release verification.