Skip to main content
Glama
akmalovaa

proxmox-mcp

Proxmox-mcp

CI Release License: MIT Python 3.14 GHCR MCP

シンプルな Proxmox MCP

Proxmox VE を管理するための MCP サーバー

38 個のツール — ノード、QEMU VM、LXC コンテナ、ストレージ、クラスター、スナップショット。

なぜこれを使うのか?

  • 単一イメージ、マルチアーキテクチャ — docker run ghcr.io/akmalovaa/proxmox-mcp:latest を実行するだけで完了

  • 環境変数のみ — 設定ファイル、データベース、状態管理は不要

  • デフォルトで読み取り専用 — 破壊的な操作は明示的な PROXMOX_RISK_LEVEL によって制限

  • 小さなコードベース — Proxmoxer 上の純粋な stdio MCP。HTTP サーバー、認証レイヤー、余計な機能はなし

  • 生の JSON 出力 — フォーマットや絵文字なし。LLM がクリーンなデータを取得可能

クイックスタート

イメージ: ghcr.io/akmalovaa/proxmox-mcp:latest (マルチアーキテクチャ: amd64 + arm64)。

1. シェルプロファイル (~/.zprofile, ~/.zshrc または ~/.bashrc) に認証情報をエクスポートします:

# base environment:
export PROXMOX_HOST=192.168.1.100
export PROXMOX_USER=root@pam
export PROXMOX_PASSWORD=your-password

# or use token auth (recommended):
export PROXMOX_TOKEN_NAME=mcp
export PROXMOX_TOKEN_VALUE=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

# optional:
export PROXMOX_RISK_LEVEL=read

リロード: source ~/.zprofile (またはシェルを再起動)。

2. ~/.claude/settings.json (Claude Code) または claude_desktop_config.json (Claude Desktop) に追加します:

{
  "mcpServers": {
    "proxmox": {
      "command": "docker",
      "args": ["run", "-i", "--rm",
        "-e", "PROXMOX_HOST",
        "-e", "PROXMOX_USER",
        "-e", "PROXMOX_PASSWORD",
        "ghcr.io/akmalovaa/proxmox-mcp:latest"]
    }
  }
}

またはトークン認証:

{
  "mcpServers": {
    "proxmox": {
      "command": "docker",
      "args": ["run", "-i", "--rm",
        "-e", "PROXMOX_HOST",
        "-e", "PROXMOX_USER",
        "-e", "PROXMOX_TOKEN_NAME",
        "-e", "PROXMOX_TOKEN_VALUE",
        "ghcr.io/akmalovaa/proxmox-mcp:latest"]
    }
  }
}

値なしで docker run -e VAR を実行すると、ホスト変数がそのまま渡されます。設定ファイルにシークレットを含める必要はありません。クライアントを再起動すると、38 個の Proxmox ツールが利用可能になります。

パスワード認証の場合は、トークン変数を PROXMOX_PASSWORD に置き換えてください。

注意: macOS 上の Claude Desktop は launchd 経由で起動されるため、~/.zprofile/~/.zshrc を継承しません。エクスポートを ~/.zshenv に記述するか、設定内のインライン "env": { ... } ブロックを使用してください。

設定

すべての設定は環境変数です。シェルプロファイルで設定するか、docker run -e にインラインで渡すか、MCP クライアントの env ブロックで宣言してください。

変数

デフォルト

説明

PROXMOX_HOST

Proxmox ホスト (IP またはホスト名)

PROXMOX_USER

root@pam

API ユーザー

認証

PROXMOX_PORT

8006

API ポート

PROXMOX_VERIFY_SSL

false

TLS 証明書の検証

PROXMOX_RISK_LEVEL

read

read / lifecycle / all

認証: トークン または パスワード

どちらか一方を選択してください。両方設定されている場合はトークンが優先されます。

トークン (推奨) — Proxmox UI で作成: データセンター → パーミッション → API トークン → 追加 (Privilege Separation のチェックを外す)。その後:

export PROXMOX_TOKEN_NAME=mcp
export PROXMOX_TOKEN_VALUE=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

パスワード (フォールバック):

export PROXMOX_PASSWORD=your-password

リスクレベル

PROXMOX_RISK_LEVEL は破壊的な操作を制限します:

レベル

追加される操作

read (デフォルト)

読み取り専用ツール

lifecycle

+ 起動 / 停止 / 再起動 / サスペンド / クローン / スナップショット作成

all

+ スナップショット削除 / スナップショットロールバック

権限が必要な呼び出しはすべて stderr にログ記録されます (ALLOW / DENY + ツール + レベル)。

