Agent skill

Unity Skill Create

by IvanMurzak in IvanMurzak/Unity-MCP

Create a new skill (MCP tool) for the Unity Editor by writing a C (.cs) file that Unity compiles into the project.

Apache-2.0Auto-check passedGame Development

Install Unity Skill Create

skills CLI
$ npx skills add IvanMurzak/Unity-MCP --skill unity-skill-create -a claude-code

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

GitHub CLI
$ gh skill install IvanMurzak/Unity-MCP unity-skill-create --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/unity-skill-create .claude/skills/unity-skill-create && 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
unity-skill-create
GitHub stars
4.4k
Token cost
~2.1k tokens
SKILL.md length
588 words
Files
1
Skills in repo
80
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create a new skill (MCP tool) for the Unity Editor by writing a C (.cs) file that Unity compiles into the project.

  • Works in 4 steps: Accept a [RequestID] string? requestId… → Return… → Schedule the actual work asynchronously… → …
  • Tasks that involve MCP servers
  • SKILL.md covers Full sample, Suggestions, How to Call and Input, plus 1 more section
  • Calls npm and npx

What it does

Unity Skill Create is an agent skill from IvanMurzak/Unity-MCP. Create a new skill (MCP tool) for the Unity Editor by writing a C (.cs) file that Unity compiles into the project. After compilation the new tool becomes callable through MCP. The file must be a partial class decorated with [AiToolType], each tool method must be decorated with [AiTool], the class name should match the file name, all Unity API calls must run via com.IvanMurzak.ReflectorNet.Utils.MainThread.Instance.Run(), and the method should either return a structured data model (for parseable output) or void…

Its SKILL.md is about 2.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 MCP servers, Schema markup and Game development. It works with Unity, Model Context Protocol and C#. 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 MCP servers
  • Tasks that involve Schema markup
  • Tasks that involve Game development

Example prompts

  • “/unity-skill-create”

Requirements

  • Node.js

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Accept a [RequestID] string? requestId parameter.
  2. Return ResponseCallTool.Processing("...").SetRequestID(requestId) immediately.
  3. Schedule the actual work asynchronously via MainThread.Instance.RunAsync(async () => { await Task.Yield(); ... }).
  4. When the operation finishes, send the final result by calling

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

Unity Skill Create loads about 2.1k tokens when it runs. Until then it costs about 160 tokens; SKILL.md has 588 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~160
When it runs · the whole SKILL.md, loaded when a task matches
~2.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). 588 words, ~2,147 tokens.

Download SKILL.mdSave it as .claude/skills/unity-skill-create/SKILL.md (or your agent's skills folder).
name
unity-skill-create
description
Create a new skill (MCP tool) for the Unity Editor by writing a C# (.cs) file that Unity compiles into the project. After compilation the new tool becomes callable through MCP. The file must be a partial class decorated with [AiToolType], each tool method must be decorated with [AiTool], the class name should match the file name, all Unity API calls must run via com.IvanMurzak.ReflectorNet.Utils.MainThread.Instance.Run(), and the method should either return a structured data model (for parseable output) or void (for side-effect-only operations). See the body of this skill for a full sample and best-practice notes.

Skill (Tool) / Create

Full sample

csharp
#nullable enable
using System;
using System.ComponentModel;
using com.IvanMurzak.McpPlugin;
using com.IvanMurzak.ReflectorNet.Utils;
using com.IvanMurzak.Unity.MCP.Editor.Utils;
using AIGD;
using UnityEditor;
using UnityEngine;

namespace com.IvanMurzak.Unity.MCP.Editor.API
{
    [AiToolType]
    public partial class Tool_Sample
    {
        [AiTool("sample-get", Title = "Sample / Get")]
        [Description("Finds a GameObject and returns its ref data.")]
        public GameObjectRef Get
        (
            [Description("Name of the GameObject to find.")]
            string name
        )
        {
            return MainThread.Instance.Run(() =>
            {
                var go = GameObject.Find(name)
                    ?? throw new ArgumentException($"GameObject '{name}' not found.", nameof(name));

                return new GameObjectRef(go);
            });
        }

        [AiTool("sample-rename", Title = "Sample / Rename")]
        [Description("Renames a GameObject.")]
        public void Rename
        (
            [Description("Current name of the GameObject.")]
            string name,
            [Description("New name to assign.")]
            string newName
        )
        {
            MainThread.Instance.Run(() =>
            {
                var go = GameObject.Find(name)
                    ?? throw new ArgumentException($"GameObject '{name}' not found.", nameof(name));

                go.name = newName;
                EditorUtility.SetDirty(go);
                AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport);
                EditorUtils.RepaintAllEditorWindows();
            });
        }
    }
}

Suggestions

Refresh UI after visual changes

