MCP Virtual Computer について
MCP Virtual Computer は、エージェント向けに永続的な Docker または Fly のコンピューターを提供し、オプションでライブ Xfce デスクトップと Three.js ビューを備えます。コマンド実行、ファイル管理、デスクトップ操作が必要なエージェントや利用者向けです。
主な機能
- 01Docker と Fly のコンピューターバックエンド
- 02ターミナルとファイル操作
- 03ライブ Three.js コンピュータービュー
- 04オプションの Xfce デスクトップ操作
- 05ネットワークアクセス制御
活用シーン
- 01コンピューター環境でのエージェントコマンド実行
- 02ワークスペースファイルの読み取り、書き込み、編集
- 03Xfce デスクトップの確認と操作
MCP 対応
ターミナルやファイルのツール、コンピューター UI、デスクトップ操作を有効にした場合のツールと画面リソースを MCP クライアントに公開します。MCP App からネットワークアクセスとデスクトップ環境も制御できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx mcp-virtual-computerBACKENDComputer provider. Use docker for a local container or fly for a permanent Fly Machine.COMPUTER_IDStable identity of the one persistent computer.DESKTOP_ENVIRONMENTStart the real Xfce desktop instead of the virtual desktop.NETWORK_ACCESSAllow outbound network access from the computer.AUTO_INSTALL_DOCKEROn Windows, install and start Docker Desktop lazily when needed.AUTO_INSTALL_FLYCTLDownload flyctl into the user profile when it is missing.FLY_API_TOKENシークレットOptional Fly API token. A cached flyctl login is also supported.EXPOSE_LIFECYCLE_TOOLSAlso expose runtime status and network/desktop switching tools to the model. The MCP App can always use them.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Virtual Computer
エージェントのための、そしてあなたのための VM です。
- マグカップをクリックすると、仮想デスクトップと実際のデスクトップを切り替えられます
- ネットワークケーブルを抜いて、ネットワークアクセスを遮断できます
- コンピューターの画面を通常の画面として使えます
- ホストブラウザーと Xfce デスクトップの間でテキストをコピー&ペーストできます
- モデルはターミナルを使い、ファイルの作成/読み取り/編集、画面の確認、クリック、入力ができます
- ちょっとした楽しい機能:あなたか LLM がテキストを入力すると、その様子がキーボードに表示されます。どちらかがカーソルを使うと、テーブル上でマウスが動くのが見えます。
- ローカルモードでは Windows に Docker Desktop を、Fly モードでは flyctl を自動的にインストールします
MCP クライアントの例
ローカル Docker(デフォルト)
省略した場合、COMPUTER_ID は agent-workstation がデフォルト値になります。名前を指定したコンピューターを引き続き使用する場合や、別のコンピューターを作成する場合は、明示的に設定してください。新しい Windows PC では、セットアップ時に Docker Desktop をインストールする前に WSL 2 の準備が行われます。表示された場合は、Windows の管理者プロンプトを承認してください。再起動が必要な場合は、Windows を再起動して MCP クライアントを開き直し、再試行してください。Windows 初回使用時の検証を参照してください。
{
"mcpServers": {
"virtual-computer": {
"command": "uvx",
"args": ["mcp-virtual-computer"],
"env": {
"COMPUTER_ID": "agent-workstation",
"DESKTOP_ENVIRONMENT": "true",
"NETWORK_ACCESS": "true",
"AUTO_INSTALL_DOCKER": "true",
"EXPOSE_LIFECYCLE_TOOLS": "false"
}
}
}
}
Fly.io Machine
新しいマシンでは、MCP を一度起動し、エラーに表示された正確な flyctl auth login コマンドを実行してから、MCP クライアントを再起動してください
{
"mcpServers": {
"virtual-computer-fly": {
"command": "uvx",
"args": ["mcp-virtual-computer", "--backend", "fly"],
"env": {
"COMPUTER_ID": "agent-workstation",
"DESKTOP_ENVIRONMENT": "true",
"NETWORK_ACCESS": "true",
"AUTO_INSTALL_FLYCTL": "true",
"EXPOSE_LIFECYCLE_TOOLS": "false"
}
}
}
}
公開する機能
terminal_execute— 設定された Docker コンテナーまたは Fly Machine でコマンドを実行します。read_file—/workspaceからの相対パス、または絶対パスで指定した UTF-8 テキストファイルを読み取ります。write_file— UTF-8 テキストファイルをアトミックに書き込みます。edit_file— 完全に一致するテキストを置き換えます。指定された場合は、すべての一致箇所を置き換えます。computer_ui— Three.js コンピュータービューを開くか、接続します。結果には MCP App のresource_uriと、stdio クライアントでも外部ブラウザーで開ける実際のループバックurl/dashboard_urlの両方が含まれます。
DESKTOP_ENVIRONMENT のデフォルト値は true です。実際のデスクトップが有効な場合、さらに次の機能を公開します。
look_at_screen— 現在の PNG フレームバッファー、AT-SPI スナップショット、またはその両方を返します。click、type、scroll— AT-SPI 要素参照または座標を使って操作します。list_windowsとswitch_window— 実際の Xfce ウィンドウを列挙してアクティブにします。move_window、maximize_window、restore_window、minimize_window、close_window— ID、タイトル、またはクラスで選択したウィンドウを操作します。computer://screen/current.png— 現在のライブフレームバッファーリソースです。computer://screen/accessibility.json— 要素参照、ロール、名前、アクション、フォーカス状態、画面上の境界を含む、Playwright のような AT-SPI ツリーです。
MCP App では常に runtime_status、set_network_access、set_desktop_environment を呼び出せます。EXPOSE_LIFECYCLE_TOOLS=true を設定すると、それらのライフサイクル制御機能もモデルに公開されます。デフォルトではモデルから隠されています。
アーキテクチャ
デモ:FLUJO
デモ:Claude Desktop
デモ:Goose
Fly モードでは、Fly のリモートビルダーで Xfce イメージをバンドルし、永続的な 1 台の Machine としてデプロイします。ルートファイルシステムと /workspace は MCP を再起動しても保持され、Three.js 画面は Fly の HTTPS/WebSocket プロキシ経由で同じ noVNC デスクトップを使用します。
これは、デプロイ済みの Fly Machine で look_at_screen が返す Xfce のフレームバッファです。computer_ui が VNC に接続すると、描画されたコンピューターにも同じライブデスクトップが表示されます。

