Agent skill

Reflection Method Call

by IvanMurzak in IvanMurzak/Unity-MCP

Call a C method by reflection — including private methods. An agent skill from IvanMurzak/Unity-MCP.

Apache-2.0Auto-check passedGame Development

Install Reflection Method Call

skills CLI
$ npx skills add IvanMurzak/Unity-MCP --skill reflection-method-call -a claude-code

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

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

At a glance

Call a C method by reflection — including private methods. An agent skill from IvanMurzak/Unity-MCP.

  • Game Development work in your project
  • SKILL.md covers Match levels (apply to…, Inputs, How to Call and Input, plus 1 more section
  • Calls npm and npx

What it does

Reflection Method Call is an agent skill from IvanMurzak/Unity-MCP. Call a C method by reflection — including private methods. Requires a method schema obtained via 'reflection-method-find'. Supports static methods, instance methods (with optional target deserialization), and main-thread / off-thread execution.

Its SKILL.md is about 2.5k 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. 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

  • Game Development work in your project

Example prompts

  • “reflection-method-find”
  • “/reflection-method-call”

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

Reflection Method Call loads about 2.5k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 476 words of instructions outside code blocks.

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

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). 476 words, ~2,540 tokens.

Download SKILL.mdSave it as .claude/skills/reflection-method-call/SKILL.md (or your agent's skills folder).
name
reflection-method-call
description
Call a C# method by reflection — including private methods. Requires a method schema obtained via 'reflection-method-find'. Supports static methods, instance methods (with optional target deserialization), and main-thread / off-thread execution.

Method C# / Call

Call C# method. Any method could be called, even private methods. It requires to receive proper method schema. Use 'reflection-method-find' to find available method before using it. Receives input parameters and returns result.

Match levels (apply to typeName, MethodName, Parameters)

  • typeNameMatchLevel / methodNameMatchLevel (default 1 — contains ignoring case): 0 ignore filter, 1 contains-ic, 2 contains-cs, 3 starts-with-ic, 4 starts-with-cs, 5 equals-ic, 6 equals-cs.
  • parametersMatchLevel (default 2 — equals): 0 ignore filter, 1 count matches, 2 equals.

Inputs

  • targetObject (optional) — for instance methods. When null, a new instance is created from the declaring type. Required shape: { type, value } (value is deserialized to type).
  • inputParameters (optional) — list of { type, name, value }. Names are enhanced against the resolved method signature if omitted.
  • executeInMainThread (default true) — Unity API calls should keep this true; set false only for thread-safe pure logic.

How to Call

bash
unity-mcp-cli run-tool reflection-method-call --input '{
  "filter": "string_value",
  "knownNamespace": false,
  "typeNameMatchLevel": 0,
  "methodNameMatchLevel": 0,
  "parametersMatchLevel": 0,
  "targetObject": "string_value",
  "inputParameters": "string_value",
  "executeInMainThread": false
}'

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

bash
unity-mcp-cli run-tool reflection-method-call --input-file args.json

Or pipe via stdin (recommended):

bash
unity-mcp-cli run-tool reflection-method-call --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
filteranyYesMethod reference. Used to find method in codebase of the project.
knownNamespacebooleanNoSet to true if 'Namespace' is known and full namespace name is specified in the 'filter.Namespace' property. Otherwise, set to false.
typeNameMatchLevelintegerNoMinimal match level for 'typeName'. 0 - ignore 'filter.typeName', 1 - contains ignoring case (default value), 2 - contains case sensitive, 3 - starts with ignoring case, 4 - starts with case sensitive, 5 - equals ignoring case, 6 - equals case sensitive.
methodNameMatchLevelintegerNoMinimal match level for 'MethodName'. 0 - ignore 'filter.MethodName', 1 - contains ignoring case (default value), 2 - contains case sensitive, 3 - starts with ignoring case, 4 - starts with case sensitive, 5 - equals ignoring case, 6 - equals case sensitive.
parametersMatchLevelintegerNoMinimal match level for 'Parameters'. 0 - ignore 'filter.Parameters', 1 - parameters count is the same, 2 - equals (default value).
targetObjectanyNoSpecify target object to call method on. Should be null if the method is static or if there is no specific target instance. New instance of the specified class will be created if the method is instance method and the targetObject is null. Required: type - full type name of the object to call method on, value - serialized object value (it will be deserialized to the specified type).
inputParametersanyNoMethod input parameters. Per each parameter specify: type - full type name of the object to call method on, name - parameter name, value - serialized object value (it will be deserialized to the specified type).
executeInMainThreadbooleanNoSet to true if the method should be executed in the main thread. Otherwise, set to false.
Show full SKILL.md (7 more words)Show less
Input JSON Schema
json
{
  "type": "object",
  "properties": {
    "filter": {
      "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.MethodRef"
    },
    "knownNamespace": {
      "type": "boolean"
    },
    "typeNameMatchLevel": {
      "type": "integer"
    },
    "methodNameMatchLevel": {
      "type": "integer"
    },
    "parametersMatchLevel": {
      "type": "integer"
    },
    "targetObject": {
      "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember"
    },
    "inputParameters": {
      "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMemberList"
    },
    "executeInMainThread": {
      "type": "boolean"
    }
  },
  "$defs": {
    "System.Collections.Generic.List(com.IvanMurzak.ReflectorNet.Model.MethodRef-Parameter)": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.MethodRef-Parameter",
        "description": "Parameter of a method. Contains type and name of the parameter."
      }
    },
    "com.IvanMurzak.ReflectorNet.Model.MethodRef-Parameter": {
      "type": "object",
      "properties": {
        "typeName": {
          "type": "string",
          "description": "Type of the parameter including namespace. Sample: 'System.String', 'System.Int32', 'UnityEngine.GameObject', etc."
        },
        "name": {
          "type": "string",
          "description": "Name of the parameter. It may be empty if the name is unknown."
        }
      },
      "description": "Parameter of a method. Contains type and name of the parameter."
    },
    "com.IvanMurzak.ReflectorNet.Model.MethodRef": {
      "type": "object",
      "properties": {
        "namespace": {
          "type": "string",
          "description": "Namespace of the class. It may be empty if the class is in the global namespace or the namespace is unknown."
        },
        "typeName": {
          "type": "string",
          "description": "Class name, or substring a class name. It may be empty if the class is unknown."
        },
        "methodName": {
          "type": "string",
          "description": "Method name, or substring of the method name. It may be empty if the method is unknown."
        },
        "inputParameters": {
          "$ref": "#/$defs/System.Collections.Generic.List(com.IvanMurzak.ReflectorNet.Model.MethodRef-Parameter)",
          "description": "List of input parameters. Can be null if the method has no parameters or the parameters are unknown."
        }
      },
      "description": "Method reference. Used to find method in codebase of the project."
    },
    "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": [
    "filter"
  ]
}

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/reflection-method-call of IvanMurzak/Unity-MCP.

