roblox-studio-mcp について
roblox-studio-mcpは、Roblox StudioのMCPツールでLuauを実行し、データモデルを調査・変更し、操作をテストしてアセットを作成・追加するためのスキル資料です。Studioのライブセッションで開発するRoblox開発者向けに、接続時の問題や各ツールの制約も説明します。
主な機能
- 01StudioでLuauを実行
- 02データモデルの調査と検索
- 03スクリプトの読み取りと検索
- 04マウスとキーボード入力のシミュレーション
- 05Studioのスクリーンショット取得
- 06アセットの生成と挿入
活用シーン
- 01ライブのプレースでLuauをテスト
- 02Rojoによるスクリプト同期を確認
- 03ゲームオブジェクトと実行時出力を調査
- 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のテスト戦略を参照してください。 - 作業中にツールが消えた場合は、コードのバグを疑う前に、まず接続が切れていないか(上記を参照)確認してください。
コメント
Markdown 対応