Build the unity-mcp-cli TypeScript CLI tool and link it globally for terminal use.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Compiles and runs C# in the Unity Editor (Roslyn): plain statements with the last expression as the result, or a full class with a static method. See the skill body for the modes, usings/include and Unity object parameters.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
GameObject.Find("Player").name). Own using lines, local classes and functions are allowed; await works. Usings for System, LINQ, UnityEngine, UnityEditor and AIGD are already there; an unknown type name is imported automatically when exactly one namespace has it.csharpCode declares class className with a static method methodName, that method runs.isMethodBody=true forces snippet mode.Compile errors point at your own lines (snippet.cs(2,5)).
usings: extra namespaces, e.g. ["MyGame.Gameplay"].include: helper .cs files or folders (recursive), relative to <Project>/.ai-game-dev/snippets, compiled with the snippet.Parameters become the snippet's variables (or the method's arguments, in order):
UnityEngine.GameObject — resolves an actual GameObject from value {"instanceID": N}, {"name": "..."}, or {"path": "..."}.UnityEngine.Component (or any component subtype) — resolves from {"instanceID": N}.AIGD.GameObjectRef — passes a GameObjectRef POCO directly; call goRef.FindGameObject() to resolve it.AIGD.ComponentRef — passes a ComponentRef POCO.AIGD.ObjectRef — passes a base ObjectRef POCO.unity-mcp-cli run-tool script-execute --input '{
"csharpCode": "string_value",
"className": "string_value",
"methodName": "string_value",
"parameters": "string_value",
"isMethodBody": false,
"usings": "string_value",
"include": "string_value"
}'
For complex input (multi-line strings, code), save the JSON to a file and use:
unity-mcp-cli run-tool script-execute --input-file args.jsonOr pipe via stdin (recommended):
unity-mcp-cli run-tool script-execute --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 |
|---|---|---|---|
csharpCode | string | Yes | C# code. Snippet: 'var go = GameObject.Find("Player");\ngo.transform.position'. Full: 'public class Script { public static int Main() { return 42; } }'. |
className | string | No | Full mode: the class whose static method runs (namespace-qualified or not). |
methodName | string | No | Full mode: the static method to run. |
parameters | any | No | Parameters, each with 'name' and 'typeName': the snippet's variables or the method's arguments in order. Unity object types and value formats: see the skill. Leave empty when none. |
isMethodBody | boolean | No | Force snippet mode even when the code declares 'className'. |
usings | any | No | Extra namespaces for snippet mode, e.g. ["MyGame.Gameplay"]. |
include | any | No | Helper .cs files or folders (recursive) compiled with the code, relative to <Project>/.ai-game-dev/snippets. |
{
"type": "object",
"properties": {
"csharpCode": {
"type": "string"
},
"className": {
"type": "string"
},
"methodName": {
"type": "string"
},
"parameters": {
"$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMemberList"
},
"isMethodBody": {
"type": "boolean"
},
"usings": {
"$ref": "#/$defs/System.String-1"
},
"include": {
"$ref": "#/$defs/System.String-1"
}
},
"$defs": {
"com.IvanMurzak.ReflectorNet.Model.SerializedMemberList": {
"type": "array",
"items": {
"$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember"
}
},
"com.IvanMurzak.ReflectorNet.Model.SerializedMember": {
"type": "object",
"properties": {
"typeName": {
"type": "string",
"description": "Full type name. Eg: 'System.String', 'System.Int32', 'UnityEngine.Vector3', etc."
},
"name": {
"type": "string",
"description": "Object name."
},
"value": {
"description": "Value of the object, serialized as a non stringified JSON element. Can be null if the value is not set. Can be default value if the value is an empty object or array json."
},
"fields": {
"type": "array",
"items": {
"$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember",
"description": "Nested field value."
},
"description": "Fields of the object, serialized as a list of 'SerializedMember'."
},
"props": {
"type": "array",
"items": {
"$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember",
"description": "Nested property value."
},
"description": "Properties of the object, serialized as a list of 'SerializedMember'."
}
},
"required": [
"typeName"
],
"additionalProperties": false
},
"System.String-1": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"csharpCode"
]
}
{
"type": "object",
"properties": {
"result": {
"$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember"
}
},
"$defs": {
"com.IvanMurzak.ReflectorNet.Model.SerializedMemberList": {
"type": "array",
"items": {
"$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember"
}
},
"com.IvanMurzak.ReflectorNet.Model.SerializedMember": {
"type": "object",
"properties": {
"typeName": {
"type": "string",
"description": "Full type name. Eg: 'System.String', 'System.Int32', 'UnityEngine.Vector3', etc."
},
"name": {
"type": "string",
"description": "Object name."
},
"value": {
"description": "Value of the object, serialized as a non stringified JSON element. Can be null if the value is not set. Can be default value if the value is an empty object or array json."
},
"fields": {
"type": "array",
"items": {
"$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember",
"description": "Nested field value."
},
"description": "Fields of the object, serialized as a list of 'SerializedMember'."
},
"props": {
"type": "array",
"items": {
"$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember",
"description": "Nested property value."
},
"description": "Properties of the object, serialized as a list of 'SerializedMember'."
}
},
"required": [
"typeName"
],
"additionalProperties": false
}
},
"required": [
"result"
]
}
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Build the unity-mcp-cli TypeScript CLI tool and link it globally for terminal use.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
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.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Search Unity's package registry plus locally installed packages (Git, local, embedded sources) by query string. Returns available versions and installation status. Online mode fetches exact matches from the live registry then supplements with cached substring matches.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.