If the skill modifies anything visually in the Unity Editor (GameObjects, components, materials, etc.), call these two lines at the end of the tool method to apply changes to the UI immediately:

csharp
AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport);
EditorUtils.RepaintAllEditorWindows();
Refresh AssetDatabase after asset or script changes

If the skill creates, modifies, or deletes any asset file or .cs script on disk outside of Unity API, call this inside a MainThread.Instance.Run() block to ensure Unity picks up the changes:

csharp
MainThread.Instance.Run(() =>
{
    AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport);
});
Use processing mechanic for long-running or domain-reload operations

Some operations take time to complete and may trigger a Unity domain reload (e.g. writing a .cs script, switching play mode, running tests, adding a package). In these cases the tool must NOT block and wait — instead it must:

  1. Accept a [RequestID] string? requestId parameter.
  2. Return ResponseCallTool.Processing("...").SetRequestID(requestId) immediately.
  3. Schedule the actual work asynchronously via MainThread.Instance.RunAsync(async () => { await Task.Yield(); ... }).
  4. When the operation finishes, send the final result by calling:
csharp
_ = UnityMcpPluginEditor.NotifyToolRequestCompleted(new RequestToolCompletedData
{
    RequestId = requestId,
    Result = ResponseCallTool.Success("Operation completed.").SetRequestID(requestId)
});

If the operation may survive a domain reload (e.g. a .cs file was saved and Unity will recompile), use ScriptUtils.SchedulePostCompilationNotification(requestId, filePath, operationType) instead of calling NotifyToolRequestCompleted directly — it persists the pending notification to SessionState and sends it automatically after the domain reload completes. For package install/removal or other non-compilation domain reloads use PackageUtils.SchedulePostDomainReloadNotification(requestId, label, action, expectedResult) the same way.

Return structured data with a typed response

Prefer returning a structured data model over a plain string so the AI can parse individual fields. Data models for MCP tools MUST be declared as TOP-LEVEL types in the AIGD namespace - never nested inside the tool class. Place each data model in its own .cs file (one type per file) and use ResponseCallValueTool<T> as the return type. The flat AIGD namespace keeps the auto-generated JSON Schema $defs keys short and intuitive for AI agents.

csharp
// Tool file (Tool/MyTool.cs) - references the data model from AIGD:
using AIGD;

namespace com.IvanMurzak.Unity.MCP.Editor.API
{
    [AiToolType]
    public partial class Tool_Sample
    {
        public ResponseCallValueTool<MyResult> MyTool(...)
        {
            return ResponseCallValueTool<MyResult>.Success(new MyResult
            {
                Name = go.name,
                InstanceID = go.GetInstanceID()
            }).SetRequestID(requestId);
        }
    }
}

// Data model (Tool/Data/MyResult.cs) - top-level, in AIGD namespace, NOT nested:
namespace AIGD
{
    public class MyResult
    {
        [Description("Name of the GameObject.")]
        public string? Name { get; set; }

        [Description("Unity instance ID of the GameObject.")]
        public int InstanceID { get; set; }
    }
}

For simpler cases that do not need async/processing, you may return the model directly (without ResponseCallValueTool<T>) and Unity-MCP will wrap it automatically. The data model itself MUST still live as a top-level type in the AIGD namespace.

Show full SKILL.md (249 more words)Show less
Validate inputs early and throw clearly

Always validate required parameters at the top of the method before any Unity API calls. Throw ArgumentException or InvalidOperationException with descriptive messages so the AI knows exactly what went wrong and can self-correct:

csharp
if (string.IsNullOrEmpty(name))
    throw new ArgumentException("Name cannot be null or empty.", nameof(name));
Always use MainThread for Unity API calls

All Unity API calls (including GameObject.Find, AssetDatabase, EditorUtility, etc.) MUST run on the main thread. Wrap them in MainThread.Instance.Run(() => { ... }) for synchronous operations, or MainThread.Instance.RunAsync(async () => { ... }) when you need to await inside.

How to Call

bash
unity-mcp-cli run-system-tool unity-skill-create --input '{
  "path": "string_value",
  "code": "string_value"
}'

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

bash
unity-mcp-cli run-system-tool unity-skill-create --input-file args.json

Or pipe via stdin (recommended):

bash
unity-mcp-cli run-system-tool unity-skill-create --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
pathstringYesPath for the C# (.cs) file to be created. Sample: "Assets/Skills/MySkill.cs".
CRITICAL — Assembly Definition placement: If the project uses Assembly Definition files (.asmdef), you MUST place the script inside a folder that belongs to an assembly definition which already references all required dependencies (e.g. com.IvanMurzak.McpPlugin, UnityEditor, UnityEngine). Placing the file in the wrong assembly will cause compile errors due to missing type references. Before choosing a path, inspect existing .asmdef files with the assets-find tool to identify the correct assembly folder.
codestringYesC# code for the skill tool.
Input JSON Schema
json
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string"
    },
    "code": {
      "type": "string"
    }
  },
  "required": [
    "path",
    "code"
  ]
}

