uLoopMCP ツールリファレンス
April 26, 2026 · View on GitHub
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完了まで結果が取得できないためnullErrorCount(number | null): エラーの総数。ForceRecompile=true時はnullWarningCount(number | null): 警告の総数。ForceRecompile=true時はnullErrors(array | null): コンパイルエラーの配列。ForceRecompile=true時はnullMessage(string): エラーメッセージFile(string): エラーが発生したファイルパスLine(number): エラーが発生した行番号
Warnings(array | null): コンパイル警告の配列。ForceRecompile=true時はnullMessage(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に直接注入。wasPressedThisFrameやMouse.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): 操作対象のキー名
関連ドキュメント
- メインREADME - プロジェクト概要とセットアップ
- アーキテクチャドキュメント - 技術アーキテクチャの詳細
- 変更履歴 - バージョン履歴と更新