hostdeck について
hostdeckは、ゲームサーバー、Discordボット、アプリ、VPSを管理するFadeHostのホスト型MCPサービスへのローカルブリッジです。上流のツールと結果を転送し、CLIとstdioのMCPサーバーとしても利用できます。
主な機能
- 01ゲームサーバーの電源とコンソール操作
- 02サーバー状態、ログ、使用量の確認
- 03バックアップ、ワールド、サーバーファイルの管理
- 04ホスト型アプリとボットのデプロイ・運用
- 05VPSの電源とアプリ設定の管理
活用シーン
- 01サーバーの状態と直近のコンソール出力の確認
- 02Minecraftワールドのバックアップや整理
- 03リポジトリベースのアプリのデプロイやロールバック
- 04MCPクライアントからゲームサーバーやVPSを操作
MCP 対応
ローカルのstdio MCPサーバーとしてFadeHostの上流ツールを公開し、呼び出しと結果を転送します。CLIにも対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
38掲載時のツール一覧 · 1 週間前に更新
このツールにパラメーターはありません。
詳細
hostdeck
hostdeck は、アカウントのゲームサーバー、Discord ボット、ホスト型アプリ、VPS インスタンスを管理する FadeHost のホスト型 MCP サーバーへの、小規模なローカルブリッジです。1 つの画面から、マシンの起動と停止、コンソールの読み取り、サーバーファイルの編集、バックアップの作成、リポジトリからのアプリのデプロイ、使用状況やファイアウォールの確認ができます。
このブリッジはホスティングデータを保持せず、独自のホスティング処理も実行しません。ライブエンドポイントから取得したままの上流サーバーのツール一覧をローカルで提供し、各ツール呼び出しを上流に転送して、結果を変更せずに返します。
ツール
ゲームサーバー:
list_servers— アカウントが管理できるすべてのゲームサーバー(所有するものとチームで共有されているもの)の ID、ゲーム、ステータス、アドレスを一覧表示します。サーバー ID を確認するには、まずこれを呼び出してください。 引数なし。get_server— ステータス、ソフトウェアとバージョン、RAM/ディスク使用量、主要な設定、ポート、ノードの種類、直近のクラッシュ診断など、1 台のサーバーの詳細を表示します。必須:server。get_console_logs— 最近の未加工のコンソール出力を取得します。 必須:server。任意:lines(50~400、デフォルトは150)。get_live_stats— 稼働中のサーバーのメモリと CPU の使用状況をリアルタイムで取得します。必須:server。get_player_activity— 指定期間の参加・退出・チャットの件数と最近のプレイヤーを取得します。必須:server。 任意:hours(1~168、デフォルトは24)。start_server、stop_server、restart_server— パネルボタンと同じ保護された経路で電源操作を行います。停止と再起動の前にはワールドを保存します。 必須:server。send_console_command— 実行中の Minecraft サーバーで、先頭にスラッシュを付けずにコンソールコマンドを 1 つ実行します。RCON 経由です。必須:server、command。
バックアップとワールド:
list_backups— サーバーのオフサイトバックアップスナップショット(ID、時刻、サイズ)を一覧表示します。必須:server。create_backup— 今すぐオフサイトバックアップを開始します。 必須:server。get_world_activity— Minecraft Java ワールドのチャンク数、ディスク使用量、整理可能な容量を取得します。 必須:server。prune_world— ほとんど訪問されていないチャンクを削除します。デフォルトではドライランです。必須:server。任意:threshold、dry_run。undo_world_prune— 直近の整理前のワールドファイルを復元します。必須:server。
作成:
create_server— 必要に応じてプリセットを使用するか、ゲームごとのオプションを指定してゲームサーバーを作成します。必須:name。任意:game、software、version、region、ram_mb、preset、options。get_creation_options—create_serverが受け付けるプリセットとゲームごとのオプションを取得します。任意:game。create_app— GitHub または GitLab のリポジトリから Discord ボットまたはウェブアプリをデプロイします。必須:name、repo_url。任意:kind、region、tier、runtime、branch、start_command、build_command、build_mode、env、web_address、port。
ファイル:
list_files— サーバーのファイルシステム内のディレクトリを一覧表示します(そのサーバーの範囲内に制限されます)。必須:server。 任意:path。read_file— テキストファイルを読み取ります(上限は96KB、バイナリファイルは拒否されます)。必須:server、path。write_file— テキストファイルを作成または上書きします(上限は192KB、バックアップなしで上書きします)。必須:server、path、content。
ボットとアプリ:
list_bots— アカウント上のホスト済み Discord ボット: ID、名前、ステータス、ランタイム、ソースリポジトリ。引数はありません。get_bot_logs— ホスト済みボットのランタイムログ。 必須:bot。power_bot— ホスト済みボットを起動、停止、再起動します。 必須:bot、action(start、stop、restartのいずれか)。redeploy_app— ホスト済みアプリまたはボットの最新コミットをプルして、再起動します。 必須:app。list_app_deployments— デプロイ履歴:コミット(新しい順)と、現在稼働中のコミット。 必須:app。rollback_app— アプリを以前のコミットに固定するか、再び最新のコミットを追跡します。 必須:app。任意:commit。get_app_usage— アプリのプラン上限、最新値とピーク値、トラフィック。 必須:app。get_app_firewall— アプリに適用されるアウトバウンドポリシーとルール。 必須:app。set_app_firewall— 有料アプリのアウトバウンドリストを置き換えます:open、またはルールを指定したallowlist。 必須:app、policy。任意:rules。get_app_refusals— ファイアウォールが過去1日間に実際に拒否した通信。 必須:app。list_app_schedules— アプリのスケジュール済みコマンド(ID、最終実行時刻、次回実行時刻を含む)。 必須:app。create_app_schedule— アプリに cron でスケジュールされたシェルコマンドを追加します。 必須:app、cron、command。任意:enabled。delete_app_schedule— スケジュール済みコマンドを削除します。 必須:app、schedule_id。move_app_region— 有料アプリを別のリージョンに移動するか、現在の実行リージョンを確認します。 必須:app。任意:region。list_app_variables— アプリの環境変数名(値は返されません)。 必須:app。set_app_variables— 環境変数を追加、変更、削除します。 必須:app。任意:set、unset。
VPS インスタンス:
list_vps— アカウントの管理対象 VPS インスタンス(ID、プラン、仕様、ステータス、リージョン、SSH ホストを含む)。 引数はありません。power_vps— VPS を起動、シャットダウン、再起動します。 必須:vps、action(start、shutdown、rebootのいずれか)。
設定
FADEHOST_MCP_URL(任意)— 上流エンドポイントを上書きします。既定値はhttps://api.fadehost.com/mcpです。 (この上書きフックは、この再構築で独自にラベル付けしたものです。)FADEHOST_API_KEY(任意)— 設定すると、すべての上流リクエストにX-API-Key: <key>ヘッダーが付加されます。ヘッダー名は、上流のレジストリレコードで宣言されているものです。設定されていない場合、このヘッダーは送信されません。 (環境変数名とこの転送も、この再構築で独自にラベル付けしたものです。元のインターフェースはキーなしで取得されました。)
転送の仕組み
最初のツール呼び出し時に、クライアントは上流とのストリーミング可能な HTTP セッションを開きます。まず JSON-RPC のinitializeリクエスト(protocolVersion 2025-03-26、clientInfo name hostdeck)を送り、次にnotifications/initialized通知を送り、その後、呼び出し元の引数を変更せずに含めたtools/callリクエストを送信します。上流がinitializeへの応答でMcp-Session-Idヘッダーを返した場合、その値はセッション中の後続リクエストすべてに付加され、プロセスの存続中は同じセッションが再利用されます。応答は通常の JSON またはサーバー送信イベントで届く場合があり、どちらも読み取られます。
上流からの成功結果は、上流が設定したisErrorフラグも含め、そのまま返されます。失敗(JSON-RPC エラー、2xx 以外のステータス、読み取れない応答、または完了できないリクエスト)は、テキストがhostdeck error:で始まるisError結果として返されます(この表示方法は、この再構築で独自にラベル付けしたものです)。
CLI
各ツールは、JSON 引数文字列を1つ受け取るサブコマンドとしても利用できます(引数を取らないツールでは省略します)。
npx @reneturcios/hostdeck list_servers
npx @reneturcios/hostdeck get_server '{"server":"server_42"}'
npx @reneturcios/hostdeck send_console_command '{"server":"server_42","command":"list"}'
npx @reneturcios/hostdeck --version
終了コード:成功時は0、isError結果の場合は1、使用方法に誤りがある場合は2。
MCP サーバー
npx -y @reneturcios/hostdeck mcp
MCP クライアントの設定:
{
"mcpServers": {
"hostdeck": {
"command": "npx",
"args": ["-y", "@reneturcios/hostdeck", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/hostdeck
docker run --rm ghcr.io/cloudcorprecords/hostdeck --version
コンテナの既定のコマンドはmcpなので、最初の形式は stdio MCP サーバーです。それ以外の引数は通常どおり CLI に渡されます。
開発
npm install
npm run build
npm test
npm run dev
テストスイートは、スタブ化された JSON-RPC アップストリームに対してのみ実行されます。実際のネットワークへの呼び出しはありません。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。