mcpField
T
Tripwire

Tripwire

ローカル
github.com/aliboIly開発ツール39 週間前に更新

Tripwire について

Tripwireは、コーディングエージェントでRobloxを開発する人向けのMCPサーバーです。Roblox Studioの編集やプレイテストに加え、ヘッドレステスト、セキュリティ検査、Open Cloud操作を提供します。

主な機能

  1. 01Studioのインスタンスとスクリプトの検査・編集
  2. 02入力をシミュレートしたプレイテスト
  3. 03Luauのヘッドレステスト実行
  4. 04クライアント信頼に関する脆弱性の検出
  5. 05Roblox Open Cloud APIの呼び出し

活用シーン

  1. 01エージェント経由でRobloxゲームを検査・編集
  2. 02プレイテストを自動化し実行ログを確認
  3. 03ゲームコードのクライアント信頼リスクを調査
  4. 04DataStoresなどOpen Cloudサービスを管理

MCP 対応

MCPクライアントにRoblox Studioの操作、テスト、セキュリティ分析、Open Cloud操作のツールを公開します。Studioツールはプラグイン経由で接続し、ヘッドレステストとクラウドツールにはOpen Cloudキーが必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"aliboily-tripwire": {
"command": "npx",
"args": [
"-y",
"tripwire-roblox"
],
"env": {
"ROBLOX_OPEN_CLOUD_KEY": "<ROBLOX_OPEN_CLOUD_KEY>",
"ROBLOX_UNIVERSE_ID": "<ROBLOX_UNIVERSE_ID>",
"ROBLOX_PLACE_ID": "<ROBLOX_PLACE_ID>"
}
}
}
}
起動コマンドnpx -y tripwire-roblox
設定が必要な環境変数
ROBLOX_OPEN_CLOUD_KEYシークレットOpen Cloud API key. Needed for the headless test and Open Cloud tools; the Studio path does not use it.
ROBLOX_UNIVERSE_IDUniverse id the Open Cloud tools target. Set it alongside the key and place id.
ROBLOX_PLACE_IDPlace id the Open Cloud tools target. Set it alongside the key and universe id.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmtripwire-roblox0.2.5

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Tripwire

alibolly が作成

npm CI MCP Registry License: MIT

AI コーディングエージェントが Roblox Studio と Roblox Open Cloud を実際に操作できるようにする MCP サーバーです。 他の Studio MCP にはない、テストとセキュリティのレイヤーを備えています。

Tripwire を使うと、アシスタントはデータモデルの読み取り、書き込み、編集、シミュレートされた入力によるプレイテストの実行、実際のエンジンでのヘッドレスなコードテスト、ゲームコードにおけるクライアント信頼の悪用の検出、Open Cloud API(DataStores、MessagingService、Memory Stores など)の呼び出しができます。Studio ツールに API キーは不要です。ヘッドレステスト、アセット、Open Cloud のツールには Open Cloud キーを使用します。


要件

  • MCP クライアント:Claude Code、Codex、Gemini、または stdio 経由で MCP に対応する任意のクライアント。
  • Studio ツールを使用する場合は、Roblox Studio が必要です。API キーは不要です。
  • サーバーを npx で実行する場合に限り、Node.js が必要です。ビルド済みバイナリには Node は不要です。
  • ヘッドレステスト、アセット、Open Cloud のツールには、公開済みの place と Roblox Open Cloud API キーが必要です。Open Cloud のセットアップを参照してください。

クイックスタート

Tripwire は、AI コーディングエージェントを通じて Studio を操作する Roblox 開発者向けです。

  1. MCP クライアントにサーバーを接続します(コマンド 1 つ、または短い設定ブロックを使用します。以下のインストールを参照)。
  2. Studio ツールから Studio に接続できるよう、Studio プラグインをインストールします(「インストール」のプラグイン手順を参照)。
  3. Studio で place を開き、Game Settings > Security > Allow HTTP Requests をオンにします。次に Tripwire ツールバーのボタンをクリックし、パネルで Connect を押します。パネルに Connected と表示され、Output に [Tripwire v...] connected と出力されます。
  4. エージェントに studio_status を実行するよう依頼します。Studio に接続できていれば、ブリッジが動作しています。
  5. 任意:ヘッドレステスト、アセット、Open Cloud のツール用に Open Cloud キーを追加します(「Open Cloud のセットアップ」を参照)。

