ProxmoxMCP-Plus v0.5.23
Release date: 2026-09-26
Fixes
- Repair over-escaped default command deny patterns. Deny rules now reject the
documented dangerous commands even when an allowlist permits them. - Restore LXC backups with
ostemplateandrestore=1; keep QEMU restore payloads
unchanged. Repair persisted legacy LXC restore recipes when retried. - Cancel Proxmox tasks with
DELETE /nodes/{node}/tasks/{upid}across all tools
and restarted job stores. - Protect poll/retry state transitions with SQLite write transactions across
store instances. In-flight polls cannot replace a retry claim with old task
state. Pending cancellation must reach a terminal state before retrying. - Report unavailable backup storage and partial listings explicitly.
- Include PR #139: split asyncpg pool-reset commands for PgDog and align the
minimum asyncpg version (0.30.0) in all dependency declarations.
Performance and compatibility
Job audit events use an append-only table rather than rewriting accumulated JSON.
Existing events migrate transactionally at startup; the public audit_log response
remains unchanged. jobs.audit_retention_days optionally removes expired audit
events at startup and on job updates. It is unset by default and does not delete jobs.
Code Mode can reuse workers with mcp.code_mode_pool_reuse: true or
MCP_CODE_MODE_POOL_REUSE=true. It remains disabled by default. Each execution gets
a new sandbox session with independent globals, approvals and resource limits.
The server owns at most two workers and recycles them after 100 checkouts.
python scripts/benchmark_code_mode.py --iterations 20 measures simple expression
execution. A Windows Python 3.12 sample measured medians of 12.342 ms with fresh
workers and 0.435 ms with reuse; startup overhead varies by host and this does not
predict real Proxmox tool latency.
Upgrade
Install proxmox-mcp-plus==0.5.23 or pull
ghcr.io/rekklesna/proxmoxmcp-plus:0.5.23.
Stop all workers sharing a job database, back up the SQLite database, then upgrade
and restart them together. Do not mix old/new workers on the same job database.
For downgrade with audit-history preservation, restore the pre-upgrade backup;
older versions cannot read the new audit table. No OAuth schema migration is added.
Validation
Regression coverage includes HTTP request contracts using the real proxmoxer
resource builder, persisted LXC restore recipes, cancellation after restart,
cross-store poll/retry interleavings, audit migration/retention, and real sandbox
isolation, failure and cancellation recovery. CI runs PostgreSQL OAuth integration
checks on Python 3.11 and 3.12 along with coverage, Ruff, Mypy, dependency auditing,
build/metadata checks and CodeQL. Tests do not mutate live Proxmox guests.