/type-get-json-schema
Generate a JSON Schema for a C# type name via reflection. Supports primitives, enums, arrays, generic collections, dictionaries, and complex objects. Knobs control inclusion of nested `$defs` and whether type-level / property-level descriptions are emitted.
$ npx -y skills add IvanMurzak/Unity-MCP --skill type-get-json-schema --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/type-get-json-schema
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generate a JSON Schema for a C# type name via reflection. Supports primitives, enums, arrays, generic collections, dictionaries, and complex objects. Knobs control inclusion of nested `$defs` and whether type-level / property-level descriptions are emitted.
SKILL.md
type-get-json-schema.SKILL.mdname: type-get-json-schema
description: Generate a JSON Schema for a C# type name via reflection. Supports primitives, enums, arrays, generic collections, dictionaries, and complex objects. Knobs control inclusion of nested `$defs` and whether type-level / property-level descriptions are emitted.
Type / Get Json Schema
Generates a JSON Schema for a given C# type name using reflection. Supports primitives, enums, arrays, generic collections, dictionaries, and complex objects. The type must be present in any loaded assembly. Use the full type name (e.g. 'UnityEngine.Vector3') for best results.
Inputs
- `typeName` — full type name preferred (e.g. `UnityEngine.Vector3`, `System.Collections.Generic.List<System.Int32>`). Simple names work when unambiguous.
- `descriptionMode` (default `Ignore`) — controls type-level `description`: `Include` keeps it on the target only, `IncludeRecursively` also keeps it inside `$defs`, `Ignore` strips all.
- `propertyDescriptionMode` (default `Ignore`) — controls property/field/item `description`: `Include` keeps on the target's own properties/items only, `IncludeRecursively` also keeps inside `$defs`, `Ignore` strips all.
- `includeNestedTypes` (default `false`) — when true, complex nested types are extracted into `$defs` and referenced via `$ref`. Useful for recursive or large types.
- `writeIndented` (default `false`) — pretty-print the output JSON.
How to Call
unity-mcp-cli run-tool type-get-json-schema --input '{
"typeName": "string_value",
"descriptionMode": "string_value",
"propertyDescriptionMode": "string_value",
"includeNestedTypes": false,
"writeIndented": false
}'> For complex input (multi-line strings, code), save the JSON to a file and use: > ```bash > unity-mcp-cli run-tool type-get-json-schema --input-file args.json > ``` > > Or pipe via stdin (recommended): > ```bash > unity-mcp-cli run-tool type-get-json-schema --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 | |------|------|----------|-------------| | `typeName` | `string` | Yes | Full C# type name to generate the schema for. Examples: 'System.String', 'UnityEngine.Vector3', 'System.Collections.Generic.List<System.Int32>'. Simple names like 'Vector3' are also accepted when unambiguous. | | `descriptionMode` | `string` | No | Controls the type-level 'description' field. Include: keep on the target type only. IncludeRecursively: keep on the target type and inside $defs entries. Ignore: strip all type-level descriptions. Default: Ignore. | | `propertyDescriptionMode` | `string` | No | Controls 'description' fields on properties, fields, and array items. Include: keep on the target type's own properties/items only. IncludeRecursively: keep on all properties/items including those inside $defs entries. Ignore: strip all property/item descriptions. Default: Ignore. | | `includeNestedTypes` | `boolean` | No | When true, complex nested types are extracted into '$defs' and referenced via '$ref' instead of being inlined. Useful for large or recursive types. Default: false. | | `writeIndented` | `boolean` | No | Whether to format the output JSON with indentation for readability. Default: false. |
Input JSON Schema
{
"type": "object",
"properties": {
"typeName": {
"type": "string"
},
"descriptionMode": {
"type": "string",
"enum": [
"Include",
"IncludeRecursively",
"Ignore"
]
},
"propertyDescriptionMode": {
"type": "string",
"enum": [
"Include",
"IncludeRecursively",
"Ignore"
]
},
"includeNestedTypes": {
"type": "boolean"
},
"writeIndented": {
"type": "boolean"
}
},
"required": [
"typeName"
]
}Output
Output JSON Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}Read more
name: type-get-json-schema description: Generate a JSON Schema for a C# type name via reflection. Supports primitives, enums, arrays, generic collections, dictionaries, and complex objects. Knobs control inclusion of nested `$defs` and whether type-level / property-level descriptions are emitted.
Type / Get Json Schema
Generates a JSON Schema for a given C# type name using reflection. Supports primitives, enums, arrays, generic collections, dictionaries, and complex objects. The type must be present in any loaded assembly. Use the full type name (e.g. 'UnityEngine.Vector3') for best results.
Inputs
- `typeName` — full type name preferred (e.g. `UnityEngine.Vector3`, `System.Collections.Generic.List<System.Int32>`). Simple names work when unambiguous.
- `descriptionMode` (default `Ignore`) — controls type-level `description`: `Include` keeps it on the target only, `IncludeRecursively` also keeps it inside `$defs`, `Ignore` strips all.
- `propertyDescriptionMode` (default `Ignore`) — controls property/field/item `description`: `Include` keeps on the target's own properties/items only, `IncludeRecursively` also keeps inside `$defs`, `Ignore` strips all.
- `includeNestedTypes` (default `false`) — when true, complex nested types are extracted into `$defs` and referenced via `$ref`. Useful for recursive or large types.
- `writeIndented` (default `false`) — pretty-print the output JSON.
How to Call
unity-mcp-cli run-tool type-get-json-schema --input '{
"typeName": "string_value",
"descriptionMode": "string_value",
"propertyDescriptionMode": "string_value",
"includeNestedTypes": false,
"writeIndented": false
}'> For complex input (multi-line strings, code), save the JSON to a file and use: > ```bash > unity-mcp-cli run-tool type-get-json-schema --input-file args.json > ``` > > Or pipe via stdin (recommended): > ```bash > unity-mcp-cli run-tool type-get-json-schema --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 | |------|------|----------|-------------| | `typeName` | `string` | Yes | Full C# type name to generate the schema for. Examples: 'System.String', 'UnityEngine.Vector3', 'System.Collections.Generic.List<System.Int32>'. Simple names like 'Vector3' are also accepted when unambiguous. | | `descriptionMode` | `string` | No | Controls the type-level 'description' field. Include: keep on the target type only. IncludeRecursively: keep on the target type and inside $defs entries. Ignore: strip all type-level descriptions. Default: Ignore. | | `propertyDescriptionMode` | `string` | No | Controls 'description' fields on properties, fields, and array items. Include: keep on the target type's own properties/items only. IncludeRecursively: keep on all properties/items including those inside $defs entries. Ignore: strip all property/item descriptions. Default: Ignore. | | `includeNestedTypes` | `boolean` | No | When true, complex nested types are extracted into '$defs' and referenced via '$ref' instead of being inlined. Useful for large or recursive types. Default: false. | | `writeIndented` | `boolean` | No | Whether to format the output JSON with indentation for readability. Default: false. |
Input JSON Schema
{
"type": "object",
"properties": {
"typeName": {
"type": "string"
},
"descriptionMode": {
"type": "string",
"enum": [
"Include",
"IncludeRecursively",
"Ignore"
]
},
"propertyDescriptionMode": {
"type": "string",
"enum": [
"Include",
"IncludeRecursively",
"Ignore"
]
},
"includeNestedTypes": {
"type": "boolean"
},
"writeIndented": {
"type": "boolean"
}
},
"required": [
"typeName"
]
}Output
Output JSON Schema
{
"type": "object",
"properties": {
"result": {
"type": "string"
}
},
"required": [
"result"
]
}Get up and running in three steps: Install plugin — download the .unitypackage installer or run openupm add com.ivanmurzak.unity.mcp Alternative: npx unity-mcp-cli install-plugin ./MyUnityProject — see CLI documentation Pick an AI agent — Claude Code, Claude
Repo: IvanMurzak/Unity-MCP
Other skills on ivanmurzak-unity-mcp.
- /build-cli
Build the unity-mcp-cli TypeScript CLI tool and link it globally for terminal use.
Open skill - /github-pr-review-fix
Review and resolve PR comments from GitHub. Validates each comment, fixes legitimate issues.
Open skill - /assets-copy
Copy assets at given paths and store them at new paths. Refreshes the AssetDatabase at the end. Use 'assets-find' to locate the source assets first.
Open skill - /assets-create-folder
Create a new folder under a parent folder inside 'Assets/'. The parent path must start with 'Assets/' and every intermediate folder in it must already exist. Refreshes the AssetDatabase at the end and returns the GUID(s) of the created folder(s).
Open skill - /assets-delete
Delete the assets at the given project paths. Refreshes the AssetDatabase at the end. Use 'assets-find' to locate the assets first.
Open skill - /assets-find-built-in
Search the built-in assets of the Unity Editor (located at Resources/unity_builtin_extra). Filters by name and/or type; built-in assets have no GUID so GUID-based lookups are not supported.
Open skill