Open the folder on GitHubat commit 4c8056f

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in IvanMurzak/Unity-MCP, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Reflection Method Call 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.

Reflection Method Call compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Reflection Method Call this skillIvanMurzak/Unity-MCP4.4k1 repos~2.5kAutomated safety check: PassApache-2.0
Locus Unity BridgeMisaka-Mikoto-Tech/agent-skills275—~4kAutomated safety check: PassMIT
Unity PluginTomLeeLive/openclaw-unity-plugin107—~5.1kAutomated safety check: PassApache-2.0
MCP Debuggerdebugmcp/mcp-debugger171—~3.8kAutomated safety check: PassMIT
Agent Frameworkjihadkhawaja/Egroo178—~1.9kAutomated safety check: PassApache-2.0
NpgsqlrestNpgsqlRest/NpgsqlRest132—~7kAutomated safety check: NotesMIT

Similar skills

  • 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
  • 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 29 days ago
    Game DevelopmentAuto-check passed
  • MCP Debugger

    debugmcp/mcp-debugger

    A skill your agent uses when investigating a bug, failing test, or unexpected runtime behavior and the mcp-debugger MCP server is available — drives real step-through debuggers (breakpoints, stack…

    171 GitHub stars~3.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Agent Framework

    jihadkhawaja/Egroo

    Build, extend, and debug AI agents in Egroo using the Microsoft Agent Framework (C .NET).

    178 GitHub stars~1.9k tokensUpdated 6 mo ago
    AI & LLM EngineeringAuto-check passed
  • Npgsqlrest

    NpgsqlRest/NpgsqlRest

    Build and modify REST APIs with NpgsqlRest — exposing PostgreSQL as HTTP endpoints from two sources (database functions/procedures/tables/views, and plain .sql files), driven by SQL comment…

    132 GitHub stars~7k tokensUpdated 5 days ago
    DatabasesAuto-check: notes
  • DisCatSharp Discord Development

    Aiko-IT-Systems/DisCatSharp

    Helps build, explain and troubleshoot C# Discord apps on DisCatSharp, answering from the project's installed version and the library's documentation rather than guesses.

    140 GitHub stars~1.2k tokensUpdated 2 days ago
    Backend & APIsAuto-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 Reflection Method Call

What does Reflection Method Call do?

Call a C method by reflection — including private methods. An agent skill from IvanMurzak/Unity-MCP. Reflection Method Call is an agent skill from IvanMurzak/Unity-MCP. Call a C method by reflection — including private methods.

When should I use Reflection Method Call?

Reflection Method Call fits situations like: game Development work in your project.

How do I install Reflection Method Call in Claude Code?

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

How do I install Reflection Method Call in Codex?

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

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

What does Reflection Method Call need to run?

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

Does Reflection Method Call 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 Reflection Method Call 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 Reflection Method Call use?

Reflection Method Call 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 Reflection Method Call use?

About 2.5k tokens (SKILL.md is roughly 10k 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 Reflection Method Call?

Skills that share tags, products or a category with Reflection Method Call: Locus Unity Bridge (Misaka-Mikoto-Tech/agent-skills, 275 stars), Unity Plugin (TomLeeLive/openclaw-unity-plugin, 107 stars), MCP Debugger (debugmcp/mcp-debugger, 171 stars) and Agent Framework (jihadkhawaja/Egroo, 178 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Reflection Method Call?

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.