Agent skill

Assets Shader Get Data

by IvanMurzak in IvanMurzak/Unity-MCP

Get detailed data about a shader asset — properties, subshaders, passes, compilation messages, and supported status.

Apache-2.0Auto-check passedGame Development

Install Assets Shader Get Data

skills CLI
$ npx skills add IvanMurzak/Unity-MCP --skill assets-shader-get-data -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install IvanMurzak/Unity-MCP assets-shader-get-data --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/IvanMurzak/Unity-MCP.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Unity-MCP-Plugin/.claude/skills/assets-shader-get-data .claude/skills/assets-shader-get-data && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
assets-shader-get-data
GitHub stars
4.4k
Token cost
~4.1k tokens
SKILL.md length
341 words
Files
1
Skills in repo
80
Repo updated
First seen
Licence
Apache-2.0

At a glance

Get detailed data about a shader asset — properties, subshaders, passes, compilation messages, and supported status.

  • Tasks that involve Shaders
  • SKILL.md covers Toggles (most default off to…, Path-scoped reads (token-saving), Path syntax and How to Call, plus 2 more sections
  • Calls npm and npx

What it does

Assets Shader Get Data is an agent skill from IvanMurzak/Unity-MCP. Get detailed data about a shader asset — properties, subshaders, passes, compilation messages, and supported status. Supports token-saving path-scoped reads via paths or viewQuery. Use 'assets-find' with t:Shader or 'assets-shader-list-all' to locate the shader first.

Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Game Development, covering Shaders. It works with Model Context Protocol. The repository describes itself as: AI Skills, MCP Tools, and CLI for Unity Engine. Full AI develop and test loop. Use cli for quick setup. Efficient token usage, advanced tools. Any C method may be turned into a… The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Shaders

Example prompts

  • “assets-find”
  • “assets-shader-list-all”
  • “/assets-shader-get-data”

Requirements

  • Node.js

What it can do on your machine

Read from SKILL.md and the folder at commit 4c8056f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm and npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Assets Shader Get Data loads about 4.1k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 341 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~74
When it runs · the whole SKILL.md, loaded when a task matches
~4.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from IvanMurzak/Unity-MCP at commit 4c8056f, republished under its Apache-2.0 licence (© IvanMurzak). 341 words, ~4,096 tokens.

Download SKILL.mdSave it as .claude/skills/assets-shader-get-data/SKILL.md (or your agent's skills folder).
name
assets-shader-get-data
description
Get detailed data about a shader asset — properties, subshaders, passes, compilation messages, and supported status. Supports token-saving path-scoped reads via `paths` or `viewQuery`. Use 'assets-find' with `t:Shader` or 'assets-shader-list-all' to locate the shader first.

Assets / Shader / Get Data

Get detailed data about a shader asset in the Unity project. Returns shader properties, subshaders, passes, compilation errors, and supported status. Use 'assets-find' tool with filter 't:Shader' to find shaders, or 'assets-shader-list-all' tool to list all shader names.

Toggles (most default off to keep responses small)

  • includeMessages (default true) — shader compilation messages.
  • includeProperties (default false) — uniforms list.
  • includeSubshaders (default false) — subshader and pass structure.
  • includeSourceCode (default false) — pass source code. Implies includeSubshaders and can produce very large responses.

Path-scoped reads (token-saving)

Supply paths (a list of paths) to read only the listed fields/elements via Reflector.TryReadAt, or viewQuery (a ViewQuery) to navigate to a subtree and/or filter by name regex / max depth / type via Reflector.View. The result populates View on the returned ShaderData. These two parameters are mutually exclusive.

Path syntax

fieldName, nested/field, arrayField/[i], dictField/[key]. Leading #/ is stripped.

How to Call

bash
unity-mcp-cli run-tool assets-shader-get-data --input '{
  "assetRef": "string_value",
  "includeMessages": "string_value",
  "includeProperties": "string_value",
  "includeSubshaders": "string_value",
  "includeSourceCode": "string_value",
  "paths": "string_value",
  "viewQuery": "string_value"
}'

For complex input (multi-line strings, code), save the JSON to a file and use:

bash
unity-mcp-cli run-tool assets-shader-get-data --input-file args.json

Or pipe via stdin (recommended):

bash
unity-mcp-cli run-tool assets-shader-get-data --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

NameTypeRequiredDescription
assetRefanyYesReference to UnityEngine.Object asset instance. It could be Material, ScriptableObject, Prefab, and any other Asset. Anything located in the Assets and Packages folders.
includeMessagesanyNoInclude compilation error and warning messages. Default: true
includePropertiesanyNoInclude shader properties (uniforms) list. Default: false
includeSubshadersanyNoInclude subshader and pass structure. Default: false
includeSourceCodeanyNoInclude pass source code in subshader data. Requires 'includeSubshaders' to be true. Can produce very large responses. Default: false
pathsanyNoOptional. List of paths to read individually via Reflector.TryReadAt against the underlying Shader asset. Path syntax: 'fieldName', 'nested/field', 'arrayField/[i]', 'dictField/[key]'. Mutually exclusive with 'viewQuery'.
viewQueryanyNoOptional. View-query filter routed through Reflector.View against the underlying Shader asset. Mutually exclusive with 'paths'.
Input JSON Schema
json
{
  "type": "object",
  "properties": {
    "assetRef": {
      "$ref": "#/$defs/AIGD.AssetObjectRef"
    },
    "includeMessages": {
      "$ref": "#/$defs/System.Boolean"
    },
    "includeProperties": {
      "$ref": "#/$defs/System.Boolean"
    },
    "includeSubshaders": {
      "$ref": "#/$defs/System.Boolean"
    },
    "includeSourceCode": {
      "$ref": "#/$defs/System.Boolean"
    },
    "paths": {
      "$ref": "#/$defs/System.Collections.Generic.List(System.String)"
    },
    "viewQuery": {
      "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.ViewQuery"
    }
  },
  "$defs": {
    "System.Type": {
      "type": "string"
    },
    "AIGD.AssetObjectRef": {
      "type": "object",
      "properties": {
        "instanceID": {
          "type": "integer",
          "description": "instanceID of the UnityEngine.Object. If this is '0' and 'assetPath' and 'assetGuid' is not provided, empty or null, then it will be used as 'null'."
        },
        "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": "Reference to UnityEngine.Object asset instance. It could be Material, ScriptableObject, Prefab, and any other Asset. Anything located in the Assets and Packages folders."
    },
    "System.Boolean": {
      "type": "boolean"
    },
    "System.Collections.Generic.List(System.String)": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "com.IvanMurzak.ReflectorNet.Model.ViewQuery": {
      "type": "object",
      "properties": {
        "Path": {
          "type": "string",
          "description": "Navigate to this path first, then serialize only that subtree. Path segments are separated by '/'. Use '[i]' for array/list index (e.g. 'users/[2]/name') and '[key]' for dictionary entry (e.g. 'config/[timeout]'). A leading '#/' is stripped automatically. Examples: 'admin/name', 'users/[0]/email', 'config/[timeout]'. Leave null to start from the root object."
        },
        "NamePattern": {
          "type": "string",
          "description": "Case-insensitive .NET regex pattern matched against field and property names. Only branches containing at least one match are kept in the result tree. Examples: 'orbitRadius' (exact name), 'orbit.*' (prefix match), 'radius|speed' (either name). When nothing matches, the root envelope is returned with empty fields/props. Leave null to return all fields and properties without filtering."
        },
        "MaxDepth": {
          "type": "integer",
          "description": "Maximum nesting depth of the returned serialized tree. 0 = root type name and value only — no nested fields or properties. 1 = one level of fields/props visible, their children stripped. 2 = two levels visible, and so on. Leave null (default) for unlimited depth."
        },
        "TypeFilter": {
          "$ref": "#/$defs/System.Type",
          "description": "When set, prunes the result tree to members whose runtime type is assignable to this type. Non-matching branches are removed; the root envelope is always preserved. Examples: typeof(float) keeps only float fields, typeof(IEnumerable) keeps only collections. Leave null to include members of any type."
        }
      }
    }
  },
  "required": [
    "assetRef"
  ]
}

Output

Output JSON Schema
json
{
  "type": "object",
  "properties": {
    "result": {
      "$ref": "#/$defs/AIGD.ShaderData"
    }
  },
  "$defs": {
    "AIGD.AssetObjectRef": {
      "type": "object",
      "properties": {
        "instanceID": {
          "type": "integer",
          "description": "instanceID of the UnityEngine.Object. If this is '0' and 'assetPath' and 'assetGuid' is not provided, empty or null, then it will be used as 'null'."
        },
        "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": "Reference to UnityEngine.Object asset instance. It could be Material, ScriptableObject, Prefab, and any other Asset. Anything located in the Assets and Packages folders."
    },
    "System.Type": {
      "type": "string"
    },
    "System.Collections.Generic.List(AIGD.ShaderMessageData)": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/AIGD.ShaderMessageData"
      }
    },
    "AIGD.ShaderMessageData": {
      "type": "object",
      "properties": {
        "Message": {
          "type": "string",
          "description": "The error or warning message text."
        },
        "Line": {
          "type": "integer",
          "description": "The line number in the shader source where the issue occurs."
        },
        "Severity": {
          "type": "string",
          "description": "Severity level (e.g. 'Error', 'Warning')."
        },
        "Platform": {
          "type": "string",
          "description": "The platform on which the error occurs (e.g. 'OpenGLCore', 'D3D11')."
        }
      },
      "required": [
        "Line"
      ]
    },
    "System.Collections.Generic.List(AIGD.ShaderPropertyData)": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/AIGD.ShaderPropertyData"
      }
    },
    "AIGD.ShaderPropertyData": {
      "type": "object",
      "properties": {
        "Name": {
          "type": "string",
          "description": "Property name as used in shader code (e.g. '_MainTex', '_Color')."
        },
        "Description": {
          "type": "string",
          "description": "Human-readable description/display name of the property."
        },
        "Type": {
          "type": "string",
          "description": "Property type (e.g. 'Color', 'Float', 'Range', 'Texture', 'Vector', 'Int')."
        },
        "Flags": {
          "type": "string",
          "description": "Property flags (e.g. 'None', 'HideInInspector', 'PerRendererData')."
        },
        "NameId": {
          "type": "integer",
          "description": "The unique name ID for this property."
        },
        "RangeMin": {
          "type": "number",
          "description": "Minimum value for Range properties. Null for non-range properties."
        },
        "RangeMax": {
          "type": "number",
          "description": "Maximum value for Range properties. Null for non-range properties."
        },
        "DefaultTextureName": {
          "type": "string",
          "description": "Default texture name for Texture properties. Null if not applicable."
        },
        "Attributes": {
          "$ref": "#/$defs/System.Collections.Generic.List(System.String)",
          "description": "Custom attributes applied to this property. Null if none."
        }
      },
      "required": [
        "NameId"
      ]
    },
    "System.Collections.Generic.List(System.String)": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "System.Collections.Generic.List(AIGD.SubshaderData)": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/AIGD.SubshaderData"
      }
    },
    "AIGD.SubshaderData": {
      "type": "object",
      "properties": {
        "Index": {
          "type": "integer",
          "description": "Index of this subshader within the shader."
        },
        "PassCount": {
          "type": "integer",
          "description": "Number of passes in this subshader."
        },
        "Passes": {
          "$ref": "#/$defs/System.Collections.Generic.List(AIGD.PassData)",
          "description": "List of passes in this subshader. Null if no passes."
        }
      },
      "required": [
        "Index",
        "PassCount"
      ]
    },
    "System.Collections.Generic.List(AIGD.PassData)": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/AIGD.PassData"
      }
    },
    "AIGD.PassData": {
      "type": "object",
      "properties": {
        "Index": {
          "type": "integer",
          "description": "Index of this pass within the subshader."
        },
        "Name": {
          "type": "string",
          "description": "Name of the pass. Null if unnamed."
        },
        "SourceCode": {
          "type": "string",
          "description": "Source code of the pass. Null if unavailable."
        }
      },
      "required": [
        "Index"
      ]
    },
    "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"
      }
    },
    "AIGD.ShaderData": {
      "type": "object",
      "properties": {
        "Reference": {
          "$ref": "#/$defs/AIGD.AssetObjectRef",
          "description": "Reference to the shader asset for future operations."
        },
        "Name": {
          "type": "string",
          "description": "Full name of the shader (e.g. 'Standard', 'Universal Render Pipeline/Lit')."
        },
        "IsSupported": {
          "type": "boolean",
          "description": "Whether the shader is supported on the current GPU and platform."
        },
        "RenderQueue": {
          "type": "integer",
          "description": "The render queue value of the shader."
        },
        "HasErrors": {
          "type": "boolean",
          "description": "Whether the shader has any compilation errors."
        },
        "PropertyCount": {
          "type": "integer",
          "description": "Number of properties exposed by the shader."
        },
        "PassCount": {
          "type": "integer",
          "description": "Total number of passes in the shader."
        },
        "RenderType": {
          "type": "string",
          "description": "The RenderType tag value from the first pass, if set."
        },
        "Messages": {
          "$ref": "#/$defs/System.Collections.Generic.List(AIGD.ShaderMessageData)",
          "description": "Compilation messages including errors and warnings. Null if no messages."
        },
        "Properties": {
          "$ref": "#/$defs/System.Collections.Generic.List(AIGD.ShaderPropertyData)",
          "description": "List of shader properties (uniforms). Null if the shader has no properties."
        },
        "Subshaders": {
          "$ref": "#/$defs/System.Collections.Generic.List(AIGD.SubshaderData)",
          "description": "List of subshaders with their passes. Null if shader data is unavailable."
        },
        "View": {
          "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember",
          "description": "Path-scoped read or view-query result, populated when 'paths' or 'viewQuery' is supplied. Null otherwise."
        }
      },
      "required": [
        "IsSupported",
        "RenderQueue",
        "HasErrors",
        "PropertyCount",
        "PassCount"
      ]
    }
  },
  "required": [
    "result"
  ]
}

