Unity MCP
A Model Context Protocol server that integrates AI assistants like Claude and Cursor directly into the Unity Editor to automate game development workflows. It provides over 40 built-in tools for scene manipulation and project management, while offering a simple C# API for creating custom extensions.
README
Unity MCP - AI Assistant Integration for Unity Editor
Model Context Protocol (MCP) server that enables AI assistants like Claude, Codex, and Cursor to automate Unity Editor tasks and game development workflows.
Features
- Zero telemetry - Completely private Unity automation. No data collection.
- 40+ built-in tools - Create GameObjects, run tests, build projects, manipulate scenes through AI.
- Simple extension API - Add custom AI tools with a single attribute.
Requirements
- Unity 6 or later
- Any MCP client: Claude Code, Claude Desktop, Codex, Cursor, or other AI assistants
Installation
- Open Unity Package Manager (Window → Package Manager)
- Click
+→ "Add package from git URL" - Enter the URL of whichever version you want
Latest Version (Recommended)
To install the latest version:
https://github.com/Bluepuff71/UnityMCP.git?path=/Package
Specific Version (If I messed something up)
To install a specific version, append #version tag:
https://github.com/Bluepuff71/UnityMCP.git?path=/Package#1.0.0
See Releases for available versions.
Setup
Claude Code
claude mcp add unity-mcp --transport http http://localhost:8080/
Claude Desktop
Add this to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"unity-mcp": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:8080/"]
}
}
}
Restart Claude Desktop after saving.
Other MCP Clients (Codex, Cursor, etc.)
Unity MCP runs an HTTP server at http://localhost:8080/. Any MCP client with HTTP transport support can connect directly. For stdio-only clients, use the mcp-remote bridge as shown above.
Note: Configurations for clients other than Claude Code have not been tested. Open a PR!
How Unity Editor Automation Works
Unity MCP uses a native C plugin to maintain an HTTP server on a background thread, independent of Unity's C# scripting domain. This architecture ensures the AI assistant connection remains active during script recompilation.
┌─────────────────┐
│ MCP Client │
│ (Claude, etc.) │
└────────┬────────┘
│ HTTP
▼
┌─────────────────────────────────────┐
│ Native Plugin (C) │
│ - HTTP server on background thread │
│ - Survives domain reloads │
└────────┬────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Unity C# (main thread) │
│ - Executes tools when available │
│ - Returns "recompiling" during │
│ domain reload │
└─────────────────────────────────────┘
When Unity recompiles scripts, the C# domain unloads temporarily. During this time, the native plugin continues accepting HTTP requests but returns a "Unity is recompiling" error instead of disconnecting. Once recompilation completes, requests are forwarded to Unity's main thread for execution.
Adding Custom AI Tools
Create a static method and mark it with [MCPTool]:
using UnityMCP.Editor;
using UnityEngine;
public static class MyCustomTools
{
[MCPTool("hello_world", "Says hello to the specified name")]
public static string SayHello(
[MCPParam("name", "Name to greet", required: true)] string name)
{
return $"Hello, {name}!";
}
[MCPTool("create_cube_at", "Creates a cube at specified position")]
public static object CreateCube(
[MCPParam("x", "X coordinate", required: true)] float x,
[MCPParam("y", "Y coordinate", required: true)] float y,
[MCPParam("z", "Z coordinate", required: true)] float z)
{
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.transform.position = new Vector3(x, y, z);
cube.name = "Custom Cube";
return new
{
success = true,
message = $"Created cube at ({x}, {y}, {z})",
instanceID = cube.GetInstanceID()
};
}
}
Tools are automatically discovered on domain reload. No registration needed.
Adding Custom Resources
Resources expose read-only data to AI assistants. Use [MCPResource]:
using UnityMCP.Editor;
using UnityEngine;
public static class MyCustomResources
{
[MCPResource("unity://player/stats", "Current player statistics")]
public static object GetPlayerStats()
{
var player = GameObject.Find("Player");
if (player == null)
return new { error = "Player not found" };
return new
{
position = player.transform.position,
health = player.GetComponent<Health>()?.CurrentHealth ?? 0,
isGrounded = player.GetComponent<CharacterController>()?.isGrounded ?? false
};
}
}
Resources use URI patterns (e.g., unity://player/stats) and are read via resources/read.
License
GPLv3 - see LICENSE file for details.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.