Skip to main content
ClaudeWave
taygunsavas avatar
taygunsavas

patina-unity-mcp

Ver en GitHub

A high-performance Unity MCP with extensible APIs for agentic tools.

MCP ServersRegistry oficial1 estrellas0 forksC#MITActualizado today
Install in Claude Code / Claude Desktop
Method: Manual
Claude Code CLI
git clone https://github.com/taygunsavas/patina-unity-mcp
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Clone https://github.com/taygunsavas/patina-unity-mcp and follow its README for install instructions.
Casos de uso

Resumen de MCP Servers

# Patina

[![npm version](https://img.shields.io/npm/v/com.taygunsavas.patina-unity-mcp.svg)](https://www.npmjs.com/package/com.taygunsavas.patina-unity-mcp)
[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-io.github.taygunsavas%2Fpatina--unity--mcp-blue)](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.taygunsavas/patina-unity-mcp)
[![Glama MCP server](https://glama.ai/mcp/servers/taygunsavas/patina-unity-mcp/badges/score.svg)](https://glama.ai/mcp/servers/taygunsavas/patina-unity-mcp)
[![Indexed on TensorBlock MCP Index](https://mcp-index.tensorblock.co/v1/servers/github-taygunsavas-patina-unity-mcp-8c8f04b5/badge.svg)](https://tensorblock.co/mcp/servers/github-taygunsavas-patina-unity-mcp-8c8f04b5)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

Control the Unity Editor from any MCP host. One package install, one click, and your AI assistant can see your scene, create objects, and talk to the console.

Patina is a Rust MCP server paired with a C# Unity bridge. It connects your favorite AI coding tool directly to the Unity Editor over a local TCP channel, with zero manual config.

## Why Patina?

- **One-click setup.** Install the UPM package, click a button, and every supported host is configured automatically.
- **No Rust required.** Release packages ship pre-built binaries for Windows, Linux, and macOS. Just install and go.
- **Built for speed.** The Rust sidecar keeps the MCP layer fast and lightweight while Unity stays on the main thread.
- **Multi-host.** Works with Claude Code, Cursor, VS Code, Gemini CLI, JetBrains Rider, Codex CLI, and more.

## How It Works

```
MCP Host  <-- stdio -->  Patina Server  <-- local TCP -->  Unity Editor
```

The host launches the Rust binary over stdio MCP. The Rust server forwards tool calls into Unity through a local loopback TCP bridge. Unity executes them on the main thread and returns the result.

## Quick Start

### 1. Install the Unity package
In Unity, open **Project Settings > Package Manager**, add a scoped registry, then install the package by name.

Scoped registry:

| Field | Value |
|------|-------|
| Name | `npmjs` |
| URL | `https://registry.npmjs.org` |
| Scope(s) | `com.taygunsavas` |

Then open the **Package Manager** (Window > Package Manager), click the **+** icon in the top left, select **Add package by name...**, and enter:

```text
com.taygunsavas.patina-unity-mcp
```

Registry releases are signed during the release workflow for Unity Package Manager verification.

Alternatively, open the **Package Manager**, click the **+** icon, select **Add package from git URL...**, and enter:

```text
https://github.com/taygunsavas/patina-unity-mcp.git?path=/unity-package
```

Patina is distributed as a complete Unity package artifact with the editor code, native Rust runtime binaries under `Plugins/<platform>/`, and the Unity metadata needed for import. End users do not need the Rust toolchain or a Git checkout of this repository.

### 2. Run One-Click Setup
Open **Window > Patina Unity MCP** and click **One-Click Setup**.

The setup flow verifies the binary, starts the Unity bridge, auto-configures every detected host, replaces stale entries, and shows restart guidance where needed.

Patina writes host configs to a stable user-level runtime path instead of a per-project Unity package cache path. When the package is updated, the Unity editor package refreshes that managed runtime automatically, so supported MCP hosts do not need to be reconfigured just because the package cache path changed.

### 3. Start building
Open your MCP host and try:
- *"Log hello to Unity console"*
- *"Show me the scene hierarchy"*
- *"Create a cube at position 0, 2, 0"*

## Available Capabilities

Patina keeps the advertised MCP surface compact so hosts do not need to load every Unity command schema into context. Agents should use:

| MCP tool | What it does |
|------|-------------|
| `patina_capabilities` | Search or browse the Unity command catalog; request schemas only for specific commands |
| `patina_call` | Execute a catalog command with JSON parameters |
| `patina_health` | Inspect Patina version, command count, bridge port, optional Unity editor state, and bridge diagnostics |

The 86 commands below are available through `patina_capabilities` and `patina_call`.

### Scene

| Tool | What it does |
|------|-------------|
| `get_hierarchy` | Retrieve the active scene's GameObject tree as nested JSON; supports `max_depth` and `name_filter` |
| `get_scene_info` | Active scene metadata (name, path, build index, root count, dirty state); pass `include_all_scenes` for all loaded scenes |
| `open_scene` | Open a scene by project-relative path; `mode` single (default) or additive |
| `save_scene` | Save the active scene or any loaded scene; supports Save As |
| `new_scene` | Create and save a new scene with optional empty or default-game-objects setup |

### GameObjects

| Tool | What it does |
|------|-------------|
| `create_game_object` | Spawn an empty GameObject or a built-in primitive (Cube, Sphere, Capsule, Cylinder, Plane, Quad) |
| `delete_game_object` | Permanently delete a GameObject and all its children |
| `duplicate_game_object` | Duplicate a GameObject and its children |
| `reparent_game_object` | Move a GameObject under a new parent; pass `null` to promote to scene root |
| `get_game_object_info` | Full details for a named GameObject: transform, tag, layer, and all component properties |
| `set_active_state` | Show or hide a GameObject via `SetActive()` |
| `set_tag` | Set the tag on a GameObject (tag must be registered in Tags & Layers) |
| `set_layer` | Set the layer by name; optionally apply to all children |
| `set_transform` | Set position, rotation (Euler), and/or scale in world or local space in one call |

### Components & Properties

| Tool | What it does |
|------|-------------|
| `add_component` | Add a component by short name (`Rigidbody`) or fully qualified name |
| `remove_component` | Remove a component by type name |
| `set_property` | Set any serialized property on a component using its SerializedObject path |
| `get_game_object_components` | Return a lightweight component list for a GameObject |

### Batch Operations

| Tool | What it does |
|------|-------------|
| `batch_set_properties` | Apply serialized property changes across multiple GameObjects |
| `batch_add_components` | Add components to multiple GameObjects |
| `batch_set_transform` | Apply transform changes to multiple GameObjects |

### Prefabs

| Tool | What it does |
|------|-------------|
| `create_prefab` | Save a scene GameObject as a prefab asset |
| `instantiate_prefab` | Instantiate a prefab into the scene at an optional world position |
| `get_prefab_info` | Inspect a prefab asset or scene instance; returns asset type, overrides list, and instance status |
| `unpack_prefab` | Sever a prefab instance link; `outermost` (default) or `completely` |
| `apply_prefab_overrides` | Apply all instance overrides back to the source prefab asset on disk |
| `revert_prefab_overrides` | Restore a prefab instance to match its source asset |
| `list_prefab_components` | List component types and instance IDs on a prefab asset |
| `edit_prefab_asset` | Perform a batch of edit operations (add/remove component, add/remove child, set field) on a prefab asset |
| `open_prefab_stage` | Open a prefab asset in Unity's prefab stage for editing |
| `close_prefab_stage` | Close Unity's current active prefab stage, optionally saving changes |

### Assets

| Tool | What it does |
|------|-------------|
| `find_assets_by_type` | Search the Asset Database by type filter (`t:Material`, `t:Prefab`, `t:Texture2D`, etc.) |
| `find_assets_by_name` | Search the Asset Database by partial name match |
| `get_asset_info` | Metadata for an asset: GUID, type, file size, labels, and importer settings |
| `create_folder` | Create a new folder in the Asset Database |
| `move_asset` | Move an asset to a new project-relative path |
| `rename_asset` | Rename an asset in-place |
| `delete_asset` | Delete an asset by project-relative path |
| `refresh_asset_database` | Trigger `AssetDatabase.Refresh`; incremental or force-reimport |
| `set_asset_labels` | Replace the full label list on an asset |

### Materials

| Tool | What it does |
|------|-------------|
| `create_material` | Create a new Material asset; defaults to URP/Lit |
| `get_material_properties` | Read all exposed shader properties with names, types, and current values |
| `set_material_property` | Set a shader property (float, bool, color, vector, or texture path) |
| `assign_material` | Assign a Material to a specific Renderer slot |

### Scripts

| Tool | What it does |
|------|-------------|
| `create_script` | Create a new C# script from a template (`monobehaviour`, `scriptableobject`, `editor_window`, `plain_class`, `interface`) or verbatim content |
| `resolve_script_type` | Resolve a MonoScript GUID and asset path by its fully qualified C# type |
| `force_recompile` | Trigger a Unity script recompile via `AssetDatabase.Refresh(ForceUpdate)` |
| `compile_and_get_errors` | Trigger script recompile and return compiler errors only |
| `get_compilation_errors` | Get the list of current compiler errors and warnings |
| `get_script_content` | Read the content of a script file in the project |
| `get_assembly_types` | List all types declared in a specific assembly |

### Scriptable Objects

| Tool | What it does |
|------|-------------|
| `get_scriptable_object` | Read serialized fields from a ScriptableObject asset |
| `set_scriptable_object_field` | Set one serialized ScriptableObject field |

### Validation & Health

| Tool | What it does |
|------|-------------|
| `validate_scene` | Scan the active scene for quality issues (missing script references, null serialized fields, and broken prefab connections) |
| `validate_assets` | Validate a single prefab asset or a folder recursively for missing 

Lo que la gente pregunta sobre patina-unity-mcp

¿Qué es taygunsavas/patina-unity-mcp?

+

taygunsavas/patina-unity-mcp es mcp servers para el ecosistema de Claude AI. A high-performance Unity MCP with extensible APIs for agentic tools. Tiene 1 estrellas en GitHub y se actualizó por última vez today.

¿Cómo se instala patina-unity-mcp?

+

Puedes instalar patina-unity-mcp clonando el repositorio (https://github.com/taygunsavas/patina-unity-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar taygunsavas/patina-unity-mcp?

+

taygunsavas/patina-unity-mcp aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.

¿Quién mantiene taygunsavas/patina-unity-mcp?

+

taygunsavas/patina-unity-mcp es mantenido por taygunsavas. La última actividad registrada en GitHub es de today, con 0 issues abiertos.

¿Hay alternativas a patina-unity-mcp?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega patina-unity-mcp en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: taygunsavas/patina-unity-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/taygunsavas-patina-unity-mcp)](https://claudewave.com/repo/taygunsavas-patina-unity-mcp)
<a href="https://claudewave.com/repo/taygunsavas-patina-unity-mcp"><img src="https://claudewave.com/api/badge/taygunsavas-patina-unity-mcp" alt="Featured on ClaudeWave: taygunsavas/patina-unity-mcp" width="320" height="64" /></a>

Más MCP Servers

Alternativas a patina-unity-mcp