Roblox Studio MCPとは?
Roblox Studio MCPは、Model Context Protocolを通じてRoblox StudioとAIコーディングアシスタントを接続する、軽量なNode.jsおよびTypeScriptサーバーです。AIエージェントがプレースのオブジェクト階層を理解し、インスタンスを調査し、Luaスクリプトを作成または更新し、プロパティを変更し、プレイテストセッションを制御できるようにします。
サーバーはWebSocketとStudioプラグインAPIを介してRoblox Studioと通信します。AIクライアントは、標準入出力またはサポートされているアダプターを使用し、MCPを介してサーバーと通信します。
アクセス要件:調査または変更するRobloxのプレースへの編集アクセス権が必要です。
主な機能
- MCPクライアント対応:Claude Desktop、Cursor、Cline、互換アダプター経由のChatGPT向けに設計されています。
- オブジェクトツリーへのアクセス:現在のRobloxプレースの階層を読み取ります。
- Luaスクリプト編集:AIからのリクエストを通じてスクリプトを作成、読み取り、更新します。
- プロパティ調査:インスタンスのプロパティを読み取り、変更します。
- プレイテスト制御:AIクライアントからプレイテストセッションを開始・停止します。
- 読み取り専用モード:プロジェクトを調査している間、破壊的な操作を無効にします。
- セッション検出:開いているRoblox Studioセッションを自動的に検出します。
- 軽量なアーキテクチャ:Node.js、TypeScript、WebSocket、Lua Studioプラグインを使用します。
利用可能なMCPツール
サーバーは、接続されたAIエージェントに次の操作を公開します。
get_object_treeは現在のプレースの階層を返します。get_instanceはパスで指定されたインスタンスを取得します。get_propertiesはインスタンスのプロパティを読み取ります。set_propertyはプロパティ値を変更します。create_scriptは指定した親の下にLuaスクリプトを作成します。update_scriptは既存のスクリプトのソースを置き換えます。delete_instanceはセーフモードが無効の場合にオブジェクトを削除します。run_playtestはプレイテストセッションを開始します。stop_playtestは現在のプレイテストを停止します。
インストールとセットアップ
プロジェクトのセットアップ方法を確認する
READMEには、Core_Update_Packアーカイブをダウンロードして展開し、ProjectFiles.exeを実行して画面の指示に従うクイックスタート手順が記載されています。また、npxを通じてMCPサーバーを直接設定します。
セキュリティに関する注意:READMEにある実行ファイルの実行と「スクリプトのインジェクト」に関する指示は、プロジェクトが公式のStudioプラグインAPIを使用し、コードをインジェクトしないという別の記述と矛盾しています。ダウンロードした実行ファイルを実行する前に、リポジトリ、ソース、リリース成果物、公開元を確認してください。READMEには、手動でプラグインをインストールする別の手順は記載されていません。
Claude DesktopまたはCursorを設定する
Claude Desktopの場合はclaude_desktop_config.jsonを開き、Cursorの場合はMCP設定を開きます。次のサーバー定義を追加してください。
{
"mcpServers": {
"roblox-studio": {
"command": "npx",
"args": ["-y", "roblox-studio-mcp"]
}
}
}npxコマンドには、npmとnpxを含むNode.jsのインストールが必要です。設定を保存し、AIアプリケーションを再起動してサーバーを読み込ませます。
Robloxのプレースを開く
- Roblox Studioを起動します。
- 編集アクセス権のあるプレースを開きます。
- プロジェクトのセットアップに従って、Studio側のプラグインコンポーネントが利用可能で接続されていることを確認します。
- MCP設定を保存した後、Claude DesktopまたはCursorを再起動します。
- アシスタントに開いているプレースを調査するよう依頼します。
基本的な使い方
オブジェクトツリーを読み取る
まず、エージェントがプレースを理解できるよう、読み取り専用のリクエストから始めます。
Robloxプレースのオブジェクトツリーを表示してください。エージェントはget_object_treeを呼び出し、階層内のサービス、フォルダー、モデル、スクリプト、その他のインスタンスを要約できます。
インスタンスを調査する
ツリーからオブジェクトを見つけたら、その詳細またはプロパティを尋ねます。可能な場合は正確なパスを含めてください。
Workspace.Map.SpawnLocationのインスタンスを調査し、そのプロパティを表示してください。この種類のリクエストでは、get_instanceまたはget_propertiesを使用できます。
Luaスクリプトを作成する
配置先と目的の動作を明確に説明します。
サーバー開始時に起動メッセージを出力するLuaスクリプトをServerScriptServiceの下に作成してください。アシスタントはLuaソースを生成し、create_scriptを使用して指定された親の下に配置できます。実運用のプロジェクトで使用する前に、生成されたコードを確認してください。
既存のスクリプトを更新する
変更する前にエージェントへスクリプトを調査するよう依頼し、その後で必要な変更を指定します。
ServerScriptService.RoundManagerのスクリプトを読み取り、何をしているか説明してから、明確なデバッグメッセージを追加するよう更新してください。エージェントはスクリプトを取得し、update_scriptを使用してソースを置き換えられます。
インスタンスのプロパティを変更する
インスタンスのパス、プロパティ、設定する値を指定します。
Workspace.Map.BarrierのTransparencyプロパティを0.5に変更してください。このリクエストはset_propertyに対応します。特に似た名前のオブジェクトが存在する場合は、変更を許可する前に対象パスを確認してください。
プレイテストを制御する
接続されたエージェントにStudioのプレイテストの開始または停止を依頼できます。
現在のプレースでプレイテストを開始してください。現在のプレイテストを停止してください。これらのリクエストでは、run_playtestとstop_playtestを使用します。
サーバーを設定する
Roblox Studio MCPでは、接続と実行時の動作に環境変数を使用できます。
RBX_MCP_PORTはWebSocketポートを指定します。デフォルトは44755です。RBX_MCP_SAFE_MODEをtrueに設定すると、破壊的な操作を無効にできます。RBX_MCP_LOG_LEVELにはdebug、info、warn、errorを指定できます。RBX_MCP_TIMEOUTはリクエストのタイムアウトをミリ秒単位で設定します。
環境変数は、MCPサーバーを起動するプロセスから利用できる必要があります。具体的な設定方法は、オペレーティングシステムとAIクライアントによって異なります。
高度なヒント
まずセーフモードで探索する
見慣れない場所や重要な場所を調べるときは、RBX_MCP_SAFE_MODE=trueを設定してください。セーフモードは読み取り専用の探索を目的としており、delete_instanceなどの破壊的な操作を無効にします。
読み取り前提の書き込みワークフローを使う
- オブジェクトツリーを取得して、正しい階層を確認します。
- 対象のインスタンスまたはスクリプトを調べます。
- 予定されている変更についてエージェントに説明を求めます。
- 対象を絞った変更を1つ適用します。
- 結果を確認し、必要に応じてプレイテストを実行します。
この手順により、あいまいなパスや不完全なプロジェクト情報によるミスを減らせます。
正確なインスタンスパスを指定する
リクエストでは、「ドア」や「スクリプト」とだけ指定するよりも、Workspace.Map.DoorやServerScriptService.RoundManagerなどの対象を特定したほうが確実です。パスがわからない場合は、まずget_object_treeを使用してください。
接続問題にはデバッグログを使う
検出、接続、タイムアウトの問題を調査するときは、RBX_MCP_LOG_LEVELをdebugに設定してください。詳細な診断が不要になったら、info、warn、またはerrorに戻します。
複数のStudioセッションを慎重に扱う
サーバーは、開いている複数のStudioインスタンスを検出できます。複数のセッションがアクティブな場合は、最初の探索にセーフモードを使用し、編集を要求する前にプロンプトをできるだけ具体的にしてください。
時間のかかる操作に合わせてタイムアウトを調整する
リクエストが想定時間内に完了しない場合は、RBX_MCP_TIMEOUTに環境に適した時間をミリ秒単位で設定してください。READMEにはデフォルトのタイムアウトが記載されていないため、環境に合った値を選択してください。
安全性に関する考慮事項
このプロジェクトでは、操作はStudioプラグイン内でサンドボックス化され、プライベートデータへのアクセス、メモリの操作、信頼できないコードの実行は行わないと説明されています。それでも、update_script、set_property、delete_instanceなどのMCPツールはプレースを変更できます。変更が必要になるまでセーフモードを有効にし、生成されたLuaを確認するとともに、重要な作業は復元可能な状態で保存してください。
まとめ
Roblox Studio MCPを使うと、MCP互換のAIアシスタントからRoblox Studioに構造化されたアクセスが可能になります。npxサーバーを設定すると、AIクライアントからオブジェクトツリーの探索、プロパティの確認、Luaスクリプトの編集、プレイテストの管理を行えます。まずはセーフモードと読み取り専用の確認から始め、パスを確認して予定されている作業をレビューしたうえで、対象を絞った変更を加えてください。
