mcpField
R
roblox-studio-mcp

roblox-studio-mcp

github.com/flatbedj開発049 回インストール6 週間前に更新
リポジトリ

roblox-studio-mcp について

roblox-studio-mcpは、Roblox StudioのMCPツールでLuauを実行し、データモデルを調査・変更し、操作をテストしてアセットを作成・追加するためのスキル資料です。Studioのライブセッションで開発するRoblox開発者向けに、接続時の問題や各ツールの制約も説明します。

主な機能

  1. 01StudioでLuauを実行
  2. 02データモデルの調査と検索
  3. 03スクリプトの読み取りと検索
  4. 04マウスとキーボード入力のシミュレーション
  5. 05Studioのスクリーンショット取得
  6. 06アセットの生成と挿入

活用シーン

  1. 01ライブのプレースでLuauをテスト
  2. 02Rojoによるスクリプト同期を確認
  3. 03ゲームオブジェクトと実行時出力を調査
  4. 04Creator Storeまたは生成アセットを追加

MCP 対応

Roblox StudioのMCPサーバーツールと接続設定を解説します。StudioがMCPハブに接続し、MCPクライアントにツールを公開します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/flatbedj/roblox-skills --skill roblox-studio-mcp

インストール後、Claude Code で/roblox-studio-mcpを入力して読み込まれたか確認します。

詳細

Roblox Studio MCP:Studio のリモート操作

Studio MCP を使うと、実行中の Studio 内でコードを実行したり、データモデルを調査・変更したり、スクリーンショットを撮影したり、コンテンツを生成したりできます。これはツールボックスのリファレンスです。ディスク→Rojo→テストの開発ループについては、roblox-studio-workflow スキルを参照してください。

接続(および接続切れの修正)

  • Studio は MCP ハブに接続し、ツールを登録します。 Studio が接続されない場合、MCP の応答に含まれるツールは 0 個となり、ToolSearch/mcp__Roblox_Studio__* では何も見つかりません。
  • Studio で有効にします: Assistant パネル → Assistant Settings → "Enable Studio as MCP server"。「Manage MCP Servers」の下に緑色のインジケーターが表示されれば接続済みです。ドキュメント:create.roblox.com/docs/studio/mcp
  • 接続切れの修正(次の順に試します): (1) Codex セッションの実行中に「Enable Studio as MCP server」をオフ/オンに切り替えます。(2) 設定を保存してから Studio を再起動します。(3) すでに開いている Codex セッションに空のツールリストが残っている場合があります。/mcp で再接続するか、新しいセッションを開始してください。MCP が存在する前に自動更新と再起動が行われた Studio は、「有効になっているのに接続されていない」典型的なケースです。
  • セッション中に MCP 接続が予告なく切れることがあります(サーバーが切断されます)。その後は Studio が再接続するまでツールを使えません。ツール呼び出しが失敗し始めたら、コードの問題だと判断する前に、接続が切れていないか確認してください。