インストール

Tripwire のサーバーは単一のバイナリです。最も簡単な実行方法は npx を使うことです。プラットフォーム用のビルド済みバイナリが取得されるため、Rust ツールチェーンをインストールする必要はありません。手動でのバイナリ利用やソースからのビルドをご希望ですか?このセクションの最後にある「その他の方法」をご覧ください。

Claude Code

次のコマンドを実行します。

claude mcp add --transport stdio tripwire -- npx -y tripwire-roblox

または、プロジェクトの .mcp.json(もしくは ~/.claude.json)に追加します。

{
  "mcpServers": {
    "tripwire": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "tripwire-roblox"]
    }
  }
}
Codex

~/.codex/config.toml に追加します。

[mcp_servers.tripwire]
command = "npx"
args = ["-y", "tripwire-roblox"]

または、codex mcp add tripwire -- npx -y tripwire-roblox を実行します。

Gemini

~/.gemini/settings.json(もしくはプロジェクトの .gemini/settings.json)に追加します。

{
  "mcpServers": {
    "tripwire": {
      "command": "npx",
      "args": ["-y", "tripwire-roblox"]
    }
  }
}

または、gemini mcp add tripwire npx -y tripwire-roblox を実行します。

その他の MCP クライアント

標準入出力経由で MCP を利用するクライアントであれば、実行できます。

command: npx
args:    ["-y", "tripwire-roblox"]
その他の方法:ビルド済みバイナリ、またはソースからビルド

ビルド済みバイナリ(Node 不要)。 Releases ページからプラットフォーム用のアーカイブ(例:tripwire-server-vX.Y.Z-aarch64-apple-darwin.tar.gz)をダウンロードして展開し、クライアントの command に展開した tripwire-server を、args は空の状態で指定します。

ソースからビルド(Rust が必要です)。

git clone https://github.com/aliboIly/Tripwire.git
cd Tripwire/server
cargo build --release   # produces server/target/release/tripwire-server

次に、クライアントの command にそのバイナリのパスを指定します。

Studio プラグイン(Studio ツールに必要)

Studio ツールは、ローカルサーバーにロングポーリングする小さなプラグインを介して Studio に接続します。Releases ページから Tripwire.rbxmx を取得するか、次のコマンドでビルドします。

cd Tripwire/plugin
npm install
npx rbxtsc
rojo build --output Tripwire.rbxmx
cp Tripwire.rbxmx ~/Documents/Roblox/Plugins/   # macOS; Windows: %LOCALAPPDATA%\Roblox\Plugins

Studio を再起動し、Game Settings > Security > Allow HTTP Requests を有効にしてから、ツールバーの Tripwire ボタンをクリックし、パネルで Connect を押します。パネルに Connected と表示され、Output に [Tripwire v...] connected と出力されます。

Open Cloud キー(ヘッドレステスト、アセット、Open Cloud ツール用)

Studio ツールにキーは必要ありません。Open Cloud ツールには必要です。詳しい手順については、以下のOpen Cloud のセットアップをご覧ください。


Open Cloud のセットアップ

Tripwire の大半は認証情報を必要としません。以下のツールは Roblox Open Cloud を呼び出すため、認証情報が必要です。run_luau、ヘッドレステスト(run_tests、run_test_file、list_tests)、および以下の Open Cloud セクションにあるすべてのツール(アセット、公開、データストア、メッセージング、メモリ、ユニバースとサーバー、Engine Instance API、モデレーション、シークレット、収益化、Creator Store、グループ、分析、プラットフォーム、open_cloud_request)が対象です。認証には Roblox Open Cloud API キーを使用します。

自己責任でご利用ください。 Open Cloud キーは、エクスペリエンスに対して実際の操作権限を持つ認証情報です。付与するスコープによっては、稼働中の DataStore の読み取りや上書き、プレイスの新しいバージョンの公開、アカウントへのアセットのアップロード、サーバーへのメッセージ送信が可能になります。パスワードと同様に扱ってください。実際に使うスコープだけを付与し、自分の IP のみに制限し、決してコミットせず、漏えいした場合は失効させてください。このキーを使って行う操作については、ご自身が責任を負います。Tripwire は Roblox と提携しておらず、Roblox の承認も受けていません。