Output

This tool does not return structured output.

© 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/unity-skill-create of IvanMurzak/Unity-MCP.

Open the folder on GitHubat commit 4c8056f

Compare with similar skills

Unity Skill Create 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.

Unity Skill Create compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Unity Skill Create this skillIvanMurzak/Unity-MCP4.4k—~2.1kAutomated safety check: PassApache-2.0
Unity PluginTomLeeLive/openclaw-unity-plugin106—~5.1kAutomated safety check: PassApache-2.0
Unreal Blueprint Authoringflopperam/unreal-engine-mcp1.1k—~1.6kAutomated safety check: PassNone
Locus Unity BridgeMisaka-Mikoto-Tech/agent-skills275—~4kAutomated safety check: PassMIT
MCP DriverRandallLiuXin/GodotMaker5491 repos~1.1kAutomated safety check: PassCustom licence
Roblox Gamebrockmartin/roblox-game-skill197—~1.3kAutomated safety check: PassNone

Similar skills

  • Unity Plugin

    TomLeeLive/openclaw-unity-plugin

    Control Unity Editor via OpenClaw Unity Plugin. An agent skill from TomLeeLive/openclaw-unity-plugin.

    106 GitHub stars~5.1k tokensUpdated 29 days ago
    Game DevelopmentAuto-check passed
  • Unreal Blueprint Authoring

    flopperam/unreal-engine-mcp

    Walks an agent through creating and editing Unreal Engine Blueprints with the Flopperam MCP's bp_* tools, from inspection to commit and verification.

    1.1k GitHub stars~1.6k tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed
  • Locus Unity Bridge

    Misaka-Mikoto-Tech/agent-skills

    A skill your agent uses when an agent needs to inspect or control a real Unity Editor through Locus, especially when Unity MCP is unavailable, named-pipe discovery is needed, C must be executed, or…

    275 GitHub stars~4k tokensUpdated 16 days ago
    Game DevelopmentAuto-check passed
  • MCP Driver

    RandallLiuXin/GodotMaker

    Runtime debugging and live project inspection via godot-mcp.

    549 GitHub starsUsed in 1 repo~1.1k tokens
    Game DevelopmentAuto-check passed
  • Roblox Game

    brockmartin/roblox-game-skill

    Expert Roblox game development companion — Luau, Roblox Studio, MCP integration, simulator, tycoon, obby, RPG, horror, battle royale, game design, security, performance.

    197 GitHub stars~1.3k tokensUpdated 7 mo ago
    Game DevelopmentAuto-check passed
  • Unreal Engine MCP

    EpicGames/unreal-engine-skills-for-claude-code-plugin

    Drives a live Unreal Editor through the unreal-mcp server: spawn actors, edit Blueprints, materials and sequences, change properties and trigger Live Coding.

    325 GitHub stars~1.8k tokensUpdated 20 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 3 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 3 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 3 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 3 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 3 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 3 days ago
    Auto-check passed

Questions about Unity Skill Create

What does Unity Skill Create do?

Create a new skill (MCP tool) for the Unity Editor by writing a C (.cs) file that Unity compiles into the project. Unity Skill Create is an agent skill from IvanMurzak/Unity-MCP.cs) file that Unity compiles into the project.

When should I use Unity Skill Create?

Unity Skill Create fits situations like: tasks that involve MCP servers; tasks that involve Schema markup; tasks that involve Game development.

How do I install Unity Skill Create in Claude Code?

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

How do I install Unity Skill Create in Codex?

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

Can I use Unity Skill Create 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 unity-skill-create -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/unity-skill-create, .gemini/skills/unity-skill-create, .github/skills/unity-skill-create and .opencode/skills/unity-skill-create in your project.

What does Unity Skill Create need to run?

Going by SKILL.md and its folder, Unity Skill Create needs the command-line tools its instructions call (npm and npx). Our summary lists: Node.js.

Does Unity Skill Create 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 Unity Skill Create 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 Unity Skill Create use?

Unity Skill Create 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 Unity Skill Create use?

About 2.1k tokens (SKILL.md is roughly 8.6k 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 Unity Skill Create?

Skills that share tags, products or a category with Unity Skill Create: Unity Plugin (TomLeeLive/openclaw-unity-plugin, 106 stars), Unreal Blueprint Authoring (flopperam/unreal-engine-mcp, 1.1k stars), Locus Unity Bridge (Misaka-Mikoto-Tech/agent-skills, 275 stars) and MCP Driver (RandallLiuXin/GodotMaker, 549 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Unity Skill Create?

IvanMurzak (a GitHub user) maintains it in IvanMurzak/Unity-MCP, which has 4,392 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.