ツール

ノード (7)

ツール

説明

list_nodes

ステータス、CPU、メモリ、稼働時間を含む全クラスターノードの一覧

get_node_status

詳細なノードメトリクス (CPU、メモリ、ディスク、負荷、カーネル)

get_node_networks

ノード上のネットワークインターフェース

get_node_disks

ノード上の物理ディスク

get_node_tasks

ノード上の最近のタスク

get_task_status

UPID による特定のタスクのステータス

get_task_log

タスクのログ出力

QEMU VM (14)

ツール

レベル

説明

list_vms

read

全 VM の一覧 (ノードによるフィルタリング可)

get_vm_status

read

現在の VM ステータス (実行中/停止中、CPU、メモリ)

get_vm_config

read

VM 設定 (ハードウェア、ディスク、ネットワーク)

list_vm_snapshots

read

VM の全スナップショットの一覧

start_vm

lifecycle

VM の起動

stop_vm

lifecycle

VM の強制停止

shutdown_vm

lifecycle

タイムアウト付きの安全な ACPI シャットダウン

reboot_vm

lifecycle

ACPI 経由の再起動

suspend_vm

lifecycle

VM のサスペンド

resume_vm

lifecycle

サスペンドされた VM の再開

clone_vm

lifecycle

フルクローンまたはリンククローン

create_vm_snapshot

lifecycle

スナップショットの作成

delete_vm_snapshot

all

スナップショットの削除

rollback_vm_snapshot

all

スナップショットへのロールバック

LXC コンテナ (11)

ツール

レベル

説明

list_containers

read

全 LXC コンテナの一覧 (ノードによるフィルタリング可)

get_container_status

read

現在のコンテナステータス

get_container_config

read

コンテナ設定

list_container_snapshots

read

全スナップショットの一覧

start_container

lifecycle

コンテナの起動

stop_container

lifecycle

コンテナの強制停止

shutdown_container

lifecycle

タイムアウト付きの安全なシャットダウン

reboot_container

lifecycle

コンテナの再起動

create_container_snapshot

lifecycle

スナップショットの作成

delete_container_snapshot

all

スナップショットの削除

rollback_container_snapshot

all

スナップショットへのロールバック

ストレージ (2)

ツール

説明

list_storage

使用量を含むストレージプールの一覧 (ノードによるフィルタリング可)

get_storage_content

ストレージプールのコンテンツ (ISO、バックアップ、イメージ、テンプレート)

クラスター (4)

ツール

説明

get_cluster_status

クラスターの健全性、クォーラム、ノードメンバーシップ

get_cluster_resources

全リソース (VM、コンテナ、ストレージ、ノード)

get_cluster_backups

設定済みのバックアップジョブ

get_next_vmid

次に使用可能な VM/コンテナ ID

アーキテクチャ

src/proxmox_mcp/
├── server.py    # FastMCP instance + entry point
├── config.py    # Pydantic Settings (PROXMOX_ prefix)
├── client.py    # Proxmoxer connection via lifespan
└── tools/       # nodes, vms, containers, storage, cluster
  • デフォルトで読み取り専用 — 権限が必要なツールは PROXMOX_RISK_LEVEL で制限

  • 単一接続 — Proxmoxer クライアントは起動時に一度だけ作成され、ライフサイクルを通じて共有

  • 生の JSON 出力 — フォーマットなし。LLM が直接データを消費

開発

スタンドアロン実行 (テスト)

export PROXMOX_HOST=192.168.1.100
export PROXMOX_USER=root@pam
export PROXMOX_TOKEN_NAME=mcp
export PROXMOX_TOKEN_VALUE=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

docker run -i --rm \
  -e PROXMOX_HOST -e PROXMOX_USER \
  -e PROXMOX_TOKEN_NAME -e PROXMOX_TOKEN_VALUE \
  ghcr.io/akmalovaa/proxmox-mcp:latest

Docker なし (UV)

git clone https://github.com/akmalovaa/proxmox-mcp.git && cd proxmox-mcp && uv sync

MCP クライアント設定:

{
  "mcpServers": {
    "proxmox": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/proxmox-mcp", "proxmox-mcp"],
      "env": {
        "PROXMOX_HOST": "192.168.1.100",
        "PROXMOX_TOKEN_NAME": "mcp",
        "PROXMOX_TOKEN_VALUE": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      }
    }
  }
}

ソースからビルド

git clone https://github.com/akmalovaa/proxmox-mcp.git
cd proxmox-mcp
docker build -t proxmox-mcp .

ライセンス

MIT

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
6Releases (12mo)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/akmalovaa/proxmox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server