Unity CLI Loop 是 AI Skill Hub 本期精选MCP工具之一。综合评分 7.5 分,整体质量较高。我们推荐使用将其纳入你的 AI 工具库,帮助提升工作效率。
让 AI 驱动 Unity,从编辑器到游戏模式。
Unity CLI Loop 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
让 AI 驱动 Unity,从编辑器到游戏模式。
Unity CLI Loop 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/hatayama/unity-cli-loop
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"unity-cli-loop": {
"command": "npx",
"args": ["-y", "unity-cli-loop"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 Unity CLI Loop 执行以下任务... Claude: [自动调用 Unity CLI Loop MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"unity_cli_loop": {
"command": "npx",
"args": ["-y", "unity-cli-loop"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
[!WARNING] The following software is required - Unity 2022.3 or later - Node.js 22.0 or later - Required for CLI execution - Install via the official site or your preferred version manager
Select Window > Unity CLI Loop > Settings. A dedicated window will open — confirm that the CLI button is highlighted in blue.
Press the Install CLI button. <img width="277" height="306" alt="1" src="https://github.com/user-attachments/assets/0e25c327-73bf-4af6-997b-eebb3c26b372" />
If you see the following display, the installation was successful. <img width="272" height="309" alt="2" src="https://github.com/user-attachments/assets/ec14f73b-53be-4435-af95-84bb9125e3e4" />
<details> <summary>To install from terminal</summary>
npm install -g uloop-cli
See uloop-cli on npm for details. </details>
Select your target (Claude Code, Codex, etc.) and press the Install Skills button. <img width="272" height="306" alt="3" src="https://github.com/user-attachments/assets/492e9680-726a-425b-8bf1-e5983f4f15a5" />
<details> <summary>To install from terminal</summary>
```bash
uloop skills install --claude
uloop skills install --codex
uloop skills install --claude --global
</details>
That's it! After installing Skills, LLM tools can automatically handle instructions like these:
| Your Instruction | Skill Used by LLM Tools |
|---|---|
| "Launch Unity for this project" | `/uloop-launch` |
| "Fix the compile errors" | `/uloop-compile` |
| "Run the tests and tell me why they failed" | `/uloop-run-tests` + `/uloop-get-logs` |
| "Check the scene hierarchy" | `/uloop-get-hierarchy` |
| "Play the game and bring Unity to the front" | `/uloop-control-play-mode` + `/uloop-focus-window` |
| "Bulk-update prefab parameters" | `/uloop-execute-dynamic-code` |
| "Take a screenshot of Game View and adjust the UI layout" | `/uloop-screenshot` + `/uloop-execute-dynamic-code` |
| "Record my gameplay input" | `/uloop-record-input` |
| "Replay the recorded input" | `/uloop-replay-input` |
<details>
<summary>All 16 Bundled Skills</summary>
- `/uloop-launch` - Launch Unity with correct version
- `/uloop-compile` - Execute compilation
- `/uloop-get-logs` - Get console logs
- `/uloop-run-tests` - Run tests
- `/uloop-clear-console` - Clear console
- `/uloop-focus-window` - Bring Unity Editor to front
- `/uloop-get-hierarchy` - Get scene hierarchy
- `/uloop-find-game-objects` - Find GameObjects
- `/uloop-screenshot` - Capture EditorWindow
- `/uloop-simulate-mouse-ui` - Simulate mouse click, long-press, and drag on PlayMode UI elements
- `/uloop-simulate-mouse-input` - Simulate mouse input in PlayMode via Input System
- `/uloop-simulate-keyboard` - Simulate keyboard input in PlayMode via Input System
- `/uloop-record-input` - Record keyboard and mouse input during PlayMode
- `/uloop-replay-input` - Replay recorded input during PlayMode
- `/uloop-control-play-mode` - Control Play Mode
- `/uloop-execute-dynamic-code` - Execute dynamic C# code
</details>
<details>
<summary>Direct CLI Usage (Advanced)</summary>
You can also call the CLI directly without using Skills:
bash
uloop launch -p Android
uloop compile --wait-for-domain-reload true
Performs AssetDatabase.Refresh() and then compiles, returning the results. Can detect errors and warnings that built-in linters cannot find. You can choose between incremental compilation and forced full compilation. With WaitForDomainReload=true, results are returned after Domain Reload completes, regardless of the ForceRecompile value.
→ Execute compile, analyze error and warning content
→ Automatically fix relevant files
→ Verify with compile again
Take a screenshot of any EditorWindow as a PNG. Specify the window name (the text displayed in the title bar/tab) to capture. When multiple windows of the same type are open (e.g., 3 Inspector windows), all windows are saved with numbered filenames. Supports three matching modes: exact (default), prefix, and contains - all case-insensitive.
→ screenshot (WindowName: "Console")
→ Save Console window state as PNG
→ Provide visual feedback to AI
uloop completion --install
<p align="center"> <img height="450" alt="logo-black-bg" src="https://github.com/user-attachments/assets/fca3047f-9042-4bf9-83bd-58b03f061082" /><br> <sub>(Logo inspired by Daft Punk's <i>Discovery</i> album art)</sub> </p>
Let an AI agent compile, test, and operate your Unity project from popular LLM tools via CLI.
Designed to keep AI-driven development loops running autonomously inside your existing Unity projects.
Note: This project was formerly known as uLoopMCP.
For detailed specifications of all tools (parameters, responses, examples), see TOOL_REFERENCE.md.
Unity CLI Loop enables efficient development of project-specific tools without requiring changes to the core package. The type-safe design allows for reliable custom tool implementation in minimal time. (If you ask AI, they should be able to make it for you soon ✨)
You can publish your extension tools on GitHub and reuse them across other projects. See uLoopMCP-extensions-sample for an example.
[!TIP] For AI-assisted development: Detailed implementation guides are available in .claude/rules/mcp-tools.md for tool development and .claude/rules/cli.md for CLI/Skills development. These guides are automatically loaded by Claude Code when working in the relevant directories.
[!IMPORTANT] Security Settings Project-specific tools require enabling Allow Third Party Tools in the uLoopMCP window "Security Settings". When developing custom tools that involve dynamic code execution, also consider the Dynamic Code Security Level setting.
<details> <summary>View Implementation Guide</summary>
Step 1: Create Schema Class (define parameters):
using System.ComponentModel;
public class MyCustomSchema : BaseToolSchema
{
[Description("Parameter description")]
public string MyParameter { get; set; } = "default_value";
[Description("Example enum parameter")]
public MyEnum EnumParameter { get; set; } = MyEnum.Option1;
}
public enum MyEnum
{
Option1 = 0,
Option2 = 1,
Option3 = 2
}
Step 2: Create Response Class (define return data):
public class MyCustomResponse : BaseToolResponse
{
public string Result { get; set; }
public bool Success { get; set; }
public MyCustomResponse(string result, bool success)
{
Result = result;
Success = success;
}
// Required parameterless constructor
public MyCustomResponse() { }
}
Step 3: Create Tool Class:
using System.Threading;
using System.Threading.Tasks;
[McpTool(Description = "Description of my custom tool")] // ← Auto-registered with this attribute
public class MyCustomTool : AbstractUnityTool<MyCustomSchema, MyCustomResponse>
{
public override string ToolName => "my-custom-tool";
// Executed on main thread
protected override Task<MyCustomResponse> ExecuteAsync(MyCustomSchema parameters, CancellationToken cancellationToken)
{
// Type-safe parameter access
string param = parameters.MyParameter;
MyEnum enumValue = parameters.EnumParameter;
// Check for cancellation before long-running operations
cancellationToken.ThrowIfCancellationRequested();
// Implement custom logic here
string result = ProcessCustomLogic(param, enumValue);
bool success = !string.IsNullOrEmpty(result);
// For long-running operations, periodically check for cancellation
// cancellationToken.ThrowIfCancellationRequested();
return Task.FromResult(new MyCustomResponse(result, success));
}
private string ProcessCustomLogic(string input, MyEnum enumValue)
{
// Implement custom logic
return $"Processed '{input}' with enum '{enumValue}'";
}
}
[!IMPORTANT] Important Notes: - Thread Safety: Tools execute on Unity's main thread, so Unity API calls are safe without additional synchronization.
Please also refer to Custom Tool Samples.
</details>
UserSettings/UnityMcpSettings.json stores per-user editor session state and should always remain local-only.
The .uloop/ directory at the project root stores CLI cache, tool registry, and runtime outputs. Most of its contents are local-only, but some files can optionally be git-tracked for team sharing.
| File | Purpose | Git-track? |
|---|---|---|
settings.permissions.json | Team-wide security policy (third-party tool access, dynamic code security level) | Optional |
settings.tools.json | Per-tool enable/disable preferences | Optional |
tools.json | Auto-generated MCP tool registry | No |
outputs/ | Runtime outputs (test results, screenshots, hierarchy dumps) | No |
[!TIP] Recommended.gitignorepatternThis ignores auto-generated files and runtime outputs while allowing team-shared configuration to be tracked. Adjust the> **/.uloop/* > !**/.uloop/settings.permissions.json > !**/.uloop/settings.tools.json >!lines to match your team's needs — you can remove either line if you don't need to share that file.
1. Open Unity Editor 2. Open Window > Package Manager 3. Click the "+" button 4. Select "Add package from git URL" 5. Enter the following URL:
https://github.com/hatayama/unity-cli-loop.git?path=/Packages/src
If you installed via git URL before v1.0.0: The repository was renamed fromuLoopMCPtounity-cli-loopin v1.0.0. Please update yourmanifest.json:The old URL still works via GitHub redirect, but updating is recommended. OpenUPM users are not affected.> Old: https://github.com/hatayama/uLoopMCP.git?path=/Packages/src > New: https://github.com/hatayama/unity-cli-loop.git?path=/Packages/src >
1. Open Project Settings window and go to Package Manager page 2. Add the following entry to the Scoped Registries list:
Name: OpenUPM
URL: https://package.openupm.com
Scope(s): io.github.hatayama.uloopmcp
[!NOTE]com.unity.inputsystemis now an optional dependency. Install it only if you want Input System features such assimulate-keyboard,simulate-mouse-input,record-input,replay-input, and the Recordings window.com.unity.test-frameworkis also optional. Install it only if you want therun-teststool to execute Unity Test Runner.
该项目提供了一个开源的 MCP 工具,支持 Unity 的 AI 驱动功能,虽然代码质量较高,但仍需要进一步优化和测试。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
经综合评估,Unity CLI Loop 在MCP工具赛道中表现稳健,质量良好。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。
| 原始名称 | unity-cli-loop |
| 原始描述 | 开源MCP工具:Let AI Drive Unity, from Editor to Play Mode.。⭐368 · C# |
| Topics | aiautomationclimcpunityc# |
| GitHub | https://github.com/hatayama/unity-cli-loop |
| License | MIT |
| 语言 | C# |
收录时间:2026-05-25 · 更新时间:2026-05-26 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端