Unity Skill Create
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.
Control Unity Editor via OpenClaw Unity Plugin. An agent skill from TomLeeLive/openclaw-unity-plugin.
$ npx skills add TomLeeLive/openclaw-unity-plugin --skill unity-plugin -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TomLeeLive/openclaw-unity-plugin unity-plugin --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/TomLeeLive/openclaw-unity-plugin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skill .claude/skills/unity-plugin && rm -rf skills-srcUse ~/.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/
Install the "unity-plugin" agent skill from https://github.com/TomLeeLive/openclaw-unity-plugin/tree/main/skill into .claude/skills/unity-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-plugin", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/TomLeeLive/openclaw-unity-plugin/tree/main/skillType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add TomLeeLive/openclaw-unity-plugin --skill unity-plugin -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TomLeeLive/openclaw-unity-plugin unity-plugin --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TomLeeLive/openclaw-unity-plugin.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skill .agents/skills/unity-plugin && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "unity-plugin" agent skill from https://github.com/TomLeeLive/openclaw-unity-plugin/tree/main/skill into .agents/skills/unity-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-plugin", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TomLeeLive/openclaw-unity-plugin --skill unity-plugin -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TomLeeLive/openclaw-unity-plugin unity-plugin --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TomLeeLive/openclaw-unity-plugin.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skill .cursor/skills/unity-plugin && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "unity-plugin" agent skill from https://github.com/TomLeeLive/openclaw-unity-plugin/tree/main/skill into .cursor/skills/unity-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-plugin", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/TomLeeLive/openclaw-unity-plugin.git --path skill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add TomLeeLive/openclaw-unity-plugin --skill unity-plugin -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TomLeeLive/openclaw-unity-plugin unity-plugin --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TomLeeLive/openclaw-unity-plugin.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skill .gemini/skills/unity-plugin && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "unity-plugin" agent skill from https://github.com/TomLeeLive/openclaw-unity-plugin/tree/main/skill into .gemini/skills/unity-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-plugin", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install TomLeeLive/openclaw-unity-plugin unity-pluginInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add TomLeeLive/openclaw-unity-plugin --skill unity-plugin -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TomLeeLive/openclaw-unity-plugin.git skills-src && mkdir -p .github/skills && cp -r skills-src/skill .github/skills/unity-plugin && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "unity-plugin" agent skill from https://github.com/TomLeeLive/openclaw-unity-plugin/tree/main/skill into .github/skills/unity-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-plugin", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TomLeeLive/openclaw-unity-plugin --skill unity-plugin -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TomLeeLive/openclaw-unity-plugin unity-plugin --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TomLeeLive/openclaw-unity-plugin.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skill .opencode/skills/unity-plugin && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "unity-plugin" agent skill from https://github.com/TomLeeLive/openclaw-unity-plugin/tree/main/skill into .opencode/skills/unity-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-plugin", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
unity-pluginControl Unity Editor via OpenClaw Unity Plugin. An agent skill from TomLeeLive/openclaw-unity-plugin.
Unity Plugin is an agent skill from TomLeeLive/openclaw-unity-plugin. Control Unity Editor via OpenClaw Unity Plugin. Use for Unity game development tasks including scene management, GameObject/Component manipulation, debugging, input simulation, and Play mode control — including arbitrary C execution (script.execute) and reflection-based editor calls, which can modify scenes, assets, and settings. Project-changing and destructive operations (delete, save, package install, code execution, input simulation) are refused at runtime unless the operator starts the gateway with…
Its SKILL.md is about 5.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/tools.md`).
It sits in Game Development, covering Game development and MCP servers. It works with Unity, Model Context Protocol and C#. The repository describes itself as: 55 MCP tools to drive the Unity Editor from any MCP-compatible AI agent — scenes, GameObjects, prefabs, assets, tests, and builds. OpenClaw gateway included for remote and chat… The licence is Apache-2.0.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b00c811. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
claudecurlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comAlso links to:
docs.openclaw.aiFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Unity Plugin loads about 5.1k tokens when it runs, and up to ~8.7k if it reads all its reference files. Until then it costs about 218 tokens; SKILL.md has 1,787 words of instructions outside code blocks.
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.
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.
The full file from TomLeeLive/openclaw-unity-plugin at commit b00c811, republished under its Apache-2.0 licence (© TomLeeLive). 1,787 words, ~5,111 tokens.
.claude/skills/unity-plugin/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Control Unity Editor through ~100 built-in tools. Works in both Editor and Play mode.
What this skill can change: anything the Unity Editor can — GameObjects and
components, scenes, prefabs, materials, shaders, textures and ScriptableObjects,
files under Assets/, installed packages, Play mode, and arbitrary C# run inside
the Editor process (script.execute, plus reflection-based calls).
What runs without asking: read-only tools only — get*, list, find,
script.read, debug.hierarchy, debug.screenshot, console.getLogs. Their
behaviour is unchanged.
What is gated at runtime: every project-changing tool — create, delete,
destroy, save, set*, component.add/remove, asset.* writes, prefab.*,
material.*, texture.*, editor.refresh/recompile, Play-mode control, input
simulation, test.run, script.execute — and any batch.execute that carries
one of them. The gateway extension refuses these by default. A tool name it does
not recognise (project-registered custom tools included) counts as
project-changing unless its verb is clearly read-only: the gate fails closed,
never open.
How to enable them — both steps are required:
The operator starts the gateway with the opt-in environment variable. It is read from the gateway process, so the model cannot set it:
OPENCLAW_EDITOR_ALLOW_DESTRUCTIVE=1 openclaw gateway restart
# or, scoped to this skill only:
OPENCLAW_UNITY_ALLOW_DESTRUCTIVE=1 openclaw gateway restartThe caller passes confirm: true on each project-changing call, after the
user has approved that specific change:
unity_execute: asset.delete {path: "Assets/Old/Item.prefab"}, confirm: trueMissing either one is a refusal with an explanation of what was blocked and how to allow it. Nothing reaches the Editor in the meantime.
Preview first: dryRun: true reports how a call is classified and what would
be sent, and sends nothing:
unity_execute: gameobject.destroy {name: "Player"}, dryRun: true
→ {risk: "project-changing", requiresConfirmation: true, wouldRun: false, executed: false}Check the current state: openclaw unity status prints whether
project-changing tools are enabled, and GET /unity/status reports the same as
destructiveOperations: "enabled" | "blocked".
Scope of the gate: it lives in the gateway extension that ships with this
skill (extension/index.ts), so it covers every call routed through the OpenClaw
gateway — Telegram, Discord and the other channels. The Unity Editor add-on's
local MCP bridge (port 27182, Mode 2 below) is a separate install from the plugin
repository and is not gated by this package: keep that port on the local machine
and review the plugin repository for its own controls.
For Telegram, Discord, and other OpenClaw channels:
For Claude Code, Cursor, and local AI tools:
claude mcp add unity -- node <path>/MCP~/index.jsIf unity_execute tool is not available, install the gateway extension:
# From skill directory
./scripts/install-extension.sh
# Restart gateway
openclaw gateway restartThe extension files are in extension/ directory.
# 1. Copies extension files from skill to gateway
# Source: <skill>/extension/
# Destination: ~/.openclaw/extensions/unity/
# 2. Files installed:
# - index.ts # Extension entry point (HTTP handlers, tools)
# - package.json # Extension metadata
# After installation, restart gateway to load the extension.When publishing to ClawHub, disableModelInvocation controls who may start the skill:
| Setting | AI Auto-Invoke | User Explicit Request |
|---|---|---|
false (default) | ✅ Allowed | ✅ Allowed |
true | ❌ Blocked | ✅ Allowed |
trueReason: this skill can execute arbitrary C# inside the Editor (script.execute)
and call Editor APIs by reflection. That is the whole point of it, and it is also
why it should never start on its own inference. As of v1.7.0 this skill ships with
disableModelInvocation: true — it runs only on explicit user request, and every
project-changing call is gated on top of that (see
Safety and permissions).
The full capability disclosure — arbitrary code execution, destructive operations, network surface — is in Security & Privacy Disclosure at the end of this document. Read it before enabling the skill.
| Category | Key Tools |
|---|---|
| Scene | scene.getActive, scene.getData, scene.load, scene.open, scene.save |
| GameObject | gameobject.find, gameobject.getAll, gameobject.create, gameobject.destroy |
| Component | component.get, component.set, component.add, component.remove |
| Transform | transform.setPosition, transform.setRotation, transform.setScale |
| Debug | debug.hierarchy, debug.screenshot, console.getLogs |
| Input | input.clickUI, input.type, input.keyPress, input.mouseClick |
| Editor | editor.getState, editor.play, editor.stop, editor.refresh |
| Material | material.create, material.assign, material.modify, material.getInfo |
| Prefab | prefab.create, prefab.instantiate, prefab.open, prefab.save |
| Asset | asset.find, asset.copy, asset.move, asset.delete |
| Package | package.add, package.remove, package.list, package.search |
| Test | test.run, test.list, test.getResults |
unity_execute: debug.hierarchy {depth: 2}
unity_execute: scene.getActiveunity_execute: gameobject.find {name: "Player"}
unity_execute: component.get {name: "Player", componentType: "Transform"}
unity_execute: transform.setPosition {name: "Player", x: 0, y: 5, z: 0}unity_execute: input.clickUI {name: "PlayButton"}
unity_execute: input.type {text: "TestUser", elementName: "UsernameInput"}
unity_execute: debug.screenshotunity_execute: editor.play # Enter Play mode
unity_execute: editor.stop # Exit Play mode
unity_execute: editor.getState # Check current state
unity_execute: editor.pause # Pause
unity_execute: editor.unpause # Resumeunity_execute: material.create {name: "RedMetal", color: "#FF0000", metallic: 0.8}
unity_execute: material.assign {gameObjectName: "Player", materialPath: "Assets/Materials/RedMetal.mat"}
unity_execute: material.modify {path: "Assets/Materials/RedMetal.mat", metallic: 1.0, emission: "#FF4444"}unity_execute: prefab.create {gameObjectName: "Player", path: "Assets/Prefabs/Player.prefab"}
unity_execute: prefab.instantiate {prefabPath: "Assets/Prefabs/Player.prefab", x: 0, y: 1, z: 0}
unity_execute: prefab.open {path: "Assets/Prefabs/Player.prefab"}
unity_execute: prefab.save
unity_execute: prefab.closeunity_execute: asset.find {query: "Player", type: "Prefab"}
unity_execute: asset.copy {sourcePath: "Assets/Prefabs/Player.prefab", destPath: "Assets/Backup/Player.prefab"}
unity_execute: asset.move {sourcePath: "Assets/Old/Item.prefab", destPath: "Assets/New/Item.prefab"}unity_execute: package.list
unity_execute: package.search {query: "TextMeshPro"}
unity_execute: package.add {packageName: "com.unity.textmeshpro"}
unity_execute: package.add {gitUrl: "https://github.com/example/package.git"}unity_execute: test.list {testMode: "EditMode"}
unity_execute: test.run {testMode: "EditMode", filter: "PlayerTests"}
unity_execute: test.getResultsscript.execute is project-changing: it needs the operator opt-in and
confirm: true on every call (see Safety and permissions).
# Debug logging
unity_execute: script.execute {code: "Debug.Log('Hello')"}, confirm: true
# Time manipulation
unity_execute: script.execute {code: "Time.timeScale = 0.5"}
# PlayerPrefs
unity_execute: script.execute {code: "PlayerPrefs.SetInt('score', 100)"}
# Reflection-based method calls
unity_execute: script.execute {code: "MyClass.MyMethod()"}
unity_execute: script.execute {code: "MyClass.MyStaticMethod('param1', 123)"}console.getLogs - Get logs with optional type filter (Log/Warning/Error)console.getErrors - Get error/exception logs (with optional warnings)console.clear - Clear captured logsscene.list - List scenes in build settingsscene.getActive - Get active scene infoscene.getData - Get full hierarchy datascene.load - Load scene by name (Play mode)scene.open - Open scene in Editor modescene.save - Save active scene (Editor mode)scene.saveAll - Save all open scenes (Editor mode)gameobject.find - Find by name, tag, or componentgameobject.getAll - Get all GameObjects with filteringgameobject.create - Create object or primitive (Cube, Sphere, etc.)gameobject.destroy - Destroy objectgameobject.delete - Delete object (alias for destroy)gameobject.getData - Get detailed datagameobject.setActive - Enable/disablegameobject.setParent - Change hierarchytransform.getPosition - Get world position {x, y, z}transform.getRotation - Get Euler rotation {x, y, z}transform.getScale - Get local scale {x, y, z}transform.setPosition - Set world position {x, y, z}transform.setRotation - Set Euler rotationtransform.setScale - Set local scalecomponent.add - Add component by type namecomponent.remove - Remove componentcomponent.get - Get component data/propertiescomponent.set - Set field/property valuecomponent.list - List available component typesscript.execute - Execute code: Debug.Log, Time, PlayerPrefs, reflection callsscript.read - Read script filescript.list - List project scriptsapp.getState - Get play mode, FPS, timeapp.play - Enter/exit Play modeapp.pause - Toggle pauseapp.stop - Stop Play modedebug.log - Write to consoledebug.screenshot - Capture screenshotdebug.hierarchy - Text hierarchy vieweditor.refresh - Refresh AssetDatabase (triggers recompile)editor.recompile - Request script recompilationeditor.domainReload - Force domain reloadeditor.focusWindow - Focus window (game/scene/console/hierarchy/project/inspector)editor.listWindows - List open windowseditor.getState - Get editor stateeditor.play - Enter Play modeeditor.stop - Exit Play modeeditor.pause / editor.unpause - Pause controlinput.keyPress - Press and release keyinput.keyDown / input.keyUp - Hold/release keyinput.type - Type text into fieldinput.mouseMove - Move cursorinput.mouseClick - Click at positioninput.mouseDrag - Drag operationinput.mouseScroll - Scroll wheelinput.getMousePosition - Get cursor positioninput.clickUI - Click UI element by namematerial.create - Create material with shader, color, metallic, smoothnessmaterial.assign - Assign material to GameObjectmaterial.modify - Modify material properties (color, metallic, emission)material.getInfo - Get detailed material info with all shader propertiesmaterial.list - List materials in project with filteringprefab.create - Create prefab from scene GameObjectprefab.instantiate - Instantiate prefab in scene with positionprefab.open - Open prefab for editingprefab.close - Close prefab editing modeprefab.save - Save currently edited prefabasset.find - Search assets by query, type, folderasset.copy - Copy asset to new pathasset.move - Move/rename assetasset.delete - Delete asset (with trash option)asset.refresh - Refresh AssetDatabaseasset.import - Import/reimport specific assetasset.getPath - Get asset path by namepackage.add - Install package by name or git URLpackage.remove - Remove installed packagepackage.list - List installed packagespackage.search - Search Unity package registrytest.run - Run EditMode/PlayMode tests with filteringtest.list - List available teststest.getResults - Get last test run resultsbatch.execute - Execute multiple tools in one call (10-100x performance)commands: Array of {tool, params} objectsstopOnError: Stop on first error (default: false)session.getInfo - Get session info (project, processId, machineName, sessionId)scriptableobject.create - Create new ScriptableObject assetscriptableobject.load - Load and inspect ScriptableObject fieldsscriptableobject.save - Save ScriptableObject changesscriptableobject.getField - Get specific field valuescriptableobject.setField - Set field value with auto-savescriptableobject.list - List ScriptableObjects in projectshader.list - List shaders in projectshader.getInfo - Get shader properties and infoshader.getKeywords - Get shader keywordstexture.create - Create new texture with color filltexture.getInfo - Get texture info (size, format, import settings)texture.setPixels - Fill region with colortexture.resize - Resize texture via import settingstexture.list - List textures in projectRegister project-specific tools:
OpenClawCustomTools.Register(
"mygame.getScore",
"Get current score",
(args) => new { success = true, score = GameManager.Score }
);Access Unity data via MCP resource URIs:
| URI | Description |
|---|---|
unity://scene/hierarchy | Scene hierarchy |
unity://scene/active | Active scene info |
unity://project/scripts | Script list |
unity://project/scenes | Scene list |
unity://editor/state | Editor state |
unity://console/logs | Console logs |
unity://session/info | Session info |
ScreenCapture - includes all UI overlaysCamera.main.Render() - no overlay UI{method: "camera"} for camera-only capturegameobject.find {name: "Player"} # By exact name
gameobject.find {tag: "Enemy"} # By tag
gameobject.find {componentType: "Camera"} # By component
gameobject.getAll {activeOnly: true} # All active objectsUnity may not auto-recompile after code changes. Use:
editor.refresh # Full asset refresh + recompileFor Claude Code / Cursor integration:
claude mcp add unity -- node /path/to/MCP~/index.jscurl http://127.0.0.1:27182/statusKeyboard/mouse simulation works for UI interactions but NOT for Input.GetKey(). For gameplay testing:
transform.setPosition to move objects directly| Issue | Solution |
|---|---|
| Tool timeout | Check Unity is responding, try editor.getState |
| Gateway no connection | Check Window → OpenClaw Plugin → Settings |
| MCP no connection | Start MCP Bridge, verify port 27182 |
| Scripts not updating | Use editor.refresh to force recompile |
| Wrong screenshot | Use Play mode for game view with UI |
| MCP 504 timeout | Unity busy or MCP Bridge not started |
| Test Runner not found | Install com.unity.test-framework package |
This skill drives a live Unity Editor — treat it like giving a collaborator editor access. Full disclosure of capabilities:
script.execute compiles and runs C# inside the Unity process, and several tools use reflection to reach editor internals. This is the core of editor automation — it also means the skill can do anything the editor can. Only use in trusted, version-controlled projects. Ask the user to review C# snippets before running code they didn't write.script.execute are refused by the gateway extension unless it was started with OPENCLAW_EDITOR_ALLOW_DESTRUCTIVE=1 and the call carries confirm: true. Confirm the change with the user before setting it — see Safety and permissions.disableModelInvocation: true is set — the model cannot auto-invoke this skill; it runs only on explicit user request. Project-changing tools default to refused, and dryRun: true previews any call without sending it. Keep project backups / source control current before automation sessions.Apache-2.0 — See LICENSE.md
© TomLeeLive, 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
SKILL.md and 4 other files (references) in skill of TomLeeLive/openclaw-unity-plugin.
Open the folder on GitHubat commit b00c811
Unity Plugin 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Unity Plugin this skillTomLeeLive/openclaw-unity-plugin | 106 | — | ~5.1k | Automated safety check: Pass | Apache-2.0 | |
| Unity Skill CreateIvanMurzak/Unity-MCP | 4.4k | — | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Unity Initial SetupIvanMurzak/Unity-MCP | 4.4k | — | ~855 | Automated safety check: Pass | Apache-2.0 | |
| Unity Tool ListIvanMurzak/Unity-MCP | 4.4k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Unreal Blueprint Authoringflopperam/unreal-engine-mcp | 1.1k | — | ~1.6k | Automated safety check: Pass | None | |
| Locus Unity BridgeMisaka-Mikoto-Tech/agent-skills | 275 | — | ~4k | Automated safety check: Pass | MIT |
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.
IvanMurzak/Unity-MCP
Provides an initial setup for AI Skills, unity-mcp-cli command line tool installation and everything else that is helpful to set up at the start of the project.
IvanMurzak/Unity-MCP
List all Unity-MCP tools registered in the connected Unity Editor instance.
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.
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…
RandallLiuXin/GodotMaker
Runtime debugging and live project inspection via godot-mcp.
Works with
Categories
Control Unity Editor via OpenClaw Unity Plugin. An agent skill from TomLeeLive/openclaw-unity-plugin. Unity Plugin is an agent skill from TomLeeLive/openclaw-unity-plugin. Control Unity Editor via OpenClaw Unity Plugin.
Unity Plugin fits situations like: unity game development tasks including scene management; gameObject/Component manipulation; input simulation; play mode control — including arbitrary C execution (script.execute) and reflection-based editor calls.
Run `npx skills add TomLeeLive/openclaw-unity-plugin --skill unity-plugin -a claude-code`. Or copy the skill folder (skill in TomLeeLive/openclaw-unity-plugin) into .claude/skills/unity-plugin in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TomLeeLive/openclaw-unity-plugin --skill unity-plugin -a codex`. Or copy the skill folder (skill in TomLeeLive/openclaw-unity-plugin) into .agents/skills/unity-plugin in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TomLeeLive/openclaw-unity-plugin --skill unity-plugin -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-plugin, .gemini/skills/unity-plugin, .github/skills/unity-plugin and .opencode/skills/unity-plugin in your project.
Going by SKILL.md and its folder, Unity Plugin needs the command-line tools its instructions call (claude and curl).
SKILL.md names 2 domains. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. As links in the text: docs.openclaw.ai. This is read from the text; nothing was executed.
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.
Unity Plugin 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.
About 5.1k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Unity Plugin: Unity Skill Create (IvanMurzak/Unity-MCP, 4.4k stars), Unity Initial Setup (IvanMurzak/Unity-MCP, 4.4k stars), Unity Tool List (IvanMurzak/Unity-MCP, 4.4k stars) and Unreal Blueprint Authoring (flopperam/unreal-engine-mcp, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TomLeeLive (a GitHub user) maintains it in TomLeeLive/openclaw-unity-plugin, which has 106 GitHub stars. The repository was last updated on September 8, 2026.
Source: TomLeeLive/openclaw-unity-plugin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.