Build the unity-mcp-cli TypeScript CLI tool and link it globally for terminal use.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Change the live Unity scene with RQL set/call: bulk edits in one all-or-nothing, undoable call, saved to disk; dry_run previews.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Change the live Unity Editor scene with an RQL query whose last stage is set or call. All-or-nothing: every target and value is checked before anything is written; a failure changes nothing. Undoable in the Editor (Ctrl+Z). Changed assets, scenes and the open prefab are saved to disk automatically; an untitled scene needs SaveAs(path). dry_run=true returns the receipt ($ref, member, old, new) without changing anything. Do exactly the change requested; a read-only member fails with readonly-member instead of being approximated. set path = expr, ... assign members (paths may go through structs: set transform.position.y = transform.position.y + 1) call Method(args) invoke a method the tools expose Examples: objects | where name == "Player" | set transform.position = "(0, 1, 0)" objects | get components | where $ is Light | set intensity = intensity * 2, color = "#ffcc88" objects | where tag == "Enemy" | set active = false unity.asset("Assets/Mats/Red.mat") | set properties["_Color"] = "(1, 0, 0, 1)" objects | where name == "Spawner" | set targets = append(targets, ref("GameObject#1234")) Create / add / remove (call; the receipt's result column holds the new object's $ref for follow-up queries): editor | call CreateGameObject("Props") new root GameObject editor | call CreateGameObject("Crate", ref("GameObject#1234"), "Cube") child of a parent, optional primitive objects | where name == "Crate" | call AddComponent("Rigidbody") add a component by type name objects | where name == "Old" | call Destroy() remove a GameObject (components: get components | where $ is X | call Destroy()) objects | where name == "Lamp" | set transform.parent = ref("GameObject#1234") reparent (keeps the world position) objects | where name == "Crate" | call Duplicate() copy next to it (returns the copy) Scenes, prefabs, assets, Editor state: editor | call OpenScene("Assets/Scenes/Level.unity") editor | call NewScene("Assets/Scenes/New.unity") scenes | where path == "" | call SaveAs("Assets/Scenes/New.unity") scenes | where name == "Level" | call SetActive() editor | call InstantiatePrefab("Assets/Prefabs/Enemy.prefab", ref("GameObject#1234"), "(0, 0, 5)") objects | where name == "Crate" | call SaveAsPrefab("Assets/Prefabs/Crate.prefab") editor | call OpenPrefab("Assets/Prefabs/Enemy.prefab") then prefab | recurse children | … then editor | call ClosePrefab() editor | call CreateMaterial("Assets/Mats/Glow.mat") editor | call MoveAsset("Assets/A.mat", "Assets/Mats/A.mat") editor | set selection = [ref("GameObject#1234")] editor | set isPlaying = true profiler | call Start() profiler | call Save("Logs/profile.json") (read: profiler | select memory frame) Object literals build values: set settings = {speed: 2, "$type": "FastSettings"}. At most 20 targets per call.
Query part: the RQL of rql-query (full guide and the sources in its description); unity.assets("t:Material"), unity.asset(path), unity.find("Name"), ref("Light#1234"). Stages: where, select, sort, first N, get <path>, recurse children. Operators: == != < > and or not, contains, starts-with, $ is Light. Paths a.b.c, list[0], map["key"]. Vectors/colors as "(1, 2, 3)" or "#ff8800"; enums as strings.
unity-mcp-cli run-tool rql-mutate --input '{
"query": "string_value",
"dry_run": false
}'
For complex input (multi-line strings, code), save the JSON to a file and use:
unity-mcp-cli run-tool rql-mutate --input-file args.jsonOr pipe via stdin (recommended):
unity-mcp-cli run-tool rql-mutate --input-file - <<'EOF' {"param": "value"} EOF
If unity-mcp-cli is not found, either install it globally (npm install -g unity-mcp-cli) or use npx unity-mcp-cli instead.
Read the /unity-initial-setup skill for detailed installation instructions.
| Name | Type | Required | Description |
|---|---|---|---|
query | string | Yes | RQL query ending with a set or call stage, e.g. objects |
dry_run | boolean | No | true = preview the receipt without changing anything |
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"dry_run": {
"type": "boolean"
}
},
"required": [
"query"
]
}
This tool does not return structured output.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Build the unity-mcp-cli TypeScript CLI tool and link it globally for terminal use.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Save and quit an editor that a CLI session started (`unity-mcp-cli exec`, `open --headless`). Needs the session lease nonce; an editor the user opened is never closed. Used by `unity-mcp-cli close`.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Review and resolve PR comments from GitHub. Validates each comment, fixes legitimate issues.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Install a Unity package from the registry, a Git URL, or a local path. Modifies `manifest.json` and triggers package resolution; may also trigger a domain reload — the final result is delivered after the reload via the request's `requestId`. Use 'package-search' / 'package-list' for discovery first.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
List all UPM packages installed in the Unity project — name, version, source, description. Optionally filter by source (registry, embedded, local, git, built-in, local tarball), by name/display/description substring, and by direct-dependency-only.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Uninstall a UPM package from the Unity project. Modifies `manifest.json` and may trigger a domain reload — the final result is delivered after the reload via the request's `requestId`. Built-in packages and packages that are dependencies of others cannot be removed. Use 'package-list' to list installed packages first.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.