roblox-studio-mcp について
roblox-studio-mcpは、Roblox Studio内蔵のMCPサーバーを介して作業するスキルで、Robloxプロジェクトを支援するエージェント向けです。シーンの調査・編集、Luauの実行、コンソールやビューポート、入力ツールを使ったプレイテストを扱います。
主な機能
- 01ゲームツリーの探索とインスタンスの確認
- 02スクリプトの検索・読み取り・編集
- 03編集・サーバー・クライアント環境でのLuau実行
- 04コンソールとビューポートによるプレイテスト
- 05キャラクター・キーボード・マウス入力のシミュレーション
- 06Creator Storeアセットの検索と挿入
活用シーン
- 01Robloxの場所でスクリプトやインスタンスを探す
- 02Luauの変更と動作の確認
- 03ゲーム動作と画面表示のテスト
- 04場所に追加する前のアセット確認
MCP 対応
Roblox Studio内蔵のstdio MCPサーバーを通じてMCPクライアントに接続します。シーンの調査・編集、Luau実行、プレイテスト、入力シミュレーション、アセット操作のツールを公開します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ el4cteo/ roblox-skills --skill roblox-studio-mcpインストール後、Claude Code で/roblox-studio-mcpを入力して読み込まれたか確認します。
同梱ファイルreferences/client-setup.md
詳細
MCP 経由で Roblox Studio を操作する
Roblox Studio には 組み込みの MCP サーバー(stdio)が搭載されています。これを使うと、エージェントは開いているプレースを調査し、スクリプトを編集し、編集/サーバー/クライアントの各コンテキストで Luau を実行し、プレイテストを行い、Output を読み取り、ビューポートをキャプチャし、プレイヤー入力をシミュレートできます。これは、推測するのではなく Roblox の変更を検証するための最速の方法です。
セットアップ
- 最新の Studio → Assistant を開く → … → Manage MCP Servers → Enable Studio as MCP server を有効にします。
- Quick connect(Claude Code、Claude Desktop、Codex CLI、Cursor、Gemini CLI、VS Code、Antigravity)を使用するか、 クライアントを手動で設定します:
| OS | コマンド |
|---|---|
| macOS | /Applications/RobloxStudio.app/Contents/MacOS/StudioMCP |
| Windows | cmd.exe /c %LOCALAPPDATA%\Roblox\mcp.bat |
# Claude Code
claude mcp add Roblox_Studio -- /Applications/RobloxStudio.app/Contents/MacOS/StudioMCP
claude mcp add Roblox_Studio -- cmd.exe /c "%LOCALAPPDATA%\Roblox\mcp.bat" # Windows
{ "mcpServers": { "Roblox_Studio": { "command": "/Applications/RobloxStudio.app/Contents/MacOS/StudioMCP" } } }
クライアント固有の設定(Codex の config.toml、OpenCode の opencode.json、Cursor/VS Code の mcp.json):
references/client-setup.md。Manage MCP Servers の緑のインジケーターが
接続を確認します。信頼できるクライアントのみを接続してください。それらはあなたのプレースを読み取り、変更できます。
ツール
| グループ | ツール |
|---|---|
| セッション | list_roblox_studios(すべての呼び出しで studio_id を取ります)、get_studio_state(プレイ状態、利用可能な DataModel) |
| 調査 | search_game_tree(パス/クラス/キーワード、深さでフィルタリング)、inspect_instance(プロパティ、属性、子)、script_search(名前によるあいまい検索)、script_grep(スクリプト全体のテキスト、最大 50 件)、script_read(game.ServerScriptService.Main のようなドットパス、行範囲) |
| 編集 | multi_edit(1 つのスクリプトへの複数の編集、存在しない場合は作成します。datamodel_type = Edit) |
| 実行 | execute_luau(datamodel_type = Edit、Server、または Client。結果またはエラーを返します) |
| プレイテスト | start_stop_play、get_console_output、screen_capture(任意でカメラ位置/注視点)、character_navigation、user_keyboard_input、user_mouse_input |
| アセット | search_asset(Creator Store/インベントリ)、insert_asset、upload_image、store_image、generate_mesh、generate_material、generate_procedural_model + wait_job_finished |
| 委任 | subagent(多段階の調査向けの explore または playtest タイプ) |
| ナレッジ | http_get(Roblox ドキュメント、API リファレンス、Cloud ドキュメント)、skill(Roblox が作成したスキル: デバッグ、デバイスシミュレーション、ドキュメント検索、プロファイリング、シーン分析、ユニットテスト) |
作業ループ
- 方向づけ:
list_roblox_studios→studio_idを選択し、get_studio_stateを実行します。プロジェクトをsearch_game_tree(深さ制限: まずサービス)で把握し、次にその機能についてscript_grep/script_searchを実行します。 - 書く前に読む: 触れるすべてのスクリプトとその require 元を
script_readで読みます。Studio で編集する前に、 Rojo/Script Sync のセットアップがあるか確認します(下記参照)。 - 編集は
multi_editで行います(正確で最小限の編集、既存のスタイルを維持)。インスタンス/属性/ タグはEditコンテキストでexecute_luauを使って作成します — この方法で行われた変更はプレースへの実際の編集です。 - 静的に検証: スクリプトを再読します。純粋なモジュールの場合は、
execute_luauで簡単なチェックを行います (Editでモジュールをrequireして関数を呼び出します)。 - プレイテスト:
start_stop_play(開始)→ 待機 → エラーがないかget_console_output→ シナリオをcharacter_navigation/入力ツールで操作 → 状態をアサートするためにServer/Clientでexecute_luau→ 視覚的な確認のためにscreen_capture→start_stop_play(停止)。終了したら必ずプレイを停止してください。 - 報告: 何が変更され、何が検証されたか(そして何が検証されなかったか)を報告します。
-- Example execute_luau (Server context during play): assert game state instead of eyeballing.
local Players = game:GetService("Players")
local results = {}
for _, player in Players:GetPlayers() do
local leaderstats = player:FindFirstChild("leaderstats")
local coins = leaderstats and leaderstats:FindFirstChild("Coins")
table.insert(results, `{player.Name}: {if coins and coins:IsA("IntValue") then coins.Value else "missing"}`)
end
return table.concat(results, "\n")
経験則
Editにおけるexecute_luauはプレースを変更します。探索中は読み取り専用のクエリを優先し、意図的な変更は 1 つの明確なスクリプトにまとめてください。ユーザーがあなたの編集を 1 ステップで元に戻せるように、ChangeHistoryServiceの記録(TryBeginRecording/FinishRecording)を使用してください。- プレイ中(Server/Client コンテキスト)に行われた変更は、プレイを停止すると破棄されます —
Editで編集してください。 - Rojo プロジェクト: ファイルシステムが信頼できる唯一の情報源です — ディスク上のファイルを編集し、Rojo に同期させ、MCP はプレイテストや検査に使用してください。同期されたスクリプトを
multi_editで編集すると上書きされます。Script Sync プロジェクトは双方向で同期されるため、どちらの側でも動作しますが、同じスクリプトを両側で同時に編集しないでください。 search_game_treeのクエリは狭く保ってください(パス + 深さ)。大きなプレースは巨大な出力を生成します。- 複数の Studio ウィンドウ: 常に正しい
studio_idを渡してください。どのプレースを操作したかをユーザーに伝えてください。 - Creator Store から挿入されたアセットにはスクリプトが含まれている可能性があります。保持する前にそれらを検査し(
search_game_tree+script_read)、予期しないスクリプトを削除してください(無料モデルにはバックドアがよく含まれています)。 - 証拠なしに成功を主張しないでください。コンソール出力、アサーション結果、またはスクリーンショットを引用してください。
Roblox 製のスキルと変換
Studio は Roblox 製のスキルを skill ツールを通じて公開しています(例: rbx-debug、rbx-perf-profiling、rbx-scene-analysis、rbx-unit-test、rbx-docs-search、rbx-device-simulator-lua)。Roblox は公式の ストリーミング変換 スキル(/rbx-convert-to-streaming、「Techniques and conversion」ストリーミングドキュメントからダウンロード可能)も公開しており、これはこの MCP サーバーを通じて実行されます。まずプレースをバックアップしてください。
関連スキル
roblox-testing(テストランナー)、roblox-performance(プロファイリング)、roblox-tooling(Rojo/Script Sync)、roblox-architecture(何をどこに配置すべきか)、roblox-code-review。