1. キーを作成する
  1. create.roblox.com/dashboard/credentials にアクセスしてサインインします。
  2. Create API Key をクリックし、名前を付けます(例:Tripwire)。
  3. Access Permissions で、使用するツールに必要な API システムだけを追加し、それぞれに必要な操作を許可して、対象をエクスペリエンスに限定します。ダッシュボードで選択できるすべてのシステムに対応するツールがあります。対応表は、以下の権限とツールを参照してください。概要は次のとおりです。
    • Luau Execution(書き込み):run_luau とヘッドレステスト。
    • universe-places(書き込み):publish_place。
    • Assets(読み取り+書き込み)と Asset Permissions:アセットツール。
    • DataStores と Ordered DataStores:データストアツール。
    • Messaging Service(パブリッシュ)と Memory Stores:それぞれに対応するツール。
    • Universe、Place、Instance、User Restrictions、Secrets、Analytics:ユニバース、サーバー、インスタンス、モデレーション、シークレット、アナリティクスのツール。
    • Developer Products、Game Passes、Creator Store:収益化とストアのツール。
    • User/Group/Inventory/Subscription/Notification:プラットフォーム、グループ、エンゲージメントのツール。
    • それ以外(レガシーおよび実験的なシステム):open_cloud_request。
  4. Security で、Accepted IP Addresses にお使いのマシンの IP アドレスを設定するか、任意の IP アドレスを許可する場合は 0.0.0.0/0 を設定します(ローカルでの使用にはこちらが最も簡単です)。必要に応じて有効期限も設定してください。
  5. Save & Generate Key をクリックし、キー文字列をコピーします。キーが表示されるのは一度だけです。
2. ユニバース ID とプレース ID を確認する

Studio のコマンドバー(View、次に Command Bar)で、次を実行します。

print("universe", game.GameId, "place", game.PlaceId)

GameId が ROBLOX_UNIVERSE_ID、PlaceId が ROBLOX_PLACE_ID です。Open Cloud が操作するには、プレースが Roblox に 公開済みである必要があります。

3. Tripwire に認証情報を設定する

リポジトリのルートに .env を作成します。このファイルは gitignore に登録されており、サーバーが自動的に読み込みます。

ROBLOX_OPEN_CLOUD_KEY=paste_the_key_here
ROBLOX_UNIVERSE_ID=000000
ROBLOX_PLACE_ID=000000
ROBLOX_CREATOR_USER_ID=000000   # only for upload_asset (your user id)

代わりに、同じ変数を MCP クライアントの env ブロックに記述することもできます(こちらの設定が優先されます)。 どちらを変更した場合も、MCP サーバーに再接続してください。各ツールは、キーに必要なスコープが付与されていれば動作し、スコープが不足している場合は Roblox 独自のエラーを返すため、必要に応じてスコープを追加できます。


ツール

