uLoopMCP ツールリファレンス

April 26, 2026 · View on GitHub

English

uLoopMCP ツールリファレンス

このドキュメントでは、全uLoopMCPツールの詳細仕様を提供します。

共通レスポンス形式

すべてのUnity MCPツールは以下の共通要素を持ちます:

共通レスポンスプロパティ

すべてのツールには以下のプロパティが自動的に含まれます:

  • Ver (string): CLIとの互換性チェック用のuLoopMCPサーバーバージョン

Unity コアツール

1. compile

  • 説明: AssetDatabase.Refresh()を実行後、コンパイルを行います。詳細なタイミング情報付きでコンパイル結果を返します。
  • パラメータ:
    • ForceRecompile (boolean): 強制再コンパイルを実行するかどうか(デフォルト: false)
    • WaitForDomainReload (boolean): Domain Reload完了まで待機するかどうか(デフォルト: false)
  • レスポンス:
    • Success (boolean | null): コンパイルが成功したかどうか。ForceRecompile=true時はDomain Reload完了まで結果が取得できないためnull
    • ErrorCount (number | null): エラーの総数。ForceRecompile=true時はnull
    • WarningCount (number | null): 警告の総数。ForceRecompile=true時はnull
    • Errors (array | null): コンパイルエラーの配列。ForceRecompile=true時はnull
      • Message (string): エラーメッセージ
      • File (string): エラーが発生したファイルパス
      • Line (number): エラーが発生した行番号
    • Warnings (array | null): コンパイル警告の配列。ForceRecompile=true時はnull
      • Message (string): 警告メッセージ
      • File (string): 警告が発生したファイルパス
      • Line (number): 警告が発生した行番号
    • Message (string): 追加情報のためのオプションメッセージ
    • ProjectRoot (string): Unityプロジェクトのルートパス。WaitForDomainReload=true時のみセットされる

2. get-logs

  • 説明: フィルタリングおよび高度な検索機能付きでUnityコンソールからログ情報を取得します
  • パラメータ:
    • LogType (enum): フィルタするログタイプ - "Error", "Warning", "Log", "All"(デフォルト: "All")
    • MaxCount (number): 取得するログの最大数(デフォルト: 100)
    • SearchText (string): ログメッセージ内で検索するテキスト(空の場合はすべて取得)(デフォルト: "")
    • UseRegex (boolean): 検索に正規表現を使用するかどうか(デフォルト: false)
    • SearchInStackTrace (boolean): スタックトレース内も検索対象に含めるかどうか(デフォルト: false)
    • IncludeStackTrace (boolean): スタックトレースを表示するかどうか(デフォルト: false)
  • レスポンス:
    • TotalCount (number): 利用可能なログの総数
    • DisplayedCount (number): このレスポンスで表示されるログの数
    • LogType (string): 使用されたログタイプフィルタ
    • MaxCount (number): 使用された最大数制限
    • SearchText (string): 使用された検索テキストフィルタ
    • IncludeStackTrace (boolean): スタックトレースが含まれているかどうか
    • Logs (array): ログエントリの配列
      • Type (string): ログタイプ(Error, Warning, Log)
      • Message (string): ログメッセージ
      • StackTrace (string): スタックトレース(IncludeStackTraceがtrueの場合)

