- Fixed 104 broken references in 59 files - Consolidated 40+ duplicate status files - Archived duplicates to reports/archive/duplicates/ - Created scripts for reference fixing and consolidation - Updated content inconsistency reports All optional cleanup tasks complete.
6.3 KiB
MCP Server Configuration
This document describes how to configure the Proxmox MCP server for use with Claude Desktop and other MCP clients.
Claude Desktop Configuration
Step 1: Locate Claude Desktop Config File
The config file location depends on your operating system:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Step 2: Create or Update Config File
Add the Proxmox MCP server configuration. You have two options:
Option 1: Using External .env File (Recommended)
This is the recommended approach as it keeps sensitive credentials out of the config file:
{
"mcpServers": {
"proxmox": {
"command": "node",
"args": ["/home/intlc/projects/proxmox/mcp-proxmox/index.js"]
}
}
}
Important: The server automatically loads environment variables from /home/intlc/.env (one directory up from mcp-proxmox).
Option 2: Inline Environment Variables
If you prefer to specify environment variables directly in the config:
{
"mcpServers": {
"proxmox": {
"command": "node",
"args": ["/home/intlc/projects/proxmox/mcp-proxmox/index.js"],
"env": {
"PROXMOX_HOST": "your-proxmox-ip-or-hostname",
"PROXMOX_USER": "root@pam",
"PROXMOX_TOKEN_NAME": "your-token-name",
"PROXMOX_TOKEN_VALUE": "your-token-secret",
"PROXMOX_ALLOW_ELEVATED": "false",
"PROXMOX_PORT": "8006"
}
}
}
}
Step 3: Create .env File (if using Option 1)
Create a .env file at /home/intlc/.env with the following content:
# Proxmox Configuration (REQUIRED)
PROXMOX_HOST=your-proxmox-ip-or-hostname
PROXMOX_USER=root@pam
PROXMOX_TOKEN_NAME=your-token-name
PROXMOX_TOKEN_VALUE=your-token-secret
# Security Settings (REQUIRED)
PROXMOX_ALLOW_ELEVATED=false # Set to 'true' for advanced features
# Optional Settings
# PROXMOX_PORT=8006 # Defaults to 8006
⚠️ WARNING: Setting PROXMOX_ALLOW_ELEVATED=true enables DESTRUCTIVE operations (creating, deleting, modifying VMs/containers, snapshots, backups, etc.). Only enable if you understand the security implications!
Step 4: Restart Claude Desktop
After adding the configuration:
- Save the config file
- Restart Claude Desktop completely
- Verify the server is loaded in Claude Desktop → Settings → Developer → MCP Servers
- Test by asking Claude: "List my Proxmox VMs"
Proxmox API Token Setup
You have two options to create a Proxmox API token:
Option 1: Using the Script (Recommended)
Use the provided script to create a token programmatically:
./scripts/create-proxmox-token.sh <proxmox-host> <username> <password> [token-name]
Example:
./scripts/create-proxmox-token.sh 192.168.1.100 root@pam mypassword mcp-server
The script will:
- Authenticate with your Proxmox server
- Create the API token
- Display the token values to add to your
.envfile
⚠️ Note: You'll need valid Proxmox credentials (username/password) to run this script.
Option 2: Manual Creation via Web Interface
- Log into your Proxmox web interface
- Navigate to Datacenter → Permissions → API Tokens
- Click Add to create a new API token:
- User: Select existing user (e.g.,
root@pam) - Token ID: Enter a name (e.g.,
mcp-server) - Privilege Separation: Uncheck for full access or leave checked for limited permissions
- Click Add
- User: Select existing user (e.g.,
- Important: Copy both the Token ID and Secret immediately (secret is only shown once)
- Use Token ID as
PROXMOX_TOKEN_NAME - Use Secret as
PROXMOX_TOKEN_VALUE
- Use Token ID as
Permission Requirements
- Basic Mode (
PROXMOX_ALLOW_ELEVATED=false): Minimal permissions (usually default user permissions work) - Elevated Mode (
PROXMOX_ALLOW_ELEVATED=true): Add permissions forSys.Audit,VM.Monitor,VM.Console,VM.Allocate,VM.PowerMgmt,VM.Snapshot,VM.Backup,VM.Config,Datastore.Audit,Datastore.Allocate
Testing the MCP Server
You can test the server directly from the command line:
# Test server startup
cd /home/intlc/projects/proxmox/mcp-proxmox
node index.js
# Test listing tools
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | node index.js
# Test a basic API call
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "proxmox_get_nodes", "arguments": {}}}' | node index.js
Available Tools
The Proxmox MCP server provides 55+ tools for interacting with Proxmox, including:
- Node management (list nodes, get status, get resources)
- VM and container management (list, create, delete, start, stop, reboot)
- Storage management (list storage, get details)
- Snapshot management (create, list, restore, delete)
- Backup management (create, list, restore, delete)
- Network management
- And much more...
See the mcp-proxmox README for the complete list of available tools.
Troubleshooting
Server Connection Errors
If Claude Desktop shows server connection errors:
- Verify the path to
index.jsis correct and absolute - Ensure Node.js is installed and in your PATH
- Check that dependencies are installed:
cd mcp-proxmox && pnpm install - Test the server manually using the commands above
Environment File Not Found
If you see "Could not load .env file" warnings:
- Verify the
.envfile exists at/home/intlc/.env(one directory up frommcp-proxmox) - Check file permissions:
ls -la ~/.env - Verify the file contains valid environment variables
Authentication Errors
If you see authentication errors:
- Verify your Proxmox API token is valid
- Check that
PROXMOX_HOST,PROXMOX_USER,PROXMOX_TOKEN_NAME, andPROXMOX_TOKEN_VALUEare all set correctly - Test the token manually using curl:
curl -k -H "Authorization: PVEAPIToken=root@pam!token-name=token-secret" \ https://your-proxmox-host:8006/api2/json/nodes
Permission Errors
If operations fail with permission errors:
- Check that your API token has the required permissions
- For basic operations, ensure you have at least read permissions
- For elevated operations, ensure
PROXMOX_ALLOW_ELEVATED=trueis set and the token has appropriate permissions