Proxmox VE
Manage Proxmox VE nodes, VMs, containers, storage and snapshots. Read-only by default.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
proxmox-ve-mcpclaude mcp add proxmox-ve -e 'PROXMOX_HOST=<PROXMOX_HOST>' -e 'PROXMOX_PORT=8006' -e 'PROXMOX_VERIFY_SSL=false' -e 'PROXMOX_TIMEOUT=15' -e 'PROXMOX_USER=root@pam' -e 'PROXMOX_TOKEN_NAME=<PROXMOX_TOKEN_NAME>' -e 'PROXMOX_TOKEN_VALUE=<your proxmox_token_value>' -e 'PROXMOX_PASSWORD=<your proxmox_password>' -e 'PROXMOX_RISK_LEVEL=read' -e 'PROXMOX_TOOLS_ALLOW=<PROXMOX_TOOLS_ALLOW>' -e 'PROXMOX_REDACT_SECRETS=true' -e 'PROXMOX_MCP_TRANSPORT=stdio' -e 'PROXMOX_MCP_HOST=127.0.0.1' -e 'PROXMOX_MCP_PORT=8000' -e 'PROXMOX_MCP_PATH=/mcp' -e 'PROXMOX_MCP_JSON_RESPONSE=true' -e 'PROXMOX_MCP_ALLOWED_HOSTS=<PROXMOX_MCP_ALLOWED_HOSTS>' -e 'PROXMOX_MCP_ALLOWED_ORIGINS=<PROXMOX_MCP_ALLOWED_ORIGINS>' -e 'SENTRY_DSN=<your sentry_dsn>' -- uvx proxmox-ve-mcp==2.3.0
{
"mcpServers": {
"proxmox-ve": {
"command": "uvx",
"args": [
"proxmox-ve-mcp==2.3.0"
],
"env": {
"PROXMOX_HOST": "<PROXMOX_HOST>",
"PROXMOX_PORT": "8006",
"PROXMOX_VERIFY_SSL": "false",
"PROXMOX_TIMEOUT": "15",
"PROXMOX_USER": "root@pam",
"PROXMOX_TOKEN_NAME": "<PROXMOX_TOKEN_NAME>",
"PROXMOX_TOKEN_VALUE": "<your proxmox_token_value>",
"PROXMOX_PASSWORD": "<your proxmox_password>",
"PROXMOX_RISK_LEVEL": "read",
"PROXMOX_TOOLS_ALLOW": "<PROXMOX_TOOLS_ALLOW>",
"PROXMOX_REDACT_SECRETS": "true",
"PROXMOX_MCP_TRANSPORT": "stdio",
"PROXMOX_MCP_HOST": "127.0.0.1",
"PROXMOX_MCP_PORT": "8000",
"PROXMOX_MCP_PATH": "/mcp",
"PROXMOX_MCP_JSON_RESPONSE": "true",
"PROXMOX_MCP_ALLOWED_HOSTS": "<PROXMOX_MCP_ALLOWED_HOSTS>",
"PROXMOX_MCP_ALLOWED_ORIGINS": "<PROXMOX_MCP_ALLOWED_ORIGINS>",
"SENTRY_DSN": "<your sentry_dsn>"
}
}
}
}
Environment variables
PROXMOX_HOSTrequired Proxmox host IP or hostname.PROXMOX_PORTProxmox API port.PROXMOX_VERIFY_SSLVerify the TLS certificate. Proxmox self-signs by default.PROXMOX_TIMEOUTSeconds to wait for each Proxmox API request.PROXMOX_USERAPI user, including the realm.PROXMOX_TOKEN_NAMEAPI token name. Use this plus PROXMOX_TOKEN_VALUE, or PROXMOX_PASSWORD.PROXMOX_TOKEN_VALUEsecret API token secret.PROXMOX_PASSWORDsecret Password, used only when no API token is set.PROXMOX_RISK_LEVELWhich tools exist: read-only, plus lifecycle, or everything.PROXMOX_TOOLS_ALLOWComma-separated tool names to register, intersected with the risk level. Unset = all of them.PROXMOX_REDACT_SECRETSMask cipassword and sshkeys in every response.PROXMOX_MCP_TRANSPORTstdio (default) or streamable-http.PROXMOX_MCP_HOSTHTTP bind address. Anything but loopback also needs PROXMOX_MCP_ALLOWED_HOSTS.PROXMOX_MCP_PORTHTTP port.PROXMOX_MCP_PATHStreamable HTTP endpoint path.PROXMOX_MCP_JSON_RESPONSEAnswer with JSON instead of an SSE stream.PROXMOX_MCP_ALLOWED_HOSTSComma-separated Host headers to accept over HTTP; '*' disables the check.PROXMOX_MCP_ALLOWED_ORIGINSComma-separated browser origins allowed to call the endpoint. Empty = same-origin only.SENTRY_DSNsecret Optional: report tool traces and errors to Sentry. Unset disables it.
ghcr.io/akmalovaa/proxmox-mcp:2.3.0claude mcp add proxmox-ve -e 'PROXMOX_HOST=<PROXMOX_HOST>' -e 'PROXMOX_PORT=8006' -e 'PROXMOX_VERIFY_SSL=false' -e 'PROXMOX_TIMEOUT=15' -e 'PROXMOX_USER=root@pam' -e 'PROXMOX_TOKEN_NAME=<PROXMOX_TOKEN_NAME>' -e 'PROXMOX_TOKEN_VALUE=<your proxmox_token_value>' -e 'PROXMOX_PASSWORD=<your proxmox_password>' -e 'PROXMOX_RISK_LEVEL=read' -e 'PROXMOX_TOOLS_ALLOW=<PROXMOX_TOOLS_ALLOW>' -e 'PROXMOX_REDACT_SECRETS=true' -e 'PROXMOX_MCP_TRANSPORT=stdio' -e 'PROXMOX_MCP_HOST=127.0.0.1' -e 'PROXMOX_MCP_PORT=8000' -e 'PROXMOX_MCP_PATH=/mcp' -e 'PROXMOX_MCP_JSON_RESPONSE=true' -e 'PROXMOX_MCP_ALLOWED_HOSTS=<PROXMOX_MCP_ALLOWED_HOSTS>' -e 'PROXMOX_MCP_ALLOWED_ORIGINS=<PROXMOX_MCP_ALLOWED_ORIGINS>' -e 'SENTRY_DSN=<your sentry_dsn>' -- docker run -i --rm ghcr.io/akmalovaa/proxmox-mcp:2.3.0
{
"mcpServers": {
"proxmox-ve": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/akmalovaa/proxmox-mcp:2.3.0"
],
"env": {
"PROXMOX_HOST": "<PROXMOX_HOST>",
"PROXMOX_PORT": "8006",
"PROXMOX_VERIFY_SSL": "false",
"PROXMOX_TIMEOUT": "15",
"PROXMOX_USER": "root@pam",
"PROXMOX_TOKEN_NAME": "<PROXMOX_TOKEN_NAME>",
"PROXMOX_TOKEN_VALUE": "<your proxmox_token_value>",
"PROXMOX_PASSWORD": "<your proxmox_password>",
"PROXMOX_RISK_LEVEL": "read",
"PROXMOX_TOOLS_ALLOW": "<PROXMOX_TOOLS_ALLOW>",
"PROXMOX_REDACT_SECRETS": "true",
"PROXMOX_MCP_TRANSPORT": "stdio",
"PROXMOX_MCP_HOST": "127.0.0.1",
"PROXMOX_MCP_PORT": "8000",
"PROXMOX_MCP_PATH": "/mcp",
"PROXMOX_MCP_JSON_RESPONSE": "true",
"PROXMOX_MCP_ALLOWED_HOSTS": "<PROXMOX_MCP_ALLOWED_HOSTS>",
"PROXMOX_MCP_ALLOWED_ORIGINS": "<PROXMOX_MCP_ALLOWED_ORIGINS>",
"SENTRY_DSN": "<your sentry_dsn>"
}
}
}
}
Environment variables
PROXMOX_HOSTrequired Proxmox host IP or hostname.PROXMOX_PORTProxmox API port.PROXMOX_VERIFY_SSLVerify the TLS certificate. Proxmox self-signs by default.PROXMOX_TIMEOUTSeconds to wait for each Proxmox API request.PROXMOX_USERAPI user, including the realm.PROXMOX_TOKEN_NAMEAPI token name. Use this plus PROXMOX_TOKEN_VALUE, or PROXMOX_PASSWORD.PROXMOX_TOKEN_VALUEsecret API token secret.PROXMOX_PASSWORDsecret Password, used only when no API token is set.PROXMOX_RISK_LEVELWhich tools exist: read-only, plus lifecycle, or everything.PROXMOX_TOOLS_ALLOWComma-separated tool names to register, intersected with the risk level. Unset = all of them.PROXMOX_REDACT_SECRETSMask cipassword and sshkeys in every response.PROXMOX_MCP_TRANSPORTstdio (default) or streamable-http.PROXMOX_MCP_HOSTHTTP bind address. Anything but loopback also needs PROXMOX_MCP_ALLOWED_HOSTS.PROXMOX_MCP_PORTHTTP port.PROXMOX_MCP_PATHStreamable HTTP endpoint path.PROXMOX_MCP_JSON_RESPONSEAnswer with JSON instead of an SSE stream.PROXMOX_MCP_ALLOWED_HOSTSComma-separated Host headers to accept over HTTP; '*' disables the check.PROXMOX_MCP_ALLOWED_ORIGINSComma-separated browser origins allowed to call the endpoint. Empty = same-origin only.SENTRY_DSNsecret Optional: report tool traces and errors to Sentry. Unset disables it.
Frequently asked questions
What is Proxmox VE?
Manage Proxmox VE nodes, VMs, containers, storage and snapshots. Read-only by default.
How do I install Proxmox VE?
It runs on your machine. In Claude Code: claude mcp add proxmox-ve -e 'PROXMOX_HOST=<PROXMOX_HOST>' -e 'PROXMOX_PORT=8006' -e 'PROXMOX_VERIFY_SSL=false' -e 'PROXMOX_TIMEOUT=15' -e 'PROXMOX_USER=root@pam' -e 'PROXMOX_TOKEN_NAME=<PROXMOX_TOKEN_NAME>' -e 'PROXMOX_TOKEN_VALUE=<your proxmox_token_value>' -e 'PROXMOX_PASSWORD=<your proxmox_password>' -e 'PROXMOX_RISK_LEVEL=read' -e 'PROXMOX_TOOLS_ALLOW=<PROXMOX_TOOLS_ALLOW>' -e 'PROXMOX_REDACT_SECRETS=true' -e 'PROXMOX_MCP_TRANSPORT=stdio' -e 'PROXMOX_MCP_HOST=127.0.0.1' -e 'PROXMOX_MCP_PORT=8000' -e 'PROXMOX_MCP_PATH=/mcp' -e 'PROXMOX_MCP_JSON_RESPONSE=true' -e 'PROXMOX_MCP_ALLOWED_HOSTS=<PROXMOX_MCP_ALLOWED_HOSTS>' -e 'PROXMOX_MCP_ALLOWED_ORIGINS=<PROXMOX_MCP_ALLOWED_ORIGINS>' -e 'SENTRY_DSN=<your sentry_dsn>' -- uvx proxmox-ve-mcp==2.3.0. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Proxmox VE need an API key?
Yes. It expects PROXMOX_HOST, PROXMOX_TOKEN_VALUE, PROXMOX_PASSWORD, SENTRY_DSN, which you set in its configuration.
Is Proxmox VE open source?
Its code is public on GitHub, but the repository does not declare a standard license.
Who maintains Proxmox VE?
It is published by akmalovaa. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.