3. run-tests

  • 説明: Unity Test Runnerを実行し、包括的なレポート付きでテスト結果を取得します
  • パラメータ:
    • FilterType (enum): テストフィルタのタイプ - "all"(0), "exact"(1), "regex"(2), "assembly"(3)(デフォルト: "all")
    • FilterValue (string): フィルタ値(FilterTypeがall以外の場合に指定)(デフォルト: "")
      • exact: 個別テストメソッド名(完全一致)(例:io.github.hatayama.uLoopMCP.ConsoleLogRetrieverTests.GetAllLogs_WithMaskAllOff_StillReturnsAllLogs)
      • regex: クラス名または名前空間(正規表現パターン)(例:io.github.hatayama.uLoopMCP.ConsoleLogRetrieverTests, io.github.hatayama.uLoopMCP)
      • assembly: アセンブリ名(例:uLoopMCP.Tests.Editor)
    • TestMode (enum): テストモード - "EditMode"(0), "PlayMode"(1)(デフォルト: "EditMode")
      • PlayMode注意: PlayModeテスト実行時は、一時的にdomain reloadが無効化されます
    • SaveBeforeRun (boolean): 未保存のロード済みScene変更と現在のPrefab Stage変更を保存してからテストを実行(デフォルト: false)
  • レスポンス:
    • Success (boolean): テスト実行が成功したかどうか
    • Message (string): テスト実行メッセージ
    • CompletedAt (string): テスト実行完了タイムスタンプ(ISO形式)
    • TestCount (number): 実行されたテストの総数
    • PassedCount (number): 合格したテストの数
    • FailedCount (number): 失敗したテストの数
    • SkippedCount (number): スキップされたテストの数
    • XmlPath (string): NUnit XML結果ファイルのパス(テスト失敗時に自動保存)。XMLファイルは {project_root}/.uloop/outputs/TestResults/ フォルダに保存されます

4. clear-console

  • 説明: クリーンな開発ワークフローのためにUnityコンソールログをクリアします
  • パラメータ:
    • AddConfirmationMessage (boolean): クリア後に確認ログメッセージを追加するかどうか(デフォルト: false)
  • レスポンス:
    • Success (boolean): コンソールクリア操作が成功したかどうか
    • ClearedLogCount (number): コンソールからクリアされたログの数
    • ClearedCounts (object): タイプ別のクリアされたログの内訳
      • ErrorCount (number): クリアされたエラーログの数
      • WarningCount (number): クリアされた警告ログの数
      • LogCount (number): クリアされた情報ログの数
    • Message (string): クリア操作結果を説明するメッセージ
    • ErrorMessage (string): 操作が失敗した場合のエラーメッセージ

5. find-game-objects

  • 説明: 高度な検索条件(コンポーネントタイプ、タグ、レイヤーなど)で複数のGameObjectを検索します
  • パラメータ:
    • NamePattern (string): 検索するGameObject名のパターン(デフォルト: "")
    • SearchMode (enum): 検索モード - "Exact", "Path", "Regex", "Contains", "Selected"(デフォルト: "Exact")
    • RequiredComponents (array): GameObjectが持つ必要のあるコンポーネントタイプ名の配列(デフォルト: [])
    • Tag (string): タグフィルター(デフォルト: "")
    • Layer (number): レイヤーフィルター(デフォルト: null)
    • IncludeInactive (boolean): 非アクティブなGameObjectを含めるかどうか(デフォルト: false)
    • MaxResults (number): 返す結果の最大数(デフォルト: 20)
    • IncludeInheritedProperties (boolean): 継承プロパティを含めるかどうか(デフォルト: false)
  • レスポンス:
    • results (array): 見つかったGameObjectの配列
      • name (string): GameObject名
      • path (string): 完全な階層パス
      • isActive (boolean): GameObjectがアクティブかどうか
      • tag (string): GameObjectタグ
      • layer (number): GameObjectレイヤー
      • components (array): GameObject上のコンポーネントの配列
        • type (string): コンポーネントタイプ名
        • fullTypeName (string): 完全なアセンブリ修飾タイプ名
        • properties (array): コンポーネントプロパティ(IncludeInheritedPropertiesがtrueの場合)
    • totalFound (number): 見つかったGameObjectの総数
    • errorMessage (string): 検索が失敗した場合のエラーメッセージ
    • resultsFilePath (string): 結果がファイルにエクスポートされた場合のファイルパス
    • message (string): 操作メッセージ
    • processingErrors (array): シリアライズに失敗したオブジェクトの配列
      • gameObjectName (string): 失敗したGameObjectの名前
      • gameObjectPath (string): 失敗したGameObjectのパス
      • error (string): エラーの説明

Unity 検索・発見ツール

