Skip to main content
Glama

drumfire-proxmox-mcp

リモートMCPサーバーで、Claudeがチャット経由でDRUMFIRE Proxmoxクラスタを管理できるようにします。インベントリ、電源制御、ライブ設定変更、VM/コンテナの作成/クローン、スナップショット、ネットワーク/ファイアウォール/クラスタの可視化、ゲスト内でのコマンド実行、そしてQEMU Guest Agentを介してVMのファイルシステムにファイルを直接配置する機能(ここではFirefly IIIからの新しいエクスポートでVM 107上で動く純資産計算機を更新するために使用)を備えています。

これはCloudflare Workerであり、既存のFirefly III MCPサーバーと同じ方法でデプロイされます。ボタンをクリックし、いくつかのシークレットを設定し、カスタムコネクタとしてClaudeに追加するだけです。

これが意図的にやらないこと

VM/コンテナ/ディスク/スナップショットの削除やスナップショットのロールバックツールはありません。「事前に確認する」のではなく、単にコード内に存在しません。したがって、このサーバーを介して誤って実行されることはあり得ません。

とはいえ、以下のセキュリティノートをお読みください。VM/コンテナの作成がスコープ内にあるため、基盤となるProxmoxトークンは技術的にはそれらの削除も可能です(Proxmoxはこれらの権限をまとめて紐付けています)。ここでの保証はソフトウェアによる強制です(そのようなツールは存在せず、Claudeには破壊的な操作の前に必ず確認するよう指示されています)。v1のこのサーバーのような、資格情報レベルの厳格な壁ではありません。以下「セキュリティモデル」を参照してください。

Related MCP server: ProxmoxEmCP

このサーバーが公開するツール

ツール

機能

list_nodes

クラスタノードとそのステータスを一覧表示

list_vms / list_containers

ノード(または全ノード)上のQEMU VM / LXCコンテナを一覧表示

get_guest_status

1つのVM/コンテナのステータス

start_guest / shutdown_guest / stop_guest / reboot_guest

電源管理(shutdown はグレースフル、stop は強制電源オフ)

guest_agent_ping

VM内でQEMU Guest Agentが稼働しているかを確認

write_vm_file

ゲストエージェント経由で任意のVM内の絶対パスにテキストコンテンツを書き込む

update_networth_calculator

write_vm_file の便利なラッパーで、純資産計算機VMを特にターゲットにする

get_cluster_status

クラスタ/ノードのヘルスとクォーラム

get_node_network

ノードのブリッジ/VLAN/ボンド

get_firewall_rules

データセンター/ノード/ゲストレベルの読み取り専用ファイアウォールルール

get_vm_network_info

VMの実際のライブIP/インターフェース(ゲスト内部から報告)

run_guest_command / get_guest_command_result

ゲストエージェント経由でVM内でコマンドを実行(例: pingipconfig)— シェルアクセスに相当します。ツール自体の説明にある注意事項を参照してください

get_next_vmid

次に空いているVM/コンテナID

update_vm_config / update_container_config

CPU/メモリ/ネットワーク/ディスク接続などの設定を変更

resize_vm_disk

ディスクを拡張(ProxmoxはこのAPIでの拡張のみ許可しており、縮小は不可)

create_vm / create_container

新しいVM / LXCコンテナを作成

clone_vm

既存のVMまたはテンプレートをクローン

create_snapshot / list_snapshots

スナップショットを作成・一覧表示(ロールバック/削除ツールはなし)

セキュリティモデル

  • 電源/ステータス/設定/作成/クローン/スナップショット作成ツール: このスコープの指定どおり、事前に確認せずに実行してよいものとみなされます。ここにあるものは本質的に破壊的ではありません。

  • run_guest_command: ゲスト内で指示された内容を実行します。SSH/RDPアクセスに相当します。診断や通常の変更には問題ありませんが、ゲスト内で破壊的または不可逆的に見える操作を行う前には、Claudeは一旦停止して確認するよう指示されています。

  • このサーバーには、VM、コンテナ、ディスク、スナップショットを削除またはロールバックする機能は一切ありません。 これが実際の防波堤であり、Proxmoxトークンの権限ではありません。下記のロールを参照してください。VM.Allocate は付与されています(作成に必要であり、Proxmoxは削除にもこれを使用します。権限レベルでこれらを分割する方法はありません)。

