github RekklesNA/ProxmoxMCP-Plus v0.5.14
ProxmoxMCP-Plus v0.5.14

5 hours ago

ProxmoxMCP-Plus v0.5.14

Release date: 2026-08-11

Optional Bearer authentication for native MCP HTTP

Native Streamable HTTP deployments can now set MCP_API_KEY to protect the /mcp
endpoint with application-level Bearer authentication. Requests that omit the header,
use another authentication scheme, or provide the wrong token receive 401 Unauthorized
with WWW-Authenticate: Bearer.

The new token is deliberately independent of PROXMOX_API_KEY, which continues to
protect only the OpenAPI bridge on port 8811. This allows operators to expose and rotate
the two surfaces independently.

Authentication uses constant-time token comparison. The middleware is implemented as a
direct ASGI pass-through: successful Streamable HTTP and text/event-stream responses
are not collected or buffered.

Compatibility

  • MCP_API_KEY is optional and affects only native Streamable HTTP mode.
  • STDIO and SSE transports are unchanged.
  • Existing unauthenticated Streamable HTTP deployments continue to start, but now emit a
    security warning explaining that reachable clients can invoke MCP tools.
  • Existing PROXMOX_API_KEY and PROXMOX_ALLOW_NO_AUTH behavior for OpenAPI is unchanged.

Upgrade

Generate a separate secret before starting a remotely reachable native MCP HTTP service:

export MCP_API_KEY="$(openssl rand -hex 32)"
docker compose --profile mcp-http up -d proxmox-mcp-http

Configure the MCP client to send:

Authorization: Bearer <MCP_API_KEY>

Continue to use TLS termination, network ingress restrictions, DNS rebinding protection,
and explicit Host/Origin allowlists. These controls address different threats and do not
replace caller authentication.

Validation

The release gate covers missing, malformed, incorrect, and matching credentials;
constant-time comparison; unchanged lifespan handling; unbuffered multi-chunk SSE event
forwarding; the unauthenticated compatibility path; Python 3.11 and 3.12 CI; Ruff; Mypy;
CodeQL; dependency auditing; package metadata; and multi-architecture container checks.

Rollback

Pin PyPI or source installs to 0.5.13, or use the GHCR tag 0.5.13. Rolling back removes
native /mcp Bearer enforcement, so retain a reverse proxy or network-level authentication
control until the deployment is upgraded again.

Don't miss a new ProxmoxMCP-Plus release

NewReleases is sending notifications on new releases.