Agent skill

Script Execute

by IvanMurzak in IvanMurzak/Unity-MCP

Compiles and executes C code dynamically using Roslyn. An agent skill from IvanMurzak/Unity-MCP.

Apache-2.0Auto-check passedGame Development

Install Script Execute

skills CLI
$ npx skills add IvanMurzak/Unity-MCP --skill script-execute -a claude-code

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

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

At a glance

Compiles and executes C code dynamically using Roslyn. An agent skill from IvanMurzak/Unity-MCP.

  • Tasks that involve Game development
  • SKILL.md covers Modes, Passing Unity objects as…, How to Call and Input, plus 1 more section
  • Calls npm and npx

What it does

Script Execute is an agent skill from IvanMurzak/Unity-MCP. Compiles and executes C code dynamically using Roslyn. Supports a full-code mode (default) and a body-only mode — see the skill body for the difference and for how to pass Unity object references as parameters.

Its SKILL.md is about 2k 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 Game development. It works with C# and 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 Game development

Example prompts

  • “Use the script-execute skill to compile and executes C code dynamically using Roslyn. An agent skill from IvanMurzak/Unity-MCP”
  • “/script-execute”

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

Script Execute loads about 2k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 473 words of instructions outside code blocks.

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

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). 473 words, ~2,014 tokens.

Download SKILL.mdSave it as .claude/skills/script-execute/SKILL.md (or your agent's skills folder).
name
script-execute
description
Compiles and executes C# code dynamically using Roslyn. Supports a full-code mode (default) and a body-only mode — see the skill body for the difference and for how to pass Unity object references as parameters.

Script / Execute

Modes

  • Full code mode (default, isMethodBody=false): the csharpCode argument must define a complete class with a static method (no top-level statements).
  • Body-only mode (isMethodBody=true): provide only the method body statements. The tool auto-generates the usings, class, and method header.

Passing Unity objects as parameters

Unity objects (GameObject, Component, etc.) can be passed as parameters using their Ref types (GameObjectRef, ComponentRef, etc.) or directly by type:

  • 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; the method body calls goRef.FindGameObject() to resolve it.
  • AIGD.ComponentRef — passes a ComponentRef POCO.
  • AIGD.ObjectRef — passes a base ObjectRef POCO.

How to Call

bash
unity-mcp-cli run-tool script-execute --input '{
  "csharpCode": "string_value",
  "className": "string_value",
  "methodName": "string_value",
  "parameters": "string_value",
  "isMethodBody": false
}'

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

bash
unity-mcp-cli run-tool script-execute --input-file args.json

Or pipe via stdin (recommended):

bash
unity-mcp-cli run-tool script-execute --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
csharpCodestringYesC# code to compile and execute. In full code mode (default, isMethodBody=false): must define a complete class with a static method. Example: 'using UnityEngine; public class Script { public static void Main() { Debug.Log("Hello"); } }'. Do NOT use top-level statements. In body-only mode (isMethodBody=true): provide only the method body statements. The tool auto-generates usings, class, and method header. Example body: 'go.SetActive(false);'. Custom helper classes can still be defined inline in the body-only string after the main logic, but for complex additional class definitions use full code mode instead.
classNamestringNoThe name of the class containing the method to execute. In body-only mode this becomes the generated class name.
methodNamestringNoThe name of the method to execute. Must be a static method. In body-only mode this becomes the generated method name.
parametersanyNoSerialized parameters to pass to the method. Each entry must specify 'name' and 'typeName'. Supported parameter types include primitives, strings, and Unity object references: - '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; the method body calls goRef.FindGameObject() to resolve it. - 'AIGD.ComponentRef': passes a ComponentRef POCO. - 'AIGD.ObjectRef': passes a base ObjectRef POCO. If the method does not require parameters, leave this empty.
isMethodBodybooleanNoWhen true, 'csharpCode' is treated as just the method body. The tool auto-generates standard using directives (System, UnityEngine, AIGD, com.IvanMurzak.Unity.MCP.Runtime.Extensions, UnityEditor), the class definition, and the method signature (void return type). Parameters from the 'parameters' list are automatically added to the method signature using their typeName and name. When false (default), 'csharpCode' must be a complete C# compilation unit with class and method definitions.
Show full SKILL.md (7 more words)Show less
Input JSON Schema
json
{
  "type": "object",
  "properties": {
    "csharpCode": {
      "type": "string"
    },
    "className": {
      "type": "string"
    },
    "methodName": {
      "type": "string"
    },
    "parameters": {
      "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMemberList"
    },
    "isMethodBody": {
      "type": "boolean"
    }
  },
  "$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": [
    "csharpCode"
  ]
}

Output

Output JSON Schema
json
{
  "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"
  ]
}

© 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/script-execute of IvanMurzak/Unity-MCP.

Open the folder on GitHubat commit 4c8056f

Compare with similar skills

Script Execute 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.

Script Execute compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Script Execute this skillIvanMurzak/Unity-MCP4.4k—~2kAutomated safety check: PassApache-2.0
Unity PluginTomLeeLive/openclaw-unity-plugin107—~5.1kAutomated safety check: PassApache-2.0
Sprite Genaldegad/sprite-gen2.6k—~4.5kAutomated 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

Similar skills

  • Unity Plugin

    TomLeeLive/openclaw-unity-plugin

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

    107 GitHub stars~5.1k tokensUpdated 1 mo ago
    Game DevelopmentAuto-check passed
  • Sprite Gen

    aldegad/sprite-gen

    Generates images and game sprites through GPT or Grok with guided provider choices, separate saved defaults, automatic cleanup and optional curation.

    2.6k GitHub stars~4.5k tokensUpdated yesterday
    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 17 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
  • Validate Gsdk

    PlayFab/gsdk

    Validates PlayFab Game Server SDK (GSDK) integrations in game server projects.

    170 GitHub stars~645 tokensUpdated 3 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 starsUsed in 1 repo~435 tokens
    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 starsUsed in 1 repo~665 tokens
    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 starsUsed in 1 repo~602 tokens
    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 4 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 starsUsed in 1 repo~1k tokens
    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 4 days ago
    Auto-check passed

Questions about Script Execute

What does Script Execute do?

Compiles and executes C code dynamically using Roslyn. An agent skill from IvanMurzak/Unity-MCP. Script Execute is an agent skill from IvanMurzak/Unity-MCP. Compiles and executes C code dynamically using Roslyn.

When should I use Script Execute?

Script Execute fits situations like: tasks that involve Game development.

How do I install Script Execute in Claude Code?

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

How do I install Script Execute in Codex?

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

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

What does Script Execute need to run?

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

Does Script Execute 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 Script Execute 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 Script Execute use?

Script Execute 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 Script Execute use?

About 2k tokens (SKILL.md is roughly 8.1k 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 Script Execute?

Skills that share tags, products or a category with Script Execute: Unity Plugin (TomLeeLive/openclaw-unity-plugin, 107 stars), Sprite Gen (aldegad/sprite-gen, 2.6k stars), Unreal Blueprint Authoring (flopperam/unreal-engine-mcp, 1.1k stars) and Locus Unity Bridge (Misaka-Mikoto-Tech/agent-skills, 275 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Script Execute?

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