Unity-MCP gameobject-component-get
Get detailed information about a specific Component on a GameObject. Returns component type, enabled state, and optionally serialized fields and properties. Use this to inspect component data before modifying it. Use 'gameobject-find' tool to get the list of all components on the GameObject.
install
source · Clone the upstream repo
git clone https://github.com/IvanMurzak/Unity-MCP
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/IvanMurzak/Unity-MCP "$T" && mkdir -p ~/.claude/skills && cp -r "$T/Unity-MCP-Plugin/.claude/skills/gameobject-component-get" ~/.claude/skills/ivanmurzak-unity-mcp-gameobject-component-get && rm -rf "$T"
manifest:
Unity-MCP-Plugin/.claude/skills/gameobject-component-get/SKILL.mdsource content
GameObject / Component / Get
How to Call
unity-mcp-cli run-tool gameobject-component-get --input '{ "gameObjectRef": "string_value", "componentRef": "string_value", "includeFields": false, "includeProperties": false, "deepSerialization": false }'
For complex input (multi-line strings, code), save the JSON to a file and use:
unity-mcp-cli run-tool gameobject-component-get --input-file args.jsonOr pipe via stdin (recommended):
unity-mcp-cli run-tool gameobject-component-get --input-file - <<'EOF' {"param": "value"} EOF
Troubleshooting
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.
Input
| Name | Type | Required | Description |
|---|---|---|---|
| | Yes | Find GameObject in opened Prefab or in the active Scene. |
| | Yes | Component reference. Used to find a Component at GameObject. |
| | No | Include serialized fields of the component. |
| | No | Include serialized properties of the component. |
| | No | Performs deep serialization including all nested objects. Otherwise, only serializes top-level members. |
Input JSON Schema
{ "type": "object", "properties": { "gameObjectRef": { "$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Runtime.Data.GameObjectRef" }, "componentRef": { "$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Runtime.Data.ComponentRef" }, "includeFields": { "type": "boolean" }, "includeProperties": { "type": "boolean" }, "deepSerialization": { "type": "boolean" } }, "$defs": { "System.Type": { "type": "string" }, "com.IvanMurzak.Unity.MCP.Runtime.Data.GameObjectRef": { "type": "object", "properties": { "instanceID": { "type": "integer", "description": "instanceID of the UnityEngine.Object. If it is '0' and 'path', 'name', 'assetPath' and 'assetGuid' is not provided, empty or null, then it will be used as 'null'. Priority: 1 (Recommended)" }, "path": { "type": "string", "description": "Path of a GameObject in the hierarchy Sample 'character/hand/finger/particle'. Priority: 2." }, "name": { "type": "string", "description": "Name of a GameObject in hierarchy. Priority: 3." }, "assetType": { "$ref": "#/$defs/System.Type", "description": "Type of the asset." }, "assetPath": { "type": "string", "description": "Path to the asset within the project. Starts with 'Assets/'" }, "assetGuid": { "type": "string", "description": "Unique identifier for the asset." } }, "required": [ "instanceID" ], "description": "Find GameObject in opened Prefab or in the active Scene." }, "com.IvanMurzak.Unity.MCP.Runtime.Data.ComponentRef": { "type": "object", "properties": { "index": { "type": "integer", "description": "Component 'index' attached to a gameObject. The first index is '0' and that is usually Transform or RectTransform. Priority: 2. Default value is -1." }, "typeName": { "type": "string", "description": "Component type full name. Sample 'UnityEngine.Transform'. If the gameObject has two components of the same type, the output component is unpredictable. Priority: 3. Default value is null." }, "instanceID": { "type": "integer", "description": "instanceID of the UnityEngine.Object. If this is '0', then it will be used as 'null'." } }, "required": [ "index", "instanceID" ], "description": "Component reference. Used to find a Component at GameObject." } }, "required": [ "gameObjectRef", "componentRef" ] }
Output
Output JSON Schema
{ "type": "object", "properties": { "result": { "$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Editor.API.Tool_GameObject+GetComponentResponse" } }, "$defs": { "com.IvanMurzak.Unity.MCP.Runtime.Data.ComponentRef": { "type": "object", "properties": { "index": { "type": "integer", "description": "Component 'index' attached to a gameObject. The first index is '0' and that is usually Transform or RectTransform. Priority: 2. Default value is -1." }, "typeName": { "type": "string", "description": "Component type full name. Sample 'UnityEngine.Transform'. If the gameObject has two components of the same type, the output component is unpredictable. Priority: 3. Default value is null." }, "instanceID": { "type": "integer", "description": "instanceID of the UnityEngine.Object. If this is '0', then it will be used as 'null'." } }, "required": [ "index", "instanceID" ], "description": "Component reference. Used to find a Component at GameObject." }, "com.IvanMurzak.Unity.MCP.Runtime.Data.ComponentDataShallow": { "type": "object", "properties": { "instanceID": { "type": "integer" }, "typeName": { "type": "string" }, "isEnabled": { "type": "string", "enum": [ "False", "True", "NA" ] } }, "required": [ "instanceID", "isEnabled" ] }, "System.Collections.Generic.List<com.IvanMurzak.ReflectorNet.Model.SerializedMember>": { "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 }, "com.IvanMurzak.ReflectorNet.Model.SerializedMemberList": { "type": "array", "items": { "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember" } }, "com.IvanMurzak.Unity.MCP.Editor.API.Tool_GameObject+GetComponentResponse": { "type": "object", "properties": { "Reference": { "$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Runtime.Data.ComponentRef", "description": "Reference to the component for future operations." }, "Index": { "type": "integer", "description": "Index of the component in the GameObject's component list." }, "Component": { "$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Runtime.Data.ComponentDataShallow", "description": "Basic component information (type, enabled state)." }, "Fields": { "$ref": "#/$defs/System.Collections.Generic.List<com.IvanMurzak.ReflectorNet.Model.SerializedMember>", "description": "Serialized fields of the component." }, "Properties": { "$ref": "#/$defs/System.Collections.Generic.List<com.IvanMurzak.ReflectorNet.Model.SerializedMember>", "description": "Serialized properties of the component." } }, "required": [ "Index" ] } }, "required": [ "result" ] }