6. get-hierarchy

  • 説明: Unity階層構造をネストされたJSON形式で取得します
  • パラメータ:
    • IncludeInactive (boolean): 階層結果に非アクティブなGameObjectを含めるかどうか(デフォルト: true)
    • MaxDepth (number): 階層を探索する最大深度(無制限深度の場合は-1)(デフォルト: -1)
    • RootPath (string): 階層探索を開始するルートGameObjectパス(すべてのルートオブジェクトの場合は空/null)(デフォルト: null)
    • IncludeComponents (boolean): 階層内の各GameObjectのコンポーネント情報を含めるかどうか(デフォルト: true)
    • IncludePaths (boolean): ノードのパス情報を含めるかどうか(デフォルト: false)
    • UseComponentsLut (string): コンポーネント用LUTの使用 - "auto", "true", "false"(デフォルト: "auto")
    • UseSelection (boolean): 現在選択中のGameObjectをルートとして使用するかどうか。trueの場合、RootPathは無視されます(デフォルト: false)
  • レスポンス:
    • message (string): クライアントがJSONファイルを参照するための案内メッセージ
    • hierarchyFilePath (string): 階層データが保存されたファイルパス(例: "{project_root}/.uloop/outputs/HierarchyResults/hierarchy_2025-07-10_21-30-15.json")。エクスポートされたJSONファイルには hierarchy(GameObjectのネスト配列)と context(シーン情報、ノード数、最大深度)が含まれる

7. execute-dynamic-code

  • 説明: Unity Editor内で動的C#コードを実行します。セキュリティレベルに応じてAPI利用を制限し、using文の自動処理やエラーメッセージの改善機能を提供します
  • パラメータ:
    • Code (string): 実行するC#コード(デフォルト: "")
    • Parameters (Dictionary<string, object>): 実行時パラメータ(デフォルト: {})
    • CompileOnly (boolean): コンパイルのみ実行(実行はしない)(デフォルト: false)
  • レスポンス:
    • Success (boolean): 実行が成功したかどうか
    • Result (string): 実行結果
    • Logs (array): ログメッセージの配列
    • CompilationErrors (array): コンパイルエラーの配列(存在する場合)
      • Message (string): エラーメッセージ
      • Line (number): エラーが発生した行番号
      • Column (number): エラーが発生した列番号
      • ErrorCode (string): コンパイラーエラーコード(CS0103など)
      • Hint (string): エラー解決のためのオプションヒント
      • Suggestions (array of string): 修正候補(例: usingの追加や完全修飾名の使用)
      • Context (string): エラー周辺のコード行とキャレットポインタ
      • PointerColumn (number): キャレット描画用のポインタカラム(1-based)
    • ErrorMessage (string): エラーメッセージ(失敗時)
    • SecurityLevel (string): 現在のセキュリティレベル("Disabled", "Restricted", "FullAccess")
    • UpdatedCode (string): 更新されたコード(修正適用後)
    • DiagnosticsSummary (string): 診断情報のサマリー(ユニークエラー数、総数、最初のエラー概要)
    • Diagnostics (array): リッチクライアント向けの構造化された診断情報(CompilationErrorsと同じ構造)

8. focus-window

  • 説明: macOSおよびWindowsでUnity Editorウィンドウを前面に表示します
  • パラメータ: なし
  • レスポンス:
    • Success (boolean): 操作が成功したかどうか
    • Message (string): 操作結果メッセージ
    • ErrorMessage (string): 操作が失敗した場合のエラーメッセージ

