mcpField
R
roblox-studio-mcp

roblox-studio-mcp

github.com/el4cteoエージェントワークフロー56520 回インストール2 週間前に更新
リポジトリ

roblox-studio-mcp について

roblox-studio-mcpは、Roblox Studio内蔵のMCPサーバーを介して作業するスキルで、Robloxプロジェクトを支援するエージェント向けです。シーンの調査・編集、Luauの実行、コンソールやビューポート、入力ツールを使ったプレイテストを扱います。

主な機能

  1. 01ゲームツリーの探索とインスタンスの確認
  2. 02スクリプトの検索・読み取り・編集
  3. 03編集・サーバー・クライアント環境でのLuau実行
  4. 04コンソールとビューポートによるプレイテスト
  5. 05キャラクター・キーボード・マウス入力のシミュレーション
  6. 06Creator Storeアセットの検索と挿入

活用シーン

  1. 01Robloxの場所でスクリプトやインスタンスを探す
  2. 02Luauの変更と動作の確認
  3. 03ゲーム動作と画面表示のテスト
  4. 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 の変更を検証するための最速の方法です。

セットアップ

  1. 最新の Studio → Assistant を開く → … → Manage MCP Servers → Enable Studio as MCP server を有効にします。
  2. Quick connect(Claude Code、Claude Desktop、Codex CLI、Cursor、Gemini CLI、VS Code、Antigravity)を使用するか、 クライアントを手動で設定します:
OSコマンド
macOS/Applications/RobloxStudio.app/Contents/MacOS/StudioMCP
Windowscmd.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 が作成したスキル: デバッグ、デバイスシミュレーション、ドキュメント検索、プロファイリング、シーン分析、ユニットテスト)

作業ループ

  1. 方向づけ: list_roblox_studios → studio_id を選択し、get_studio_state を実行します。プロジェクトを search_game_tree(深さ制限: まずサービス)で把握し、次にその機能について script_grep/script_search を実行します。
  2. 書く前に読む: 触れるすべてのスクリプトとその require 元を script_read で読みます。Studio で編集する前に、 Rojo/Script Sync のセットアップがあるか確認します(下記参照)。
  3. 編集は multi_edit で行います(正確で最小限の編集、既存のスタイルを維持)。インスタンス/属性/ タグは Edit コンテキストで execute_luau を使って作成します — この方法で行われた変更はプレースへの実際の編集です。
  4. 静的に検証: スクリプトを再読します。純粋なモジュールの場合は、execute_luau で簡単なチェックを行います (Edit でモジュールを require して関数を呼び出します)。
  5. プレイテスト: start_stop_play(開始)→ 待機 → エラーがないか get_console_output → シナリオを character_navigation/入力ツールで操作 → 状態をアサートするために Server/Client で execute_luau → 視覚的な確認のために screen_capture → start_stop_play(停止)。終了したら必ずプレイを停止してください。
  6. 報告: 何が変更され、何が検証されたか(そして何が検証されなかったか)を報告します。
-- 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。

コメント