© IvanMurzak, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in Unity-MCP-Plugin/.claude/skills/assets-shader-get-data of IvanMurzak/Unity-MCP.

Open the folder on GitHubat commit 4c8056f

Compare with similar skills

Assets Shader Get Data next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Assets Shader Get Data compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Assets Shader Get Data this skillIvanMurzak/Unity-MCP4.4k—~4.1kAutomated safety check: PassApache-2.0
Unreal Material and VFX Workflowflopperam/unreal-engine-mcp1.1k—~927Automated safety check: PassNone
UMG Material MCPwinyunq/UnrealMotionGraphicsMCP210—~913Automated safety check: PassMIT
Touchdesignersatoruhiga/claude-touchdesigner127—~1.5kAutomated safety check: PassNone
Threejs Visual Systemsmintdotgg/mint-threejs-skills114—~816Automated safety check: PassMIT
Niagara Emitterskevinpbuckley/VibeUE726—~2kAutomated safety check: PassMIT

Similar skills

  • Unreal Material and VFX Workflow

    flopperam/unreal-engine-mcp

    Walks an Unreal Engine MCP agent through building materials, Niagara particle systems, Chaos destruction, and curve assets with inspect-then-edit steps.

    1.1k GitHub stars~927 tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed
  • UMG Material MCP

    winyunq/UnrealMotionGraphicsMCP

    Creates, edits and compiles Unreal Engine 5.8 material assets as one HLSL Custom node through the UMG MCP bridge, instead of editing .uasset files directly.

    210 GitHub stars~913 tokensUpdated 2 mo ago
    Game DevelopmentAuto-check passed
  • Touchdesigner

    satoruhiga/claude-touchdesigner

    Provides patterns and best practices for TouchDesigner via MCP API - operator creation, network layout, rendering, GLSL shaders, data conversion (CHOP/SOP/POP/TOP/DAT).

    127 GitHub stars~1.5k tokensUpdated 7 mo ago
    Game DevelopmentAuto-check passed
  • Threejs Visual Systems

    mintdotgg/mint-threejs-skills

    Build and upgrade Three.js visual systems for apps and games using Mint MCP assets, authored geometry, materials, lighting, shaders, VFX, technical art, and measured performance.

    114 GitHub stars~816 tokensUpdated 2 mo ago
    Game DevelopmentAuto-check passed
  • Niagara Emitters

    kevinpbuckley/VibeUE

    Niagara emitter color/curve authoring (tint, hue-shift, ColorFromCurve keys), rapid-iteration parameter tuning, and Custom-HLSL scratch-pad authoring (NiagaraEmitterService +…

    726 GitHub stars~2k tokensUpdated 2 days ago
    Game DevelopmentAuto-check passed
  • Niagara Systems

    kevinpbuckley/VibeUE

    Rapid-iteration parameter tuning, diagnostics, and Custom-HLSL scratch-pad authoring for Niagara systems (VibeUE NiagaraService + NiagaraScratchPadService).

    726 GitHub stars~2.8k tokensUpdated 2 days ago
    Game DevelopmentAuto-check passed

More from IvanMurzak/Unity-MCP

All 80 skills in this repo
  • Assets Shader List All

    IvanMurzak/Unity-MCP

    List all shaders available in the project assets and packages, sorted by name.

    4.4k GitHub stars~435 tokensUpdated 5 days ago
    Auto-check passed
  • Gameobject Component List All

    IvanMurzak/Unity-MCP

    List the fully-qualified C type names of every concrete UnityEngine.Component subclass available in the project.

    4.4k GitHub stars~846 tokensUpdated 5 days ago
    Auto-check passed
  • Package Add

    IvanMurzak/Unity-MCP

    Install a Unity package from the registry, a Git URL, or a local path.

    4.4k GitHub stars~665 tokensUpdated 5 days ago
    Auto-check passed
  • Package Remove

    IvanMurzak/Unity-MCP

    Uninstall a UPM package from the Unity project. An agent skill from IvanMurzak/Unity-MCP.

    4.4k GitHub stars~602 tokensUpdated 5 days ago
    Auto-check passed
  • Unity Version Split

    IvanMurzak/Unity-MCP

    Split a C file into Unity 6.5+ and pre-Unity 6.5 variants. An agent skill from IvanMurzak/Unity-MCP.

    4.4k GitHub stars~1.1k tokensUpdated 5 days ago
    Auto-check passed
  • Assets Copy

    IvanMurzak/Unity-MCP

    Copy assets at given paths and store them at new paths. An agent skill from IvanMurzak/Unity-MCP.

    4.4k GitHub stars~1k tokensUpdated 5 days ago
    Auto-check passed

Questions about Assets Shader Get Data

What does Assets Shader Get Data do?

Get detailed data about a shader asset — properties, subshaders, passes, compilation messages, and supported status. Assets Shader Get Data is an agent skill from IvanMurzak/Unity-MCP. Get detailed data about a shader asset — properties, subshaders, passes, compilation messages, and supported status.

When should I use Assets Shader Get Data?

Assets Shader Get Data fits situations like: tasks that involve Shaders.

How do I install Assets Shader Get Data in Claude Code?

Run `npx skills add IvanMurzak/Unity-MCP --skill assets-shader-get-data -a claude-code`. Or copy the skill folder (Unity-MCP-Plugin/.claude/skills/assets-shader-get-data in IvanMurzak/Unity-MCP) into .claude/skills/assets-shader-get-data in your project. Claude Code loads it when a task matches its description.

How do I install Assets Shader Get Data in Codex?

Run `npx skills add IvanMurzak/Unity-MCP --skill assets-shader-get-data -a codex`. Or copy the skill folder (Unity-MCP-Plugin/.claude/skills/assets-shader-get-data in IvanMurzak/Unity-MCP) into .agents/skills/assets-shader-get-data in your project. Codex loads it when a task matches its description.

Can I use Assets Shader Get Data in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add IvanMurzak/Unity-MCP --skill assets-shader-get-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/assets-shader-get-data, .gemini/skills/assets-shader-get-data, .github/skills/assets-shader-get-data and .opencode/skills/assets-shader-get-data in your project.

What does Assets Shader Get Data need to run?

Going by SKILL.md and its folder, Assets Shader Get Data needs the command-line tools its instructions call (npm and npx). Our summary lists: Node.js.

Does Assets Shader Get Data access the network?

SKILL.md contains no URLs. Its commands use npm and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Assets Shader Get Data safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Assets Shader Get Data use?

Assets Shader Get Data is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Assets Shader Get Data use?

About 4.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Assets Shader Get Data?

Skills that share tags, products or a category with Assets Shader Get Data: Unreal Material and VFX Workflow (flopperam/unreal-engine-mcp, 1.1k stars), UMG Material MCP (winyunq/UnrealMotionGraphicsMCP, 210 stars), Touchdesigner (satoruhiga/claude-touchdesigner, 127 stars) and Threejs Visual Systems (mintdotgg/mint-threejs-skills, 114 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Assets Shader Get Data?

IvanMurzak (a GitHub user) maintains it in IvanMurzak/Unity-MCP, which has 4,405 GitHub stars. The repository holds 80 skills in this directory. The repository was last updated on October 4, 2026.

Source: IvanMurzak/Unity-MCP on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.