9. screenshot

  • 説明: Unity EditorWindowのスクリーンショットを撮影してPNG画像として保存します。名前による柔軟なマッチングモードで任意のEditorWindowをキャプチャ可能です
  • パラメータ:
    • WindowName (string): キャプチャするウィンドウ名(例: "Game", "Scene", "Console", "Inspector", "Project", "Hierarchy")(デフォルト: "Game")
    • ResolutionScale (number): キャプチャ画像の解像度スケール、0.1〜1.0(デフォルト: 1)
    • MatchMode (enum): ウィンドウ名のマッチングモード(すべて大文字小文字を区別しない) - "exact", "prefix", "contains"(デフォルト: "exact")
      • exact: ウィンドウ名が完全に一致する必要があります
      • prefix: ウィンドウ名が入力で始まる必要があります
      • contains: ウィンドウ名に入力が含まれている必要があります
    • OutputDirectory (string): スクリーンショット保存先のディレクトリパス。空の場合はデフォルトパス(.uloop/outputs/Screenshots/)を使用。絶対パスも指定可能(デフォルト: "")
  • レスポンス:
    • ScreenshotCount (number): キャプチャされたウィンドウの数
    • Screenshots (array): スクリーンショット情報の配列
      • ImagePath (string): 保存されたPNGファイルの絶対パス
      • FileSizeBytes (number): 保存されたファイルのサイズ(バイト)
      • Width (number): キャプチャ画像の幅(ピクセル)
      • Height (number): キャプチャ画像の高さ(ピクセル)

10. control-play-mode

  • 説明: Unity Editorのプレイモードを制御します(再生/停止/一時停止)
  • パラメータ:
    • Action (enum): 実行するアクション - "Play", "Stop", "Pause"(デフォルト: "Play")
      • Play: プレイモードを開始(一時停止からの再開も含む)
      • Stop: プレイモードを終了し、エディットモードに戻る
      • Pause: プレイモードのまま一時停止する
  • レスポンス:
    • IsPlaying (boolean): Unityが現在プレイモードかどうか
    • IsPaused (boolean): プレイモードが一時停止中かどうか
    • Message (string): 実行されたアクションの説明

11. simulate-mouse-ui

  • 説明: PlayMode中のUI要素に対してマウスクリック・長押し・ドラッグをシミュレーション。EventSystemとExecuteEventsを使ってポインタイベントを直接ディスパッチするため、旧・新Input Systemの両方に依存せず動作。Input Systemを読むゲームロジック(Mouse.current.leftButton.wasPressedThisFrame等)には simulate-mouse-input を使用
  • パラメータ:
    • Action (enum): マウスアクション - "Click", "Drag", "DragStart", "DragMove", "DragEnd", "LongPress"(デフォルト: "Click")
      • Click: (X, Y)でクリック。PointerDown → PointerUp → PointerClick を発火
      • LongPress: (X, Y)でDuration秒間押し続けてからリリース。PointerClickは発火しない
      • Drag: (FromX, FromY)から(X, Y)へのワンショットドラッグ
      • DragStart: (X, Y)でドラッグを開始しホールド
      • DragMove: 現在位置から(X, Y)へ指定速度でアニメーション移動
      • DragEnd: (X, Y)へ移動後、ドラッグをリリース
    • X (number): ターゲットX座標(スクリーンピクセル、原点: 左上)(デフォルト: 0)
    • Y (number): ターゲットY座標(スクリーンピクセル、原点: 左上)(デフォルト: 0)
    • FromX (number): Dragアクションの開始X座標(デフォルト: 0)
    • FromY (number): Dragアクションの開始Y座標(デフォルト: 0)
    • DragSpeed (number): ドラッグ速度(ピクセル/秒)、0で即時移動(デフォルト: 2000)
    • Duration (number): LongPressアクションのホールド秒数(デフォルト: 0.5)
    • Button (enum): マウスボタン - "Left", "Right", "Middle"(デフォルト: "Left")
  • レスポンス:
    • Success (boolean): アクションが正常に完了したかどうか
    • Message (string): 実行されたアクションの説明
    • Action (string): 実行されたアクション
    • HitGameObjectName (string): ヒットしたUI要素の名前(ヒットなしの場合null)
    • PositionX (number): 使用されたX座標
    • PositionY (number): 使用されたY座標
    • EndPositionX (number): 終了X座標(Dragアクション用)
    • EndPositionY (number): 終了Y座標(Dragアクション用)