接続
studio_statusStudio が接続されているかどうか、アクティブなプレース、その他に接続されている Studio を確認します。
ping_studioプラグイン経由で ping を往復させ、ライブブリッジが動作していることを確認します。
list_studios接続中または最近検出された Studio をすべて一覧表示します。プレース、アクティブかどうか、最終検出時刻、プレイテストの状態を確認できます。
set_active_studioツールの対象とする接続済み Studio を選択します(ID、ID のプレフィックス、またはプレース名で指定)。Studio が 1 つの場合は自動的に選択されます。
### 読み取りと確認
get_file_treeパス(デフォルトではゲーム全体)から、深さを指定してインスタンスツリーを一覧表示します。
get_instance_childrenインスタンスの直接の子(名前とクラス)を一覧表示します。
get_instance_propertiesインスタンスの名前、クラス、完全なパス、属性、および一般的なエンジンプロパティ(Position、Size、Color、Material、Anchored、Text など)の厳選された項目を読み取ります。
search_objects名前に検索語を含むインスタンスを検索します。必要に応じて、完全一致するクラス、またはクラスとそのサブクラス(isA)で絞り込めます。
search_by_propertyプロパティが値と一致するインスタンスを検索します。必要に応じて、完全一致するクラス、またはクラスとそのサブクラス(isA)で絞り込めます。
get_script_sourceScript、LocalScript、またはModuleScriptのソースを読み取ります。
grep_scriptsスクリプトのソースから部分文字列を検索し、パス、行番号、行を返します。
get_output_logStudio Outputの最近のエントリ(メッセージ、種類、タイムスタンプ)を取得します。
get_selection現在Studioで選択されているインスタンスを取得します。
get_class_infoRobloxクラスのメンバー(プロパティ、メソッド、イベント)とその型を調べます。継承されたメンバーも含まれます。バンドルされたAPIリフレクションダンプから回答するため、Studioもキーも必要ありません。
空間(読み取り専用)
raycastレイを飛ばし、最初のヒット(インスタンス、位置、法線、マテリアル、距離)またはヒットなしを報告します。除外するサブツリーを指定することもできます。
get_bounding_boxModelまたはBasePartのワールド空間でのバウンディングボックス(中心とサイズ)を取得します。
find_spawnsパス以下のSpawnLocationを一覧表示します。位置、有効かどうか、中立かどうかも含まれます。
capture_screenshotエージェントがシーンを確認できるよう、StudioのビューポートをJPEG画像としてキャプチャします。プラグインの接続と、Allow Mesh / Image APIsの有効化(Game Settings、Security)が必要です。編集モード専用です。
編集(各操作が1回の元に戻す操作になります)
create_instanceクラスのインスタンスを作成します。名前と初期プロパティは任意で指定できます。
delete_instanceインスタンスとその子孫を破棄します。
set_property型付きプロパティを1つ設定します(プリミティブ、Vector3、Color3、UDim2、CFrame、EnumItem、またはインスタンス参照)。
update_script_sourceスクリプトエディターを通じてスクリプトのソースを置き換えます(サポートされている書き込み方法)。
insert_modelIDでアセットを挿入します。位置の変更や展開も任意で行えます。
mass_create1回の元に戻す操作で多数のインスタンスを作成します(アトミック、またはアイテムごとの結果を返すベストエフォート)。
mass_set_property1回の元に戻す操作で多数のインスタンスに同じプロパティを設定します(アトミックまたはベストエフォート)。
### プレイテストと入力
start_playtestF5 プレイテストを開始します(プレイヤーを含むサーバーとクライアントの DataModel)。ゲーム内ランナーを挿入します。
stop_playtestF5 プレイテストを停止します(ベストエフォートです。F5 の終了処理が確認より長くかかる場合があります)。
start_simulationF8 実行を開始します(サーバーのみのシミュレーションで、クライアントやプレイヤーは含まれません)。
stop_simulationF8 実行を停止します(クリーンに停止します)。
simulate_mouse_inputF5 プレイテスト中に、画面座標でマウスをクリックまたは移動します。
simulate_keyboard_inputF5 プレイテスト中に、キーを押す(タップ/押下/離す)か、テキストを入力します。
character_navigationローカルキャラクターをワールド内の位置まで歩かせ、目標に到達したかどうかを報告します。
get_playtest_output実行中のプレイテストの出力ログです。サーバーとクライアントの各ピアのログを集約します。新しい行のみを取得するには、前回の呼び出しで取得した cursor を since として渡します。長時間のセッションで処理が停止しないよう、バッファのサイズには上限があります。
reset_playtest_outputStudio を再起動せずにプレイテストの出力バッファを消去し、次回の読み取りを新しい状態から開始します。
run_luau_live実行中のゲームを調査できるよう、F5 プレイテストのサーバー上で Luau を評価して結果を返します(Humanoid の状態、NPC の位置、パスのウェイポイントなど)。print を追加して再実行する必要はありません。アクティブなプレイテストと、テスト用プレースで有効になっている ServerScriptService.LoadStringEnabled が必要です。公開済みプレースに対してヘッドレスで実行する run_luau とは異なります。
テストとヘッドレス実行(Open Cloud)
run_luau公開済みプレースで Luau スクリプトをヘッドレス実行し、結果とログを返します。
run_tests公開済みプレースでテストスイートをヘッドレス実行し、メッセージとともに成功/失敗を報告します。
run_test_file名前を指定して、単一の spec をヘッドレス実行します。
list_tests公開済みプレースで検出された spec ファイルと各ケースを一覧表示します。
write_testroblox-ts のテスト spec をディスクに書き込みます。再ビルドして公開すると、run_tests で実行されます。
セキュリティレビュー(静的解析、キー不要)
review_securityゲームのソースをレビューし、クライアントを信頼している箇所や検証されていないリモート処理の問題を特定します。それぞれにサーバー側での修正案を提示します。
scan_remotesサーバー側のリモートハンドラーと、それぞれのクライアント制御パラメーターを一覧表示します。
scan_client_trustクライアントから提供された値を検証せずに使用しているサーバーハンドラーを指摘します。
### アセットと公開(Open Cloud)
upload_assetローカルファイルをRobloxアセット(Decal、Audio、Model、Animation、Video)としてアップロードし、assetIdを返します。
get_assetアセットのメタデータ(種類、名前、説明、モデレーション状態、現在のリビジョン)を取得します。
update_assetアセットの名前または説明を変更するか、Modelの場合は新しいコンテンツを新しいバージョンとしてアップロードします。
list_asset_versionsアセットのバージョンと、それぞれのモデレーション状態を一覧表示します。
rollback_asset_versionアセットを以前のバージョンに戻します。
archive_asset / restore_assetアセットをサイトやエクスペリエンスから非表示にするか、再び表示します。
list_asset_quotasアップロードの上限と、それぞれの使用量を確認します。
download_assetアセットのコンテンツ(モデル、画像、またはプレイスファイル)をローカルパスにダウンロードします。
grant_asset_permissions所有するアセットに対する権限(Use、Edit、Download)を、ユーザー、グループ、ロールセット、ユニバース、または全員に付与します。
publish_placeローカルのプレイスファイル(.rbxl/.rbxlx)をエクスペリエンスの新しいバージョンとして公開します。
DataStores(Open Cloud)
list_datastoresユニバース内の標準データストアを一覧表示します。
list_datastore_entriesデータストア内のエントリーキーを一覧表示します。scopeは任意です。-を指定すると、すべてのスコープを一覧表示します。
get_datastore_entryエントリーの値とメタデータ、または以前のrevisionを読み取ります。
set_datastore_entryエントリーを作成または上書きします(値と、任意のユーザー/属性)。
delete_datastore_entryエントリーを論理削除します(30日後に完全削除されます)。
increment_datastore_entry数値エントリーに整数をアトミックに加算します。
list_datastore_entry_revisionsエントリーのリビジョン履歴を新しい順に一覧表示します。
delete_datastore / undelete_datastoreデータストア全体を30日後に削除するよう設定するか、その設定を取り消します。
snapshot_datastoresすべてのデータストアのスナップショットを作成し、以降の各キーへの書き込みでバージョン付きバックアップを保持します。移行の前に実行してください。
list_ordered_entries順序付きデータストアのエントリーを、値の昇順または降順で一覧表示します。
get_ordered_entry順序付きデータストアのエントリーを1件読み取ります。
set_ordered_entry順序付きデータストアのエントリーに、0以上の整数を設定します(存在しない場合は作成し、存在する場合は更新します)。
increment_ordered_entry順序付きデータストアのエントリーに値をアトミックに加算します。
delete_ordered_entry順序付きデータストアのエントリーを削除します。
### メッセージングとメモリ(Open Cloud)
publish_messageMessagingService のトピックにメッセージを公開します(実行中の本番サーバーに届きます)。
memory_sorted_map_setTTL とソートキーを指定して、Memory Store のソート済みマップ項目を設定(アップサート)します。
memory_sorted_map_getMemory Store のソート済みマップ項目を読み取ります。
memory_sorted_map_listソート順でソート済みマップ項目を一覧表示します。
memory_sorted_map_deleteソート済みマップ項目を削除します。
memory_queue_add優先度と TTL を指定して、Memory Store のキューに項目を追加します。
memory_queue_readキューから項目を読み取ります。破棄の呼び出しに使用する readId が返されます。
memory_queue_discardreadId を指定して、読み取り済みのバッチを完全に削除します。
flush_memory_storeユニバース内のすべての Memory Store 構造(LIVE または TEST のスコープ)を消去し、完了まで待機します。
ユニバース、プレース、サーバー(Open Cloud)
get_universe設定済みユニバースのメタデータを取得します。
update_universeボイスチャット、プライベートサーバーの価格、プラットフォームごとの参加切り替え設定を更新します。
get_place設定済みプレースのメタデータを取得します。
update_placeプレースの名前、説明、またはサーバーサイズを更新します。
restart_servers稼働中のサーバーを最新の公開バージョンに移行します。デフォルトでは古いサーバーのみが対象で、オプションで段階的に移行できます。
list_game_servers特定のプレースバージョンを実行している稼働中サーバーの、プレイヤー数、稼働時間、ジョブ ID を取得します。
get_game_server_logsジョブ ID を指定して、稼働中サーバーのログ行を取得します。get_playtest_output の本番環境版です。
translate_textRoblox の翻訳サービスを使用して、テキストを 1 つ以上の言語に翻訳します。
Engine Instance API(Open Cloud、Studio 不要)
cloud_list_instance_children公開済みプレース内のインスタンスの子を一覧表示します。root から開始してください。
cloud_get_instance公開済みプレース内のインスタンスの詳細を読み取ります。
cloud_update_instance公開済みプレース内のインスタンスの名前を変更するか、スクリプトの Source、Enabled、RunContext を設定します。
モデレーション(Open Cloud)
list_user_restrictionsユニバースまたはプレースから過去に一度でも BAN されたユーザーを一覧表示します。
get_user_restriction特定のユーザーの BAN 状態と理由を取得します。
set_user_restrictionユーザーを BAN(理由を指定した永久または期間限定の BAN。オプションで別アカウントへの適用を除外可能)または BAN 解除します。稼働中のサーバーからユーザーを退出させます。
list_user_restriction_logsBAN および BAN 解除の変更履歴を監査ログで確認します。
シークレット(Open Cloud)
list_secretsユニバースのシークレットを一覧表示します。取得できるのはメタデータのみです。
create_secret / update_secretHttpService:GetSecret 用の値を保存します。アップロード前に、マシン上でユニバースの公開鍵を使って封印されます。
delete_secretシークレットを完全に削除します。
### 収益化とクリエイターストア(Open Cloud)
list_developer_products / get_developer_product価格と販売状態を含む開発者製品です。
create_developer_product / update_developer_product開発者製品を作成または編集します。名前、説明、Robux の価格、販売状態、アイコンを設定できます。
list_game_passes / get_game_pass価格と販売状態を含むゲームパスです。
create_game_pass / update_game_passゲームパスを作成または編集します。
search_creator_storeクリエイターストアでモデル、プラグイン、オーディオ、デカール、メッシュ、動画、フォントを検索します。insert_modelで使用するアセット ID を返します。
get_creator_store_assetストアの出品について、クリエイター、評価、価格、アセットの詳細を取得します。
get_creator_store_product自身のストア製品の価格、公開状態、制限を取得します。
グループ(Open Cloud)
get_groupグループのメタデータを取得します。
list_group_membershipsグループのメンバーとその役職を取得します。ユーザーまたは役職で絞り込めます。
list_group_rolesグループの役職とランクを取得します。
list_group_join_requests / resolve_group_join_request保留中の参加リクエストを取得し、承認または却下します。
set_group_roleメンバーに役職を割り当てるか、役職を削除します。
プラットフォーム、エンゲージメント、分析(Open Cloud)
get_userユーザーの公開プロフィールを取得します。
generate_user_thumbnailユーザーのアバターの顔写真を画像 URL として取得します。
list_inventoryユーザーのインベントリ項目を取得します。種類または ID で絞り込めます。
send_notificationユーザーにエクスペリエンスの通知を送信します(Creator Dashboard のテンプレートを使用)。
get_subscriptionユーザーのサブスクリプション製品への加入状況を取得します。
query_analytics期間を指定し、ディメンションごとに分類・絞り込みを行って、指標(DAU、セッション数、収益など)を取得します。または、ディメンションで指定可能な値を取得します。
その他すべて(Open Cloud)
open_cloud_requestキーを付加して、apis.roblox.com配下の任意のエンドポイントを呼び出します。メソッド、ホスト相対パス、クエリ、JSON ボディを指定します。従来のシステムや実験的なシステム(バッジ、ローカライズテーブル、Team Create、ゲームイベント、サムネイル、広告、プレイスのバージョン履歴、クリエイターストア製品)にはこの方法でアクセスします。キーが送信されるのは、このホストだけです。
### ツールの権限