1. スコープ付きProxmox APIトークンを作成

root/adminトークンを再利用しないでください。Proxmox Web UIで:

  1. データセンター → 権限 → ロール → 作成 名前: ClaudeHomelabOps。特権: VM.Audit, VM.Monitor, VM.PowerMgmt, Sys.Audit, VM.Allocate, VM.Clone, VM.Snapshot, VM.Config.CPU, VM.Config.Memory, VM.Config.Disk, VM.Config.Network, VM.Config.Options, VM.Config.HWType, VM.Config.CDROM, VM.Config.Cloudinit

    意図的にVM.Snapshot.Rollback(ロールバックは現在のディスク状態を破棄します。真に破壊的です)とVM.Backup/VM.Migrate/VM.Console(このサーバーが行うどの処理にも不要)を除外しています。前述のとおり、VM.Allocatecreate_vm/create_container/clone_vmに必要であり、Proxmoxはゲストの削除にもこれを使用します。それ以上細かい分割はできないため、「削除できない」という保証は、トークンの権限ではなく、このサーバーに削除ツールが単に存在しないことによるものです。

    日常的にはより厳格な資格情報レベルの保証を維持し、作成権限を一時的にだけ付与したい場合は、代わりに2つ目のより制限されたトークン(この同じロールからVM.Allocate/VM.Config.*を除いたもの)を作成し、実際に作成/再設定を行いたいときにこのWorkerが使用するシークレットを切り替えることができます。先ほどのトレードオフの質問では単純化のため1つのトークンを既定としましたが、ここでそれが必須というわけではありません。

  2. データセンター → 権限 → ユーザー → 追加で専用ユーザーを追加します。例: claude-agent@pve(パスワードは不要です。APIトークンでのみ認証されます)。

  3. データセンター → 権限 → 追加 → パス /、ユーザー claude-agent@pve、ロール ClaudeHomelabOps

  4. データセンター → 権限 → APIトークン → 追加 → ユーザー claude-agent@pve、トークンID例 homelab-mcp。「特権分離」にチェックを入れたまま、トークン自体に同じ /ClaudeHomelabOps ACLを付与します。トークンIDclaude-agent@pve!homelab-mcp)とシークレット(一度だけ表示)をコピーしてください。この後、両方必要になります。

2. 計算機VMのゲストエージェントが有効になっていることを確認

write_vm_file / update_networth_calculatorツールでは、VM 107(VM-OnPremTest)内でQEMU Guest Agentが稼働している必要があります。

  1. ProxmoxのVMのオプションタブで、「QEMU Guest Agent」が有効になっていることを確認します。

  2. Windows VM内で、まだインストールされていない場合はゲストエージェントサービスをインストールし(virtio-win ISOにqemu-ga-x86_64.msiとして同梱されています)、Windowsサービス「QEMU Guest Agent」が実行中であることを確認します。

  3. アプリのデータフォルダがどのWindowsユーザーアカウントの下にあるかを確認します。ゲストエージェントサービスはSYSTEMとして実行されるため、ファイル書き込みには完全な絶対パス(例: C:\Users\<username>\Documents\net-worth\data.json)が必要で、相対パスは使えません。

3. デプロイ

Deploy to Cloudflare