12. simulate-mouse-input

  • 説明: Input System経由でPlayMode中のマウス入力をシミュレーション。ボタンクリック、マウスデルタ、スクロールホイールを Mouse.current に直接注入。wasPressedThisFrameMouse.current.delta等を読むゲームロジック向け。Input Systemパッケージ導入時のみ利用可能で、Player SettingsのActive Input Handlingを Input System Package (New) または Both に設定する必要がある。IPointerClickHandler等のUI要素には simulate-mouse-ui を使用
  • パラメータ:
    • Action (enum): マウス入力アクション - "Click", "LongPress", "MoveDelta", "SmoothDelta", "Scroll"(デフォルト: "Click")
      • Click: ボタンのpress+releaseを注入し、wasPressedThisFrameがtrueを返すようにする
      • LongPress: Duration秒間ボタンをホールド
      • MoveDelta: マウスデルタを注入(ワンショット、FPSカメラ操作等)
      • SmoothDelta: Duration秒かけて滑らかにマウスデルタを注入(人間的なカメラ旋回)
      • Scroll: スクロールホイールを注入(ホットバー切替、ズーム等)
    • X (number): ターゲットX座標(スクリーンピクセル、原点: 左上)。ClickとLongPressで使用(デフォルト: 0)
    • Y (number): ターゲットY座標(スクリーンピクセル、原点: 左上)。ClickとLongPressで使用(デフォルト: 0)
    • Button (enum): マウスボタン - "Left", "Right", "Middle"(デフォルト: "Left")。ClickとLongPressで使用
    • Duration (number): LongPressのホールド秒数、またはClickの最小ホールド時間。0=ワンショットタップ(デフォルト: 0)
    • DeltaX (number): MoveDeltaアクションのデルタX(ピクセル)。正=右(デフォルト: 0)
    • DeltaY (number): MoveDeltaアクションのデルタY(ピクセル)。正=上(デフォルト: 0)
    • ScrollX (number): Scrollアクションの水平スクロールデルタ(デフォルト: 0)
    • ScrollY (number): Scrollアクションの垂直スクロールデルタ。正=上、通常1ノッチ=120(デフォルト: 0)
  • レスポンス:
    • Success (boolean): アクションが正常に完了したかどうか
    • Message (string): 実行されたアクションの説明
    • Action (string): 実行されたアクション
    • Button (string): 使用されたボタン(Click/LongPress用)
    • PositionX (number, nullable): 使用されたX座標(位置を使わないアクションではnull)
    • PositionY (number, nullable): 使用されたY座標(位置を使わないアクションではnull)

13. simulate-keyboard

  • 説明: Input System経由でPlayMode中のキーボード入力をシミュレーション。単発のキータップ、長押し、複数キーの同時押しに対応。Input Systemパッケージ導入時のみ利用可能で、Player SettingsのActive Input Handlingを Input System Package (New) または Both に設定する必要がある。ゲームコードがInput System API(例: Keyboard.current[Key.W].isPressed)で入力を読み取っている必要があり、レガシーの Input.GetKey() には非対応
  • パラメータ:
    • Action (enum): キーボードアクション - "Press", "KeyDown", "KeyUp"(デフォルト: "Press")
      • Press: ワンショットキータップ(KeyDown→KeyUp)。Durationで長押し時間を指定可能
      • KeyDown: KeyUpで明示的に解放するまでキーを押し続ける
      • KeyUp: KeyDownで押下中のキーを解放
    • Key (string): Input SystemのKey enumに対応するキー名(例: "W", "Space", "LeftShift", "Enter")。大文字小文字を区別しない
    • Duration (number): Pressアクションのホールド秒数、0でワンショットタップ(デフォルト: 0)。KeyDown/KeyUpでは無視される
  • レスポンス:
    • Success (boolean): アクションが正常に完了したかどうか
    • Message (string): 実行されたアクションの説明
    • Action (string): 実行されたアクション
    • KeyName (string, nullable): 操作対象のキー名

関連ドキュメント