Kvm Pilot
What it does
Smart hands for your AI agents - write-capable KVM+BMC+SSH MCP server: gated, verified, audited.
- Connects パソコンで動く
- Account or key Needs KVM_PILOT_PASSWD
- Category 開発者ツール
インストール
使っているAIアプリを選んで、設定をコピーしてください。
チェック 3/3 合格 · あなたのパソコンで動きます · ✓ コマンド確認済み 2026年11月14日
まず:どの AI を使っていますか?
使っているアプリを選ぶと、下に手順が表示されます。
Claude につなげますが、先に準備が必要です
Kvm Pilot のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
Kvm Pilot に登録してキーを作る
提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。
キーの取り方は下の提供元 README にあります
パソコン版 Claude アプリの設定ファイルを開く
SettingsDeveloperEdit Config
この設定を貼り付けて保存
{ "mcpServers": { "kvm-pilot": { "command": "uvx", "args": [ "kvm-pilot" ], "env": { "KVM_PILOT_PASSWD": "your-value" } } } }キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Claude を終了してもう一度開く
試してみる
Kvm Pilot を使って、私に何ができるか教えて、1 つやってみせて✓ Claude が Kvm Pilot を使っていると言うか、回答に Kvm Pilot のツール名が出れば接続成功です
追加の設定 7 項目(入力しなくても使えます)
上のコマンドはこれらがなくても動きます。変えたいときだけ作者の説明に沿って追加してください。
KVM_PILOT_PROFILE/.config/kvm-pilot/config.toml 内のプロファイル名。対象の KVM/BMC を指定します。英語の原文を見る
Profile name from ~/.config/kvm-pilot/config.toml naming the KVM/BMC to targetKVM_PILOT_MCP_READ_ONLY最小権限の方針: 読み取り専用ツールのみ登録され、効果ゲートは強制的に閉じられます。初回利用時は 1 に設定することを推奨します英語の原文を見る
Least-privilege posture: only read-only tools are registered; effect gates force-closed. Recommended for first contact (set to 1)KVM_PILOT_MCP_DRY_RUNリハーサルモード:破壊的な呼び出しは送信されずログに記録されます(1 に設定)英語の原文を見る
Rehearsal posture: destructive calls are logged, never sent (set to 1)KVM_PILOT_MCP_ALLOW_POWER管理対象ホストの電源制御を許可する運用者によるオプトイン設定(効果ごとのゲート。_ALLOW_HID、_ALLOW_MEDIA、_ALLOW_SSH、_ALLOW_APPLIANCE、_ALLOW_EXTERNAL_WRITE も参照)英語の原文を見る
Operator opt-in enabling power control of the managed host (per-effect gate; see also _ALLOW_HID, _ALLOW_MEDIA, _ALLOW_SSH, _ALLOW_APPLIANCE, _ALLOW_EXTERNAL_WRITE)KVM_PILOT_HOST設定ファイルのプロファイルを使用しない場合のデバイスアドレス(KVM/BMC)英語の原文を見る
Device address (KVM/BMC) when not using a config-file profileKVM_PILOT_USER設定ファイルのプロファイルを使用しない場合のデバイスのユーザー名英語の原文を見る
Device username when not using a config-file profileANTHROPIC_API_KEY任意: classify_screen / wait_for_state 用にサーバー側のビジョン機能を有効にします。設定しない場合、分類は呼び出し元のエージェントに委ねられます。英語の原文を見る
Optional: enables server-side vision for classify_screen / wait_for_state; without it, classification falls back to the calling agent
説明は自動翻訳です。変数名は原文のままです。迷ったら原文を確認してください。
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
ChatGPT はまだ Kvm Pilot につなげません
Kvm Pilot はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません
代わりにできること
A · Kvm Pilot につなげるアプリを使う
- Kvm Pilot のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
- Kvm Pilot のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
- Kvm Pilot のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
- Kvm Pilot のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
B · 開発者ツール の中で ChatGPT につなげる別のサーバー
同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました
- Sentry✓ ChatGPT
- Compiler Explorer✓ ChatGPT
- GitDiagram✓ ChatGPT
Claude Code につなげますが、先に準備が必要です
Kvm Pilot のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
Kvm Pilot に登録してキーを作る
提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。
キーの取り方は下の提供元 README にあります
ターミナルを開く
Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く
このコマンドを貼り付けて Enter
claude mcp add --scope user kvm-pilot --env KVM_PILOT_PASSWD=your-value -- uvx kvm-pilotEnter の前に「your-value」を自分のキーに書き換えてください
キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Claude Code で /mcp と入力
Kvm Pilot が一覧にあり、接続済みと表示されれば OK です
試してみる
Kvm Pilot を使って、私に何ができるか教えて、1 つやってみせて✓ Claude Code が Kvm Pilot を使っていると言うか、回答に Kvm Pilot のツール名が出れば接続成功です
追加の設定 7 項目(入力しなくても使えます)
上のコマンドはこれらがなくても動きます。変えたいときだけ作者の説明に沿って追加してください。
KVM_PILOT_PROFILE/.config/kvm-pilot/config.toml 内のプロファイル名。対象の KVM/BMC を指定します。英語の原文を見る
Profile name from ~/.config/kvm-pilot/config.toml naming the KVM/BMC to targetKVM_PILOT_MCP_READ_ONLY最小権限の方針: 読み取り専用ツールのみ登録され、効果ゲートは強制的に閉じられます。初回利用時は 1 に設定することを推奨します英語の原文を見る
Least-privilege posture: only read-only tools are registered; effect gates force-closed. Recommended for first contact (set to 1)KVM_PILOT_MCP_DRY_RUNリハーサルモード:破壊的な呼び出しは送信されずログに記録されます(1 に設定)英語の原文を見る
Rehearsal posture: destructive calls are logged, never sent (set to 1)KVM_PILOT_MCP_ALLOW_POWER管理対象ホストの電源制御を許可する運用者によるオプトイン設定(効果ごとのゲート。_ALLOW_HID、_ALLOW_MEDIA、_ALLOW_SSH、_ALLOW_APPLIANCE、_ALLOW_EXTERNAL_WRITE も参照)英語の原文を見る
Operator opt-in enabling power control of the managed host (per-effect gate; see also _ALLOW_HID, _ALLOW_MEDIA, _ALLOW_SSH, _ALLOW_APPLIANCE, _ALLOW_EXTERNAL_WRITE)KVM_PILOT_HOST設定ファイルのプロファイルを使用しない場合のデバイスアドレス(KVM/BMC)英語の原文を見る
Device address (KVM/BMC) when not using a config-file profileKVM_PILOT_USER設定ファイルのプロファイルを使用しない場合のデバイスのユーザー名英語の原文を見る
Device username when not using a config-file profileANTHROPIC_API_KEY任意: classify_screen / wait_for_state 用にサーバー側のビジョン機能を有効にします。設定しない場合、分類は呼び出し元のエージェントに委ねられます。英語の原文を見る
Optional: enables server-side vision for classify_screen / wait_for_state; without it, classification falls back to the calling agent
説明は自動翻訳です。変数名は原文のままです。迷ったら原文を確認してください。
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Cursor につなげますが、先に準備が必要です
Kvm Pilot のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
Kvm Pilot に登録してキーを作る
提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。
キーの取り方は下の提供元 README にあります
キーを入力
Kvm Pilot の設定で KVM_PILOT_PASSWD が空です。自分のキーを入れて保存します
キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Cursor の AI チャットを Agent モードで開く
試してみる
Kvm Pilot を使って、私に何ができるか教えて、1 つやってみせて✓ Cursor が Kvm Pilot を使っていると言うか、回答に Kvm Pilot のツール名が出れば接続成功です
追加の設定 7 項目(入力しなくても使えます)
上のコマンドはこれらがなくても動きます。変えたいときだけ作者の説明に沿って追加してください。
KVM_PILOT_PROFILE/.config/kvm-pilot/config.toml 内のプロファイル名。対象の KVM/BMC を指定します。英語の原文を見る
Profile name from ~/.config/kvm-pilot/config.toml naming the KVM/BMC to targetKVM_PILOT_MCP_READ_ONLY最小権限の方針: 読み取り専用ツールのみ登録され、効果ゲートは強制的に閉じられます。初回利用時は 1 に設定することを推奨します英語の原文を見る
Least-privilege posture: only read-only tools are registered; effect gates force-closed. Recommended for first contact (set to 1)KVM_PILOT_MCP_DRY_RUNリハーサルモード:破壊的な呼び出しは送信されずログに記録されます(1 に設定)英語の原文を見る
Rehearsal posture: destructive calls are logged, never sent (set to 1)KVM_PILOT_MCP_ALLOW_POWER管理対象ホストの電源制御を許可する運用者によるオプトイン設定(効果ごとのゲート。_ALLOW_HID、_ALLOW_MEDIA、_ALLOW_SSH、_ALLOW_APPLIANCE、_ALLOW_EXTERNAL_WRITE も参照)英語の原文を見る
Operator opt-in enabling power control of the managed host (per-effect gate; see also _ALLOW_HID, _ALLOW_MEDIA, _ALLOW_SSH, _ALLOW_APPLIANCE, _ALLOW_EXTERNAL_WRITE)KVM_PILOT_HOST設定ファイルのプロファイルを使用しない場合のデバイスアドレス(KVM/BMC)英語の原文を見る
Device address (KVM/BMC) when not using a config-file profileKVM_PILOT_USER設定ファイルのプロファイルを使用しない場合のデバイスのユーザー名英語の原文を見る
Device username when not using a config-file profileANTHROPIC_API_KEY任意: classify_screen / wait_for_state 用にサーバー側のビジョン機能を有効にします。設定しない場合、分類は呼び出し元のエージェントに委ねられます。英語の原文を見る
Optional: enables server-side vision for classify_screen / wait_for_state; without it, classification falls back to the calling agent
説明は自動翻訳です。変数名は原文のままです。迷ったら原文を確認してください。
メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
VS Code につなげますが、先に準備が必要です
Kvm Pilot のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
Kvm Pilot に登録してキーを作る
提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。
キーの取り方は下の提供元 README にあります
キーを入力
Kvm Pilot の設定で KVM_PILOT_PASSWD が空です。自分のキーを入れて保存します
キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
VS Code の AI チャットを Agent モードで開く
試してみる
Kvm Pilot を使って、私に何ができるか教えて、1 つやってみせて✓ VS Code が Kvm Pilot を使っていると言うか、回答に Kvm Pilot のツール名が出れば接続成功です
追加の設定 7 項目(入力しなくても使えます)
上のコマンドはこれらがなくても動きます。変えたいときだけ作者の説明に沿って追加してください。
KVM_PILOT_PROFILE/.config/kvm-pilot/config.toml 内のプロファイル名。対象の KVM/BMC を指定します。英語の原文を見る
Profile name from ~/.config/kvm-pilot/config.toml naming the KVM/BMC to targetKVM_PILOT_MCP_READ_ONLY最小権限の方針: 読み取り専用ツールのみ登録され、効果ゲートは強制的に閉じられます。初回利用時は 1 に設定することを推奨します英語の原文を見る
Least-privilege posture: only read-only tools are registered; effect gates force-closed. Recommended for first contact (set to 1)KVM_PILOT_MCP_DRY_RUNリハーサルモード:破壊的な呼び出しは送信されずログに記録されます(1 に設定)英語の原文を見る
Rehearsal posture: destructive calls are logged, never sent (set to 1)KVM_PILOT_MCP_ALLOW_POWER管理対象ホストの電源制御を許可する運用者によるオプトイン設定(効果ごとのゲート。_ALLOW_HID、_ALLOW_MEDIA、_ALLOW_SSH、_ALLOW_APPLIANCE、_ALLOW_EXTERNAL_WRITE も参照)英語の原文を見る
Operator opt-in enabling power control of the managed host (per-effect gate; see also _ALLOW_HID, _ALLOW_MEDIA, _ALLOW_SSH, _ALLOW_APPLIANCE, _ALLOW_EXTERNAL_WRITE)KVM_PILOT_HOST設定ファイルのプロファイルを使用しない場合のデバイスアドレス(KVM/BMC)英語の原文を見る
Device address (KVM/BMC) when not using a config-file profileKVM_PILOT_USER設定ファイルのプロファイルを使用しない場合のデバイスのユーザー名英語の原文を見る
Device username when not using a config-file profileANTHROPIC_API_KEY任意: classify_screen / wait_for_state 用にサーバー側のビジョン機能を有効にします。設定しない場合、分類は呼び出し元のエージェントに委ねられます。英語の原文を見る
Optional: enables server-side vision for classify_screen / wait_for_state; without it, classification falls back to the calling agent
説明は自動翻訳です。変数名は原文のままです。迷ったら原文を確認してください。
メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください
JSON 設定は下の「開発者向け」にあります
開発者向け:ターミナルのコマンドと JSON 設定
パソコンにインストール
Claude Code
claude mcp add --scope user kvm-pilot --env KVM_PILOT_PASSWD=your-value -- uvx kvm-pilotClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"kvm-pilot": {
"command": "uvx",
"args": [
"kvm-pilot"
],
"env": {
"KVM_PILOT_PASSWD": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"kvm-pilot": {
"command": "uvx",
"args": [
"kvm-pilot"
],
"env": {
"KVM_PILOT_PASSWD": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"kvm-pilot": {
"type": "stdio",
"command": "uvx",
"args": [
"kvm-pilot"
],
"env": {
"KVM_PILOT_PASSWD": "your-value"
}
}
}
}自分で入力する値
KVM_PILOT_PROFILEenv/.config/kvm-pilot/config.toml 内のプロファイル名。対象の KVM/BMC を指定します。英語の原文を見る
Profile name from ~/.config/kvm-pilot/config.toml naming the KVM/BMC to targetKVM_PILOT_MCP_READ_ONLYenv最小権限の方針: 読み取り専用ツールのみ登録され、効果ゲートは強制的に閉じられます。初回利用時は 1 に設定することを推奨します英語の原文を見る
Least-privilege posture: only read-only tools are registered; effect gates force-closed. Recommended for first contact (set to 1)KVM_PILOT_MCP_DRY_RUNenvリハーサルモード:破壊的な呼び出しは送信されずログに記録されます(1 に設定)英語の原文を見る
Rehearsal posture: destructive calls are logged, never sent (set to 1)KVM_PILOT_MCP_ALLOW_POWERenv管理対象ホストの電源制御を許可する運用者によるオプトイン設定(効果ごとのゲート。_ALLOW_HID、_ALLOW_MEDIA、_ALLOW_SSH、_ALLOW_APPLIANCE、_ALLOW_EXTERNAL_WRITE も参照)英語の原文を見る
Operator opt-in enabling power control of the managed host (per-effect gate; see also _ALLOW_HID, _ALLOW_MEDIA, _ALLOW_SSH, _ALLOW_APPLIANCE, _ALLOW_EXTERNAL_WRITE)KVM_PILOT_HOSTenv設定ファイルのプロファイルを使用しない場合のデバイスアドレス(KVM/BMC)英語の原文を見る
Device address (KVM/BMC) when not using a config-file profileKVM_PILOT_USERenv設定ファイルのプロファイルを使用しない場合のデバイスのユーザー名英語の原文を見る
Device username when not using a config-file profileKVM_PILOT_PASSWD秘密 必須 env設定ファイルのプロファイルを使用しない場合のデバイスのパスワード(KVM_PILOT_HOST / KVM_PILOT_USER と併用)英語の原文を見る
Device password when not using a config-file profile (KVM_PILOT_HOST / KVM_PILOT_USER accompany it)ANTHROPIC_API_KEY秘密 env任意: classify_screen / wait_for_state 用にサーバー側のビジョン機能を有効にします。設定しない場合、分類は呼び出し元のエージェントに委ねられます。英語の原文を見る
Optional: enables server-side vision for classify_screen / wait_for_state; without it, classification falls back to the calling agent
説明は自動翻訳です。変数名は原文のままです。迷ったら原文を確認してください。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
ひと目でわかる
使えるアプリ
このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月14日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント DustinTrap で確認済みです
- ✓ 合格
今もメンテナンスされている
コードの最終更新:一昨日
- ✓ 合格
ライセンスがある
Apache-2.0を使用
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
話し合い
質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。
ユーザーレビュー
まだレビューはありません
開発者ツールのほかのサーバーとの比較i
- このカテゴリのほかの5896件のうち92%よりスターが多い
- このカテゴリのほかの5896件のうち57%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの5896件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
Kvm Pilotは安全ですか?
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
入力が必要なもの:KVM_PILOT_PASSWD
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は一昨日、最新バージョン(1.0.1)がレジストリに届いたのは22 日前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
代わりに使えるものは?
同じカテゴリには:REA, GitHub, Serena MCP: the IDE for your agent
同じカテゴリのほかの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Serena MCP: the IDE for your agent
A powerful toolkit for coding, providing semantic retrieval and editing capabilities.
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
kvm-pilot
Smart hands for your AI agents. A write-capable, multi-plane (KVM + BMC + SSH) MCP server for controlling physical machines — gated, verified, audited.
kvm-pilot lets an agent drive a headless box through POST, firmware, the bootloader, and an OS install with no agent on the target: it works at the pixel level through an IP-KVM (PiKVM, the GL.iNet GLKVM fork GL-RM1 / GL-RM1PE, BliKVM), at the structured-state level through a BMC (Redfish on iDRAC/iLO/OpenBMC, IPMI on BMCs that predate Redfish), at the firmware level through Intel AMT/vPro (a BIOS/POST/GRUB screenshot + power + SOL on a business laptop an HDMI-capture KVM can't see boot on), and over SSH once an OS is up. A pluggable vision subsystem reads a KVM screenshot and tells you what boot phase the machine is in — bios_menu, grub_menu, installer_progress, login_prompt, crash_screen, and so on — and a safety layer gates every destructive operation behind operator opt-ins and per-call approvals.
Vision runs on Claude or any local OpenAI-compatible VLM (LM Studio, Ollama, vLLM, llama.cpp). Point it at a model on your own GPU and the screenshots never leave your network and cost nothing per frame.
How it works
kvm-pilot runs a see → decide → act loop, and the screen is its only sensor: it pulls a screenshot from the KVM, a vision model classifies the boot phase, and kvm-pilot acts back through the KVM's keyboard and power. Because it works at the pixel level, there is no agent on the target — the same loop drives POST, firmware, the bootloader, and an OS install.
A real, unedited run against a GLKVM on the home fleet — an honest preflight, a headless snapshot (watch it wake the on-demand encoder), a gated dry-run power-cycle, and the boot console the agent actually saw:
Quickstart
One install gives you the whole product — the `kvm-pilot` CLI, the `kvm-pilot-mcp` MCP server, and the bundled Claude skill — nothing to clone.
pip install kvm-pilot # CLI + skill + MCP server + WebSocket events
pip install "kvm-pilot[totp]" # + 2FA / TOTP support (pyotp) kvm-pilot install-skill # optional: put the bundled skill where Claude Code loads it
Driving a KVM from an AI agent (MCP)
claude mcp add kvm-pilot -s user \
-e KVM_PILOT_PROFILE=mykvm -e KVM_PILOT_MCP_READ_ONLY=1 -- \ kvm-pilot-mcp
KVM_PILOT_MCP_READ_ONLY=1 is the recommended first rung of the trust ladder — the agent can see everything and touch nothing until your hardware is verified. The Getting started guide covers credentials, Claude Desktop JSON config, sample prompts, and climbing the ladder. The server is published to the official MCP registry as `io.github.DustinTrap/kvm-pilot`, so registry-aware hosts can discover and install it by name. Agents: the repo root carries an llms.txt doc map.
Scripting from Python
from kvm_pilot import KVMClient
from kvm_pilot.vision import ScreenAnalyzer, make_backend
kvm = KVMClient("192.168.8.1", "admin", "secret")
Classify the current screen with Claude (model auto-resolved at runtime)
analyzer = ScreenAnalyzer(kvm, make_backend("anthropic")) print(analyzer.classify().phase)
Or run entirely on a local VLM — nothing leaves your network
local = make_backend("local", base_url="http://127.0.0.1:1234/v1", model="qwen2.5-vl-7b") analyzer = ScreenAnalyzer(kvm, local)
Block until the box reaches the GRUB menu, then pick the first entry
analyzer.wait_for_state("grub_menu", timeout=120) kvm.press_key("Enter")
For the latest unreleased tree:
pip install "kvm-pilot[totp] @ git+https://github.com/DustinTrap/kvm-pilot"
CLI
kvm-pilot info --host 192.168.8.1 --user admin --ask-passwd # prompt (no echo)
kvm-pilot capabilities --profile homelab # what this driver supports kvm-pilot snapshot screen.jpg --profile homelab kvm-pilot --timeout 60 power-cycle --profile homelab --dry-run # log, don't send kvm-pilot eject --profile homelab # detach virtual media kvm-pilot events --profile homelab --count 5 # stream device events kvm-pilot watch grub_menu --profile homelab \ --backend local --vision-url http://127.0.0.1:1234/v1 --vision-model qwen2.5-vl-7b
The CLI prompts for confirmation before any destructive action (power, virtual media — including uploads — keyboard/mouse injection, GPIO). Use --yes to skip prompts in automation, or --dry-run to log intended actions without sending them — dry-run short-circuits *before* the prompt, so it never blocks waiting for input. --timeout (HTTP per-request timeout) is a global flag and goes *before* the subcommand; watch keeps its own --timeout for the vision wait deadline.
Profiles like homelab live in ~/.config/kvm-pilot/config.toml. See docs/cli.md for the full command table (every subcommand, the capability it needs, and its gating), and docs/configuration.md for the config-file format, every KVM_PILOT_* environment variable, and the precedence between flags, env, and profiles.
GLKVM setup note: on GL.iNet firmware the PiKVM REST API is **disabled by
default** and a firmware upgrade can re-disable it — enable it first, per
The tool surface, by plane
The same capability protocols span three actuation planes, so one agent workflow can mix pixels, structured BMC state, and shell access — with every destructive effect gated per class:
| Plane | Read | Act (operator-gated) |
|---|---|---|
| KVM — pixels & HID (PiKVM · GLKVM · BliKVM) | snapshot · classify_screen · wait_for_state · power_state · logs · list_virtual_media | power · type_text / press_key / send_shortcut / mouse · calibrate_mouse · mount_iso / eject |
| BMC — structured state (Redfish · IPMI) | info · boot_options · logs (SEL) · sensors (CLI) | power · set_boot_device · SOL console (CLI console) |
| Firmware — Intel AMT/vPro (spans both planes) | info · snapshot (firmware BIOS/POST/GRUB) · boot_options · power_state | power · set_boot_device · type/mouse · SOL (console) · amt_enable (open SOL/KVM listeners) |
| SSH — in-band & appliance | ssh_reachable · appliance_status · access_paths | ssh_exec · host_exec (ssh/winrm auto-picked) · wake (WoL) · appliance_reboot |
| Meta — evidence & intake | capabilities · support_matrix · healthcheck | file_firmware_report |
A machine with no KVM and no BMC at all is itself a first-class target: driver = "ssh" plus `ssh_host` (the machine's own address, #248) stands kvm-pilot on the recovery ladder's in-band rung — every device capability honestly absent, and the healthcheck saying plainly that there is no out-of-band recovery path there.
The canonical per-tool reference — annotations, effect gates, approval lifecycle — is the MCP server README; the CLI covers the full surface in docs/cli.md.
Status & maturity
Status: 1.0, general availability — on the strength of the run ledger,
not beyond it. Three device types have run live (GL-RM1PE, Dell R710 over
iDRAC6/IPMI, Dell Latitude 5411 over Intel AMT); three of the seven device
drivers (
redfish,pikvm,blikvm) have only ever run against emulators.
See the
for what has actually been exercised — and please add to it. (The exact version lives in the
The core paths have graduated
from mocked-only to live-verified: a fleet of GL-RM1PE units has exercised
snapshot/healthcheck/logs/power_state/virtual_media/infoacross
two firmware lines — on V1.9.1 the run ledger that ships in the wheel puts
info/logs/healthcheck/power_stateat ga,snapshotat rc, and
virtual_mediaat beta — derived from real runs, never hand-edited — and a Dell iDRAC6 has exercised the IPMI driver live end-to-end
(power, boot-device, sensors, event log, SOL serial console). The paths that
can hurt are hardened: transports never re-fire a destructive request, MCP
approvals are signed single-use receipts with an audit trail, and every
destructive effect — power, HID, media, boot-config, appliance, SSH,
external writes — has its own operator opt-in gate. Recent betas added
remote boot-device control (Redfish, IPMI, and in-band
efibootmgr),
Wake-on-LAN, an IPMI driver for BMCs that predate Redfish, a serial (SOL)
console, mouse auto-calibration, and headless native-resolution GLKVM
snapshots;
kvm-pilot test-reportturns contributing evidence into one
command, and the firmware registry feeds itself (
firmware-checkauto-files
registry updates).
Now we need your hardware. PiKVM, BliKVM, other GLKVM models, and
Redfish BMCs (iDRAC/iLO/OpenBMC) are the combos the matrix needs most —
success *or* failure, a
takes two minutes and the hourly ingest does the rest. Anything the
doesn't show as exercised is still unverified: the 1.x line keeps the public
API stable, but a rating only moves when a live run moves it; note the remote
firmware-flash no-op on GL-RM1PE
([#94](https://github.com/DustinTrap/kvm-pilot/issue