Creator Dashboard でキーに追加できる各 API システムと、それを使用するツールです。スコープ名は、ダッシュボードや Roblox のエラーメッセージで使用されているものです。

権限(スコープ)ツール
Luau Execution (universe.place.luau-execution-session)run_luau、run_tests、run_test_file、list_tests
Places (universe-places:write、universe.place)publish_place、update_place、get_place
Universe (universe:read、universe:write)update_universe、restart_servers、translate_text、list_game_servers、get_game_server_logs
Instance (universe.place.instance)cloud_list_instance_children、cloud_get_instance、cloud_update_instance
Data Stores (universe-datastores.control、.objects、.versions)DataStores セクション:エントリ、リビジョン、ストアの削除、スナップショット
Ordered Data Stores (universe.ordered-data-store.scope.entry)list/get/set/increment/delete_ordered_entry
Memory Stores (memory-store.sorted-map、.queue、:flush)ソート済みマップおよびキューのツール、flush_memory_store
Messaging Service (universe-messaging-service:publish)publish_message
User Restrictions (universe.user-restriction)list/get/set_user_restriction、list_user_restriction_logs
Secrets (universe.secret)list/create/update/delete_secret
Assets (asset:read、asset:write)upload_asset、get_asset、update_asset、list_asset_versions、rollback_asset_version、archive_asset、restore_asset、list_asset_quotas
Asset Permissions (asset-permissions:write)grant_asset_permissions
Legacy Assets (legacy-asset:manage)download_asset
Developer Products (developer-product)list/get/create/update_developer_product
Game Passes (game-pass)list/get/create/update_game_pass
Creator Store (creator-store-product)search_creator_store、get_creator_store_asset、get_creator_store_product。作成と更新には open_cloud_request を使用
Groups (group:read、group:write)get_group、list_group_memberships、list_group_roles、list_group_join_requests、resolve_group_join_request、set_group_role
Users and Inventory (user.advanced:read、user.social:read、user.inventory-item:read)get_user、generate_user_thumbnail、list_inventory
Notifications (user.user-notification:write)send_notification
Subscriptions (universe.subscription-product.subscription:read)get_subscription
Analytics (universe.analytics:read)query_analytics
その他すべて:Ads、Game Events、Thumbnails、Creator Store saves、Legacy Badges、Legacy Develop、Legacy Followings、Legacy Game Internationalization、Legacy Groups、Legacy Localization Tables、Legacy Publish、Legacy Team Collaboration、Legacy Usersopen_cloud_request