主なツール(動作確認済み・頻繁に使用)

  • execute_luau — Studio で Luau を実行します。datamodel_type が必要です:Edit | Server | Client。 別個の Lua VM で実行されます。DataModel は共有されます(Instances、PlayerGui、Workspace、Net のリモートなど)が、require() で読み込むモジュールの状態は共有されません。新しいコピーが使われるため、実行中のモジュールのシングルトンを読み取ったり変更したりすることはできません。Server からのみ FireAllClients を使用できます。ここでは合成入力を使って純粋関数をユニットテストできます。
  • start_stop_play — is_start のブール値(true=プレイ、false=停止)を指定します。古いコードをテストしないよう、Rojo の同期を待ってから使用してください(ワークフロースキルを参照)。
  • get_console_output — 出力とエラーを読み取ります。起動後は必ず確認し、気づきにくい失敗(例:「Out of local registers」、停止した WaitForChild、サービスエラー)がないかチェックしてください。
  • screen_capture — capture_id が必要です。知っておくべきキャプチャの問題:フリーカメラ/スクリプト制御のカメラを使うと ScreenGuis が非表示のままになることがあり、離れた SurfaceGui のクローズアップが空白で描画されることもあります。これらはキャプチャの問題であり、ゲームの問題ではありません(インスタンスクエリで照合してください)。クリック時の座標はスクリーンショットのピクセルではなく GUI の AbsolutePosition 空間です。まず AbsolutePosition + AbsoluteSize/2 を読み取ってください。
  • user_mouse_input/user_keyboard_input — 入力をシミュレートします。どちらも datamodel_type が必要です(スキーマからは分かりにくい点です)。user_mouse_input では instance_path を指定して、座標を使わずに GUI オブジェクトをクリックできます。コア UI(チャット、メニュー)がフォーカスを持っていると、キーボード入力は「CoreGUI has keyboard focus」エラーで失敗します。注意:execute_luau 内の VirtualInputManager:SendMouseButtonEvent は「lacking capability」エラーで失敗します。代わりにこれらの MCP 入力ツールを使用してください。
  • inspect_instance/search_game_tree — データモデル内のインスタンスを調査/検索します。
  • script_read/script_grep/script_search — データモデル内の現在の SCRIPT を読み取り/検索します。Rojo が最新の変更を実際に同期したか確認するのに便利です。プレイテストを信頼する前に、新しいコメント文字列を script_grep で検索してください。

コンテンツ生成・アセットツール(ここではほとんど未検証です。動作を調査・確認してください)

  • generate_mesh — プロンプトから MeshPart を AI 生成します。generate_material — AI によるマテリアル/SurfaceAppearance の生成。generate_procedural_model — プロシージャルモデル全体を生成します。非同期の可能性が高いため、wait_job_finished と組み合わせてください。小道具、地形、初期モデルの作成に最適です。まだ試していないため、品質と結果がデータモデルにどのように反映されるかを検証してください。
  • insert_asset(assetId を指定)— Creator Store のアセットを挿入します。search_asset — Creator Store のみ(Models/Images/Decals など)を検索し、アバターマーケットプレイス(衣服や髪にはカタログ Web API が必要です。roblox-avatar-appearance を参照)は検索しません。
  • upload_image / store_image — ローカルの PNG をアップロードして rbxassetid:// に変換します。upload_image は imagePaths を受け取り、http/https URL が必要です(ローカルパスは失敗します)。フォルダーを localhost で公開し(python3 -m http.server 8777)、http://localhost:8777/foo.png を渡すと ID が返されます。完了したらサーバーを停止します(pkill -f "http.server 8777")。バイト単位で同一の画像は同じ ID に重複排除されるため、再アップロードしても問題ありません。一括アップロードにも対応しています(複数の画像を一度にアップロードできます)。http_get — Studio から URL を取得します。
  • character_navigation — プレイヤーキャラクターを移動・操作します(未検証です。スクリーンショットの撮影や近接インタラクションの前に、目的地まで歩かせる場合に便利です)。
  • get_studio_state / list_roblox_studios / set_active_studio — 複数の Studio を認識し、複数の Studio が起動している場合に、特定の開いている Studio をツールの対象に設定します。
  • multi_edit — データモデル内のスクリプトを編集します。ディスク上で作成した(Rojo の)スクリプトには使用しないでください。差分やインスタンスの重複が発生するため、ディスク上で作成してください(roblox-studio-workflow を参照)。データモデル内にのみ存在するスクリプトに限って使用してください。

基本ルール

  • execute_luau と入力ツールでは datamodel_type が必須です。サーバー API(DataStore、MessagingService、FireAllClients、LoadAsset)には Server、PlayerGui やローカルの確認には Client、プレイ開始前のデータモデル/プロパティの変更には Edit を選択します。
  • 永続化するには、場所のプロパティやジオメトリを Edit モードで設定してください(永続化には場所の SAVE が必要です)。コードは MCP ではなく Rojo を使ってディスク上に配置してください。
  • 実行中のモジュールの内部フィールド(VM 間で共有されない)ではなく、Instance に現れる観測可能な副作用によって検証してください。roblox-studio-workflow のテスト戦略を参照してください。
  • 作業中にツールが消えた場合は、コードのバグを疑う前に、まず接続が切れていないか(上記を参照)確認してください。

コメント