unity-mcp
Skill22 starsChanged 7 months agoMITView on GitHub
Use when controlling Unity editor via AI, automating scene operations, or programmatically generating Unity assets and scripts
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Borneon/UnityCli-Claude-Skillstheir own version, first seen Jul 26, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- Borneon/UnityCli-Claude-Skills★ 6same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository17 other files it gives its agents.
- code-analysisSkill
- code-generatorSkill
- contributingSkill
- daily-logSkill
- devflowSkill
- git-workflowSkill
- hexo-blog-updateSkill
- kimicode-vision-bridgeSkill
- knowledge-base-cacheSkill
- layered-first-principles-teachingSkill
- msvc-buildSkill
- mvp-designSkill
- paper-first-principlesSkill
- requirement-clarificationSkill
- research-to-practiceSkill
- taskmaster-skillSkill
- ue5-umgSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
22 rules. About 0 are common, 15 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈15
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 53
Check in the Unity editor:
- Distinctive: line 62
Search for "MCP" or "MCP for Unity"
- Distinctive: line 85
Wait for automatic download and installation of uvx and related dependencies
- Distinctive: line 147
Keep it running, do not close the terminal
- Very specific: line 148
Use --project-scoped-tools to enable project-level tools
- Distinctive: line 323
No MCP-related folders in the Project
- Distinctive: line 335
Wait for the installation to complete
- Very specific: line 340
Check if the menu bar has MCP or Window → MCP
- Very specific: line 341
Check if the Project window has the MCP folder
- Distinctive: line 360
Wait for the installation to complete (may take a few minutes)
- Very specific: line 417
Editor script: Write a tool script under the Editor folder to batch assign values
- Distinctive: line 418
Pre-create Sprite: Use Unity's Sprite Editor to convert the texture into a Sprite asset
- Very specific: line 427
Solution: Use the object format {"r":x,"g":y,"b":z,"a":w} instead of the array [x,y,z,w]
- Very specific: line 439
Ensure every request includes the mcp-session-id Header
- Distinctive: line 467
Wait for the status to change to "Connected" or "Running"
- Distinctive: line 500
Check if the MCP Server is running (is the terminal window still open)
- Distinctive: line 501
Check if port 8080 is occupied
- Distinctive: line 506
Check if the firewall is blocking the connection
- Distinctive: line 515
Solution: Check the API documentation and use the correct parameter names:
- Distinctive: line 577
Use Instance ID: Use the Instance ID instead of the name when operating on specific objects
- Distinctive: line 578
Batch operations: Use loops for batch creation to reduce the number of API calls
- Very specific: line 579
Error handling: Check the success field after each operation
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
SKILL: unity-mcp
Overview
A reference guide for deploying and using the Unity MCP Server, covering API operations, data type formats, and common issue resolution.
Complete deployment guide, API usage tips, and troubleshooting manual for the Unity MCP (Model Context Protocol) Server.
Description
This skill covers:
- Starting and connecting the Unity MCP Server
- Common API operations (GameObject, Component, Scene, Asset)
- Parameter format specifications (Color, Vector3, and other special types)
- Common problem troubleshooting and resolution approaches
When to Use
- You need to control the Unity editor via AI automation
- You are batch-creating or modifying GameObjects, components, or scenes
- You are programmatically generating Unity assets or scripts
- You encounter connection issues, session errors, or data type format problems with Unity MCP
- You need to remotely debug or inspect a Unity scene
Do not use when:
- The task is purely about Unity game logic coding without MCP integration
- You only need general Unity scripting help without editor automation
- You are working with a different MCP server or game engine
When to Invoke
Usage scenarios:
- Need to control the Unity editor via AI to perform automated operations
- Batch create/modify scene objects, components
- Procedurally generate assets or scripts
- Remote debugging and scene inspection
- Automated testing workflows
Prerequisites
Environment requirements:
- Unity 6000+ (or other supported versions)
- Unity MCP plugin/package installed
- Python uvx tool
1. Check if MCP Plugin is Installed
Check in the Unity editor:
- Whether the menu bar has MCP or Window → MCP
- Whether the Project window has
MCPorMcpForUnityrelated folders
If the MCP plugin is not installed:
- Install via Unity Asset Store:
- Open Window → Package Manager
- Select Unity Registry or My Assets
- Search for "MCP" or "MCP for Unity"
- Click Install
- Or install via Git URL:
- Package Manager → + → Add package from git URL
- Enter:
https://github.com/anthropics/unity-mcp.git - Click Add
- Restart Unity after installation
2. Check if uvx is Installed
# Windows
Test-Path "$env:USERPROFILE\.local\bin\uvx.exe"
# macOS/Linux
which uvxIf not installed:
- In the Unity editor, open Window → MCP → Local Setup
- Click "Install" or "Setup Environment"
- Wait for automatic download and installation of uvx and related dependencies
- Restart the terminal/IDE to load the new environment variables
Plugin source:
- Unity MCP Server:
mcpforunityserver>=0.0.0a0
Deployment
1. Start the MCP Server
Check uvx Installation Location
uvx is usually installed in the following locations:
Windows:
# Standard installation path
$env:USERPROFILE\.local\bin\uvx.exe
# Or
C:\Users\<Username>\.local\bin\uvx.exe
# Check if it exists
Test-Path "$env:USERPROFILE\.local\bin\uvx.exe"macOS/Linux:
~/.local/bin/uvx
# Or
/usr/local/bin/uvxIf uvx Does Not Exist
⚠️ Prompt the user:
uvx tool not found. Please do the following in the Unity editor:
1. Open Window → MCP → Local Setup
2. Click "Install Dependencies" or "Setup Local Environment"
3. Wait for the installation to complete
4. Try starting the MCP Server againStart Command
Windows (dynamic path):
$uvxPath = "$env:USERPROFILE\.local\bin\uvx.exe"
if (Test-Path $uvxPath) {
& $uvxPath --prerelease explicit --from "mcpforunityserver>=0.0.0a0" mcp-for-unity --transport http --http-url http://localhost:8080 --project-scoped-tools
} else {
Write-Host "Error: uvx not found. Please install dependencies by clicking MCP → Local Setup in Unity."
}macOS/Linux:
~/.local/bin/uvx --prerelease explicit --from "mcpforunityserver>=0.0.0a0" mcp-for-unity --transport http --http-url http://localhost:8080 --project-scoped-toolsNote:
- First launch will download Python dependencies (approx. 30MB, takes 1-2 minutes)
- Keep it running, do not close the terminal
- Use
--project-scoped-toolsto enable project-level tools
2. Connection Flow
1. Initialize session
POST http://localhost:8080/mcp
Headers: Accept: application/json, text/event-stream
Body: {"jsonrpc":"2.0","id":1,"method":"initialize",...}
↓
2. Extract Session ID (from response header mcp-session-id)
↓
3. Set active Unity instance
↓
4. Execute tool callsPowerShell Example:
$headers = @{
"Content-Type" = "application/json"
"Accept" = "application/json, text/event-stream"
"mcp-session-id" = "your-session-id"
}
# Initialize
$init = '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"openclaw","version":"1.0"}}}'
$response = Invoke-WebRequest -Uri "http://localhost:8080/mcp" -Method Post -Headers $headers -Body $init
$sessionId = $response.Headers["mcp-session-id"]
# Set active instance
$setInstance = '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"set_active_instance","arguments":{"instance":"ProjectName@hash"}}}'Common Operations
GameObject Management
// Create empty object
{
"name": "manage_gameobject",
"arguments": {
"action": "create",
"name": "MyObject",
"position": [0, 0, 0]
}
}
// Create Sprite object (2D)
{
"action": "create",
"name": "Tree2D",
"position": [1, 2, 0]
}
// Then add SpriteRenderer component
// Delete object
{
"action": "delete",
"name": "MyObject"
}Component Management
// Add component
{
"name": "manage_components",
"arguments": {
"action": "add",
"target": "Tree2D",
"component_type": "SpriteRenderer"
}
}
// Set property ⚠️ Pay attention to type format
{
"action": "set_property",
"target": "Tree2D",
"component_type": "SpriteRenderer",
"property": "color",
"value": {"r": 0.1, "g": 0.5, "b": 0.2, "a": 1.0} // ✅ Object format
// ❌ Incorrect: [0.1, 0.5, 0.2, 1]
}Scene Management
// Create scene
{
"name": "manage_scene",
"arguments": {
"action": "create",
"name": "MyScene",
"path": "MyFolder"
}
}
// Save scene
{
"action": "save"
}
// Get hierarchy
{
"action": "get_hierarchy",
"page_size": 50
}Asset Management
// Create folder
{
"name": "manage_asset",
"arguments": {
"action": "create_folder",
"path": "MyFolder"
}
}
// Create texture
{
"action": "create",
"width": 64,
"height": 64,
"path": "MyFolder/Texture.png"
}
// Search assets
{
"action": "search",
"path": "MyFolder",
"page_size": 50
}Critical Data Types
⚠️ Color Format
Incorrect format (array):
"value": [0.1, 0.5, 0.2, 1.0]Correct format (object):
"value": {"r": 0.1, "g": 0.5, "b": 0.2, "a": 1.0}PowerShell construction:
$color = @{r=0.1; g=0.5; b=0.2; a=1.0} | ConvertTo-Json -Compress
# Result: {"r":0.1,"g":0.5,"b":0.2,"a":1}Vector3 Format
"position": [1, 2, 3]
"scale": [1.5, 2, 1]
"rotation": [0, 90, 0]Common Issues & Solutions
Issue -1: MCP Plugin Not Installed
Symptoms:
- No MCP or Window → MCP in the Unity menu
- No MCP-related folders in the Project
- Unable to find the MCP settings interface
Resolution steps:
- Open Unity Asset Store:
Window → Package Manager- Switch to the Unity Registry tab
- Search for "MCP" or "MCP for Unity"
- Install the plugin:
- Find the
MCP for Unitypackage - Click Install
- Wait for the installation to complete
- Find the
- Restart the Unity editor
- Verify installation:
- Check if the menu bar has
MCPorWindow → MCP - Check if the Project window has the
MCPfolder
- Check if the menu bar has
Issue 0: uvx Not Found / Command Does Not Exist
Symptoms:
The term 'uvx' is not recognized as a cmdlet, function, operable program, or script file.
# Or
Cannot find part of the path "C:\Users\xxx\.local\bin\uvx.exe"Cause:
- uvx is a dependency tool for Unity MCP and has not been installed yet
- The installation path varies depending on the system/user
Resolution steps:
- Install in Unity:
- Menu:
Window → MCP → Local Setup - Click:
Install DependenciesorSetup Local Environment - Wait for the installation to complete (may take a few minutes)
- Menu:
- Verify installation:
# Windows Get-Command uvx # Or Test-Path "$env:USERPROFILE\.local\bin\uvx.exe" # macOS/Linux which uvx - Restart the terminal to load the new PATH environment variable
Dynamic path detection script:
function Get-UvxPath {
# Try common paths
$paths = @(
"$env:USERPROFILE\.local\bin\uvx.exe",
"$env:LOCALAPPDATA\uv\uvx.exe",
"C:\Program Files\uv\uvx.exe"
)
foreach ($path in $paths) {
if (Test-Path $path) { return $path }
}
# Try to find from PATH
$uvx = Get-Command uvx -ErrorAction SilentlyContinue
if ($uvx) { return $uvx.Source }
return $null
}
$uvxPath = Get-UvxPath
if (-not $uvxPath) {
Write-Host "❌ uvx not found. Please install it by clicking Window → MCP → Local Setup in Unity."
exit 1
}
Write-Host "✅ Found uvx: $uvxPath"Issue 1: Unable to Set SpriteRenderer.sprite
Symptoms:
Failed to convert value for property 'sprite' to type 'Sprite'Cause:
manage_texturecreates aTexture2D, butSpriteRendererrequires aSpritetype- The API does not support directly converting a path string to a Sprite reference
Solutions:
- Manual method (recommended): Drag the texture onto the SpriteRenderer's Sprite field in Unity, and Unity will automatically convert it
- Editor script: Write a tool script under the
Editorfolder to batch assign values - Pre-create Sprite: Use Unity's Sprite Editor to convert the texture into a Sprite asset
Issue 2: Color Format Error
Symptoms:
Error converting token to UnityEngine.Color: Error reading JObject from JsonReaderSolution: Use the object format {"r":x,"g":y,"b":z,"a":w} instead of the array [x,y,z,w]
Issue 3: Session Expired
Symptoms:
Missing session ID
Bad Request: Missing session IDSolution:
- Re-initialize to get a new Session ID
- Ensure every request includes the
mcp-session-idHeader
Issue 4: Unity Instance Not Found / Cannot Find Active Instance
Symptoms:
{
"instance_count": 0,
"instances": []
}Or
Active instance set to ... : falseCause:
- The MCP Server has started, but the Unity editor has not yet established a connection with the Server
- The MCP Session in Unity has not been started
Resolution steps:
- Ensure the Unity editor is open (and the project is loaded)
- Start the MCP Session in Unity:
- Menu:
Window → MCPorMCP → Session - In the MCP window, find the Session or Connection section
- Click the "Start Session" or "Connect" button
- Wait for the status to change to "Connected" or "Running"
- Menu:
- Check connection status:
- The MCP window should display:
Status: ConnectedorTransport: HTTP - Or display the currently connected Server address:
http://localhost:8080
- The MCP window should display:
- Re-fetch the instance list:
{ "name": "resources/read", "params": { "uri": "mcpforunity://instances" } }
Full startup flow chart:
User Machine
├─ [1] Start MCP Server (uvx command)
│ └─ Waiting for connection...
│
└─ [2] Open Unity Editor
└─ [3] Window → MCP → Start Session
└─ Establish connection
↓
MCP Server detects instance
↓
instance_count: 1Common Questions:
- Q: Nothing happens after clicking Start Session?
- Check if the MCP Server is running (is the terminal window still open)
- Check if port 8080 is occupied
- Try restarting Unity and the MCP Server
- Q: Shows "Connection Failed"?
- Confirm the MCP Server address is configured correctly (default:
http://localhost:8080) - Check if the firewall is blocking the connection
- Confirm the MCP Server address is configured correctly (default:
Issue 5: Property Parameter Error
Symptoms:
Unexpected keyword argument 'xxx'Solution: Check the API documentation and use the correct parameter names:
- ❌
"component": "SpriteRenderer"→ ✅"component_type": "SpriteRenderer" - ❌
"filter": "All"→ ✅ Not supported, omit or use the correct parameter
Workflow Patterns
Pattern 1: Complete Workflow for Creating a 2D Object
1. Create GameObject (empty object)
manage_gameobject: create
2. Add SpriteRenderer component
manage_components: add, component_type=SpriteRenderer
3. Set color
manage_components: set_property, property=color, value={r,g,b,a}
4. Manually assign Sprite (API limitation)
Or drag and drop the texture onto the Sprite field in UnityPattern 2: Batch Create Objects
$objects = @(
@{name="Obj1"; pos=@(1,2,0); color=@{r=1;g=0;b=0;a=1}},
@{name="Obj2"; pos=@(-1,1,0); color=@{r=0;g=1;b=0;a=1}}
)
foreach ($obj in $objects) {
# Create object
# Add component
# Set property
}Pattern 3: Error Checking Workflow
1. Execute operation
2. Check console logs
read_console: get
3. Verify result
manage_scene: get_hierarchy
4. If there is an error, read specific component information
resources/read: mcpforunity://scene/gameobject/{id}/componentsAPI Limitations
| Limitation | Description | Workaround |
| Sprite assignment | Cannot set Sprite directly via API | Manual drag-and-drop or editor script |
| Texture import settings | Cannot modify Texture Import Settings | Pre-configure or set manually in Unity |
| Complex components | Some component properties are not supported | Configure manually using the Unity editor |
| Script creation | Content needs escaping | Use simple scripts or templates |
Best Practices
- Always save the scene Execute
manage_scene: saveafter batch operations - Check the console Regularly use
read_consoleto view errors - Use Instance ID Use the Instance ID instead of the name when operating on specific objects
- Batch operations Use loops for batch creation to reduce the number of API calls
- Error handling Check the
successfield after each operation
Quick Reference
Common Tool List
| Tool | Purpose |
manage_gameobject | CRUD GameObjects |
manage_components | Add/remove/set components |
manage_scene | Scene operations |
manage_asset | Asset operations |
manage_texture | Create textures |
read_console | Get Unity console logs |
set_active_instance | Set target Unity instance |
HTTP Headers (Required)
Content-Type: application/json
Accept: application/json, text/event-stream
mcp-session-id: <session-id>Response Format
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [{
"type": "text",
"text": "{\"success\": true, ...}"
}]
}
}References
- Unity MCP Server Docs
- MCP Protocol: https://modelcontextprotocol.io
- Unity Scripting API: https://docs.unity3d.com/ScriptReference/
Changelog
v1.0.0 (2026-02-11)
- Initial release
- Documented Color format issue
- Documented Sprite assignment limitation
- Added workflow patterns
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