できること

  • プロンプトからシーンを構築します。 インスタンスを作成・一括作成し、型付きプロパティを設定し、モデルを挿入してスクリプトを書き込みます。それぞれの操作は、個別に元に戻せます。
  • CI でゲームプレイをテストします。 テスト仕様を記述し、Open Cloud 経由で実際のエンジン上でヘッドレス実行して、その結果をプルリクエストのマージ条件にできます。
  • リリース前にエクスプロイトを検出します。 セキュリティレビュー担当がクライアントの入力を信頼しているサーバーハンドラーにフラグを立て、サーバー側での修正を提案します。同じチェックがすべての PR で自動的に実行されます。
  • 実際のプレイテストを実施します。 Play モードに入り、キーボードとマウスの入力を送り、キャラクターを目的の場所まで歩かせ、サーバーとクライアントの出力をまとめて読み取ってから停止します。
  • ライブのプレースを調査します。 インスタンスツリーを読み取り、名前やプロパティで検索し、スクリプトを読み取って grep し、Output ログを取得します。
  • Open Cloud を自動化します。 テスト用フィクスチャとして DataStores にデータを投入したり、プレースを公開したり、MessagingService のトピックにメッセージをブロードキャストしたり、ユーザー、グループ、インベントリを検索したりできます。

既知の制限