(まずこのリポジトリをGitHubにプッシュし、上のREPLACE_WITH_THIS_REPO_URLhttps://github.com/<you>/<repo>に置き換えてください。リポジトリが存在する前にGitHubはボタンに自身へのリンクを張らせてくれません。)

ボタンをクリックすると、リポジトリがCloudflare Workers Buildsにフォーク/接続され、デプロイが実行されます。ただし、まだ使用できません。手順4を参照してください。

手動デプロイ(ボタンの代替)

npm install
npx wrangler secret put PROXMOX_TOKEN_ID
npx wrangler secret put PROXMOX_TOKEN_SECRET
npx wrangler secret put MCP_BEARER_TOKEN   # any long random string you generate
npx wrangler deploy

4. デプロイ後にシークレットを設定

ボタンとCLIのどちらを使った場合でも、3つのシークレットが必要です。これらは意図的にこのリポジトリにはありませんwrangler.jsoncにもありません。これは公開しても問題ありません)。

シークレット

PROXMOX_TOKEN_ID

claude-agent@pve!homelab-mcp(手順1から)

PROXMOX_TOKEN_SECRET

トークンのシークレット(手順1から)

MCP_BEARER_TOKEN

自分で生成した任意の長いランダム文字列。例: openssl rand -hex 32

これらは、CloudflareダッシュボードのWorker → 設定 → 変数とシークレット → 追加 → 暗号化で設定するか、npx wrangler secret put <NAME>で設定します。

また、wrangler.jsonc内の平文(非シークレット)変数NETWORTH_VM_PATHも再確認してください。初期状態ではプレースホルダー(C:\Users\CHANGE_ME\Documents\net-worth\data.json)が入っており、手順2の実際のWindowsユーザー名に置き換える必要があります。これはCloudflareダッシュボードの同じ変数とシークレットページで(シークレットではなく平文変数として)編集するか、wrangler.jsoncを編集して再デプロイしてください。

5. カスタムコネクタとしてClaudeに追加

Claudeのコネクタ設定で、次の場所を指すカスタムコネクタを追加します:

https://<your-worker-subdomain>.workers.dev/mcp

このWorkerは、何かを行う前にすべてのリクエストでAuthorization: Bearer <MCP_BEARER_TOKEN>を確認します。これがない場合、すべてのツール呼び出しは401になります。Claudeのコネクタ設定でカスタムヘッダー/APIキーを追加できる場合は、そのヘッダーをそこに設定してください。できない場合の選択肢は次の2つです:

  • 代わりに、Worker のルートの前に Cloudflare Access ポリシーを置く(推奨 — クライアントがカスタムヘッダーを送信できない場合に個人用 MCP エンドポイントをロックダウンする標準的な方法です)、または

  • セキュリティの低いフォールバックとして、src/index.ts のベアラートークンチェック(fetch()、関数の先頭)を削除し、Worker の URL 自体が推測不能であることに依存する。Proxmox に触れる可能性のあるものには推奨されない。

6. 試してみる

接続後、Claude のチャットで 「drumfire03 上の VM を一覧表示して」 または 「VM 107 のステータスは?」 と入力すると、実際のデータが返るはずです。純資産ワークフローの場合、Claude は Firefly III(既に接続済み)からデータを取得し、計算機が期待する JSON を構築して、その JSON を文字列として update_networth_calculator に渡して呼び出します。

それが機能したら、新しいツールも試してみてください — 「クラスターの健全性を確認して」「VM 107 の現在の実際の IP は?」「VM-OnPremTest をテストコピーにクローンして」「その VM を 4 コアに増やして」

権限に関する注意: ファイアウォールルールおよび一部のネットワーク読み取りエンドポイントに対する Proxmox の正確な特権要件は、バージョンによって多少異なります。上記のロールはベストエフォートのマッピングであり、お使いの特定の Proxmox バージョンに対してテストされたものではありません。ツール呼び出しが 403 で返ってきた場合、エラーメッセージには Proxmox の実際の応答が含まれます。修正はほとんどの場合、ClaudeHomelabOps に特権を 1 つ追加することです(通常は Sys.Audit がサブパスだけでなく / に適用されていることを再確認するだけです)。

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.

  • LLM chat, text summarization and AI image generation

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

View all MCP Connectors

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/Drumfire01/drumfire-proxmox-mcp'

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