アプリ名、リージョン、CPU サイズ、メモリサイズ、Docker のインストール、VNC の設定は必要ありません。
docker と fly のバックエンド選択肢を含む、このパッケージの MCP Registry 宣言は server.json にあります。初回起動と認証の手順については、Fly の設定をご覧ください。
初回使用時、virtual-computer は fly/flyctl を探すか、公式の最新リリースを ~/.fly/bin にダウンロードします。キャッシュ済みの fly auth login セッションまたは FLY_API_TOKEN を使用し、利用可能であれば個人用組織を選択して、生成したアプリを作成・記憶します。配置先は Fly に最適な場所を選択させ、共有 CPU 1 基と 1 GB の RAM をデフォルトとして使用します。
避けられないアカウント手順は認証のみです。新しいマシンでは、MCP を一度起動し、エラーに表示された正確な flyctl auth login コマンドを実行してから、MCP クライアントを再起動します。Fly が Xfce をリモートでビルドするため、最初のコンピューター呼び出しには数分かかることがあります。以降の起動では、同じ Machine に接続します。
FLY_ORG、FLY_APP_NAME、FLY_REGION、FLY_API_TOKEN および --fly-* フラグによる任意の上書きも利用できます。AUTO_INSTALL_FLYCTL=false を設定すると、事前にインストールされた CLI が必須になります。コンピューターを削除または工場出荷時の状態にリセットすると、Fly の永続ルートファイルシステムも破棄されます。通常の MCP シャットダウンでは、永続 Machine は稼働したままです。使用料金が発生しないようにするには、不要になった時点で Fly から停止または削除してください。
ライセンスと由来
MIT ライセンスです。このプロジェクトは、Docker と Fly のバックエンドを備えた Kilntainers の永続コンピューター向けフォークです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。