これらはプラットフォームの制限であり、バグではありません。あらかじめ把握していただけるよう、ここに記載しています。

  • F5 のプレイテスト停止はベストエフォートです。プラグインと実行中のゲームは別々の DataModel であるため、stop_playtest が機能しない場合があります。stop_simulation(F8)を使えば確実に停止できます。F5 のプレイテストが停止しない場合は、Studio で「Stop」を押してください。
  • プレイ中のアクションは、注入されたランナーを経由します。プレイテスト中の入力、実行時の状態、停止はプラグインから直接呼び出されるのではなく、ブリッジ経由で中継されます。
  • ヘッドレステストはサーバーコンテキストで実行されます。Open Cloud は公開済みのプレースをサーバー上で実行するため、RunService:IsStudio() は false になり、プラグイン API も利用できません。サーバーやゲームプレイのロジック、セキュリティテストには使用できますが、Studio プラグインやクライアント入力の動作には使用できません。
  • Roblox に組み込まれている Assistant とのツールの同等性は、手作業で維持されています。
  • Open Cloud のいくつかのシステムは、Roblox 側でベータ版または試験段階です(Instance API、ユーザー制限、シークレット、ゲームサーバー、分析、および open_cloud_request の背後にあるすべての機能)。仕様が変更される可能性があり、open_cloud_request は整形されていない生のレスポンスを返します。

