Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
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. Triggers on Unity-related requests like inspecting scenes, creating objects, taking screenshots, testing gameplay, or controlling the Editor. --- name: unity-plugin version: 1.6.1 description: 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. Triggers on Unity-related requests like inspecting scenes, creating objects, taking screenshots, testing gameplay, or controlling the Editor. homepage: https://github.co Capability contract not published. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 2/25/2026.
Freshness
Last checked 2/25/2026
Best For
unity-plugin is best for general automation workflows where MCP and OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack
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. Triggers on Unity-related requests like inspecting scenes, creating objects, taking screenshots, testing gameplay, or controlling the Editor. --- name: unity-plugin version: 1.6.1 description: 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. Triggers on Unity-related requests like inspecting scenes, creating objects, taking screenshots, testing gameplay, or controlling the Editor. homepage: https://github.co
Public facts
5
Change events
1
Artifacts
0
Freshness
Feb 25, 2026
Capability contract not published. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 2/25/2026.
Trust score
Unknown
Compatibility
MCP, OpenClaw
Freshness
Feb 25, 2026
Vendor
Tomleelive
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 2/25/2026.
Setup snapshot
git clone https://github.com/TomLeeLive/openclaw-unity-skill.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Tomleelive
Protocol compatibility
MCP, OpenClaw
Adoption signal
2 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
bash
# From skill directory ./scripts/install-extension.sh # Restart gateway openclaw gateway restart
bash
# 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.
text
unity_execute: debug.hierarchy {depth: 2}
unity_execute: scene.getActivetext
unity_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}text
unity_execute: input.clickUI {name: "PlayButton"}
unity_execute: input.type {text: "TestUser", elementName: "UsernameInput"}
unity_execute: debug.screenshottext
unity_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 # Resume
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB OPENCLEW
Editorial quality
ready
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. Triggers on Unity-related requests like inspecting scenes, creating objects, taking screenshots, testing gameplay, or controlling the Editor. --- name: unity-plugin version: 1.6.1 description: 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. Triggers on Unity-related requests like inspecting scenes, creating objects, taking screenshots, testing gameplay, or controlling the Editor. homepage: https://github.co
Control Unity Editor through ~100 built-in tools. Works in both Editor and Play mode.
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 restart
The 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.
이 스킬은 disableModelInvocation: true로 설정되어 있습니다.
설정 변경 방법은 README.md를 참조하세요.
| 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.getActive
unity_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.screenshot
unity_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 # Resume
unity_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.close
unity_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.getResults
# Debug logging
unity_execute: script.execute {code: "Debug.Log('Hello')"}
# 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 objects
Unity may not auto-recompile after code changes. Use:
editor.refresh # Full asset refresh + recompile
For 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 |
MIT License - See LICENSE file
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/snapshot"
curl -s "https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/contract"
curl -s "https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP",
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-04-17T01:50:18.007Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
}
],
"flattenedTokens": "protocol:MCP|unknown|profile protocol:OPENCLEW|unknown|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Tomleelive",
"href": "https://github.com/TomLeeLive/openclaw-unity-skill",
"sourceUrl": "https://github.com/TomLeeLive/openclaw-unity-skill",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T02:06:41.510Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP, OpenClaw",
"href": "https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-02-25T02:06:41.510Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "2 GitHub stars",
"href": "https://github.com/TomLeeLive/openclaw-unity-skill",
"sourceUrl": "https://github.com/TomLeeLive/openclaw-unity-skill",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T02:06:41.510Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/tomleelive-openclaw-unity-skill/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to unity-plugin and adjacent AI workflows.