About Proxmox MCP Go
Proxmox MCP Go is an MCP server published by anthoniech in the AI category: a Proxmox MCP (Model Context Protocol) server written in Go.
The repository has 4 stars and 0 forks, with the last commit 2 months ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/anthoniech/proxmox-mcp-goThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Proxmox MCP Go
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
proxmox-mcp-go
A Proxmox MCP (Model Context Protocol) server written in Go. Exposes Proxmox VE management tools to AI agents over HTTP using the MCP streamable HTTP transport.
Getting Started
Prerequisites
- Go 1.24+
- Docker (optional)
Configuration
Copy and edit the config file:
bind_port: 3001
verbose: true
pve_url: "https://your-proxmox-host:8006"
pve_token_id: "root@pam!mcp"
pve_token: "your-api-token-secret"
mcp_api_key: "your-secret-key-here"
# mcp_stdio: false
| Field | Description |
|---|---|
bind_host |
HTTP server bind address (default: 0.0.0.0) |
bind_port |
HTTP server port (default: 3001) |
pve_url |
Proxmox VE API URL |
pve_token_id |
API token ID (e.g. root@pam!mcp) |
pve_token |
API token secret |
mcp_api_key |
API key for authenticating MCP endpoint requests (Bearer token) |
mcp_stdio |
Enable stdio transport (default: false) |
Running
go run main.go --config=$PWD/config/config.yaml
Docker
./run-docker.sh
# Or with custom config/port
CONFIG_FILE=/path/to/config.yaml PORT=3001 ./run-docker.sh
MCP Endpoint
The MCP server is available at POST /mcp using the streamable HTTP transport.
Connecting from Claude Code
{
"mcpServers": {
"proxmox": {
"type": "url",
"url": "http://your-host:3001/mcp",
"headers": {
"Authorization": "Bearer your-secret-key-here"
}
}
}
}
When mcp_api_key is set, all requests to /mcp must include a Authorization: Bearer <key> header. If the key is not set, the endpoint is unauthenticated.
Available Tools
| Category | Tools |
|---|---|
| Cluster | get_version, get_cluster_status, list_nodes, get_node_status, get_node_network |
| Guest | list_vms, list_containers, list_cluster_resources, get_guest_config, start_guest, stop_guest, get_next_id, update_guest_config, migrate_guest, resize_guest_disk |
| Create | create_vm, create_container, clone_guest, delete_guest, convert_to_template |
| Snapshot | list_snapshots, create_snapshot, rollback_snapshot, delete_snapshot |
| Backup | backup_guest, list_backups, restore_backup |
| Storage | list_storage, list_templates, list_isos, download_template |
| Task | list_tasks, get_task_status, get_task_log |
API
GET /api/v1/ # Default page
GET /api/v1/health # Health check
POST /mcp # MCP streamable HTTP endpoint
Project Structure
main.go # Entry point
app/ # Application lifecycle, logging, signal handling
server/ # HTTP server, routing, middleware
config/ # Configuration parsing
mcp/ # MCP server, Proxmox client, tool registrations
Development
# Build binary
go build -o ./tmp/main.exe .
# Run tests
go test ./...
# Lint
golangci-lint run --fix
# Update vendor after dependency changes
go mod tidy && go mod vendor
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.