Tripwire は、1 人が空き時間にメンテナンスしています。Issue やプルリクエストには、通常 1 週間ほどで返信します。返信が遅いからといって、対応しないという意味ではありません。


トラブルシューティング

Studio のツールがタイムアウトする、または Studio に接続されていないと表示されます。 プラグインが接続されていません。Tripwire.rbxmx をインストールして Studio を再起動し、Tripwire のツールバーボタンをクリックして、パネルの「Connect」を押してください。パネルのステータスと Output の [Tripwire v...] connected という行の両方で、接続を確認できます。

プラグインが HTTP がブロックされていると報告します。 開いているプレースで、ゲーム設定 > セキュリティ > HTTP リクエストを許可 をオンにしてください。これはセットアップ時に最もよく発生する問題です。これを有効にしないと、Studio はローカルブリッジに接続できません。

Output に、プラグインとサーバーのバージョンが一致しないと表示されます。 インストールされている .rbxmx が古くなっています。再ビルドし(npx rbxtsc && rojo build --output Tripwire.rbxmx)、Plugins フォルダーにコピーしてから Studio を再起動してください。プラグインはコンパイル済みのバージョンを出力するため、接頭辞から実際にインストールされているバージョンを確認できます。パネルのヘッダーにも同じバージョンが表示されます。

Open Cloud のツールが 401 Invalid API Key を返します。 キー自体が受け付けられていません。再生成された、期限切れになった、または一部しか貼り付けられていない可能性があります。すべてのツールで同じエラーが発生します。Creator Dashboard でキーを作成し直すか、もう一度コピーし、ROBLOX_OPEN_CLOUD_KEY を置き換えて、MCP サーバーに再接続してください。

Open Cloud のツールが 403 またはスコープエラーを返します。 キーにそのツールが必要とするスコープがない、ユニバース ID またはプレース ID が間違っている、あるいはプレースが公開されていない可能性があります。Creator Dashboard でスコープを追加し(必要なスコープはツールの説明に記載されています)、ID を確認して、MCP サーバーに再接続してください。エラーテキストは Roblox 独自のものなので、不足している項目が示されます。

run_tests が最新の変更を認識しません。 公開済みのプレースを読み込むため、先に公開してください。rojo serve が更新するのはライブ編集セッションのみであり、Open Cloud が実行する内容は更新されません。

npx がサーバーを取得できません。 Node.js がインストールされていないか、初回ダウンロード時にネットワーク接続がありません。Node をインストールするか、Releases ページからビルド済みバイナリを使い、command にそのパスを指定してください(Install の Alternatives を参照)。

サーバーがブリッジのポートが使用中だと報告します。 前のサーバーがまだポート 44331 を使用しています。以前の MCP セッションまたは古いプロセスを終了してから、再接続してください。


先行事例

Studio の実行時アプローチ(ローカルサーバーをロングポーリングするプラグインと、プレイ中に注入されるランナー)は、 boshyxd/robloxstudio-mcp と Chrrxs/robloxstudio-mcp のアイデアを参考にしています。Tripwire は独立したゼロからの実装であり、ヘッドレステストハーネス、CI セキュリティレビューアー、Open Cloud のツール群は独自に開発されたものです。


コントリビューション

バグ報告、機能のアイデア、パッチを歓迎します。セットアップ、ビルドゲート、ブランチとコミットのルールについてはCONTRIBUTING.mdを、各要素の連携についてはARCHITECTURE.mdをご覧ください。参加することで、行動規範に同意したものとみなされます。

セキュリティ上の問題を見つけましたか?公開のIssueは作成しないでください。非公開での報告方法については、SECURITY.mdをご覧ください。

変更履歴

各バージョンのリリースノートはリリースページにあります。


ライセンス

MITです。LICENSEをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。