MCP Game Deck
Exposes comprehensive Unity Editor functionality through MCP tools including ProBuilder mesh operations, physics simulations, camera configuration, asset management, and specialized workflows for DOTS/ECS, UI Toolkit, and Addressables.
Provides integration with Wwise audio middleware through specialized knowledge base documentation covering audio design best practices and VFX Graph integration for game audio implementation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Game Deckcreate a new scene called 'MainMenu' and add a UI canvas"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
What is MCP Game Deck?
MCP Game Deck is a Unity Editor extension that turns Claude Code into a first-class collaborator inside your project. It exposes 273 MCP tools that cover everything from scene editing and prefab authoring to builds, profiling, ProBuilder mesh work, lighting, animation, and ScriptableObject data flows — and pairs them with a dedicated desktop chat app, persistent plans, project rules, and 10 Unity-specialist subagents.
It is not an AI itself. It is the bridge that lets Claude Code see, create, modify, and inspect your Unity project — and a polished home for that conversation outside the Editor process.
Related MCP server: Unity MCP
Highlights
A real chat home outside Unity
The chat moved out of the Editor in v2.0. A native desktop app (built with Tauri) replaces the in-editor window: it survives assembly reloads, stays alive across Unity restarts, and can run in parallel with the Editor without fighting it for focus.
The Unity package launches the app from a toolbar pin. First click downloads a signed binary from the GitHub Release, verifies its SHA-256, and spawns it pointed at your project. After that the pin is just a focus shortcut.
Persistent plans, persistent rules
Plans and rules are first-class citizens in v2.0, stored as markdown in ProjectSettings/GameDeck/. Plans are full markdown documents with structured frontmatter — write one, execute it through the chat, edit and re-run as the project evolves. Rules are short directives that get injected into Claude's system prompt every turn, capped at 10 active at a time so they stay deliberate.
Per-turn model picker
Switch between Opus, Sonnet, and Haiku without restarting a session. The picker syncs with the active Claude Code installation — whatever the SDK exposes at init time is what you can pick.
Permission modes you actually want
Four real options: Ask (default), Auto-edit (file edits flow without prompts), Plan (read-only — Claude proposes, never writes), and Free (no permission gates). The current mode lives in the HUD strip, switchable mid-session.
Knowledge base, in the app
Sixteen curated Unity reference documents are bundled with the package and surfaced in a dedicated Library tab — full-text search with match highlights, markdown rendered with GitHub-Flavored Markdown extensions. Cite a doc in chat, open it in a panel, find the section you need.
Unity-specialist subagents
Ten domain experts ship as Task-spawnable subagents: unity-specialist, unity-ui-specialist, unity-shader-specialist, unity-dots-specialist, unity-addressables-specialist, gameplay-programmer, systems-designer, technical-artist, performance-analyst, qa-lead. Claude routes work to them automatically based on context.
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ Unity Editor (your project) │
│ │
│ ┌──────────────┐ ┌──────────────────────────────────┐ │
│ │ Toolbar Pin │──▶ │ C# MCP Server (TCP :8090) │ │
│ │ (launches │ │ • 273 tools, 2 resources, │ │
│ │ external │ │ 6 prompts │ │
│ │ app) │ │ • Main-thread dispatcher │ │
│ └──────┬───────┘ │ • Token-based auth │ │
│ │ └────────────────▲─────────────────┘ │
└───────────┼──────────────────────────────┼─────────────────────┘
│ spawn + env contract │ HTTP JSON-RPC
▼ │
┌─────────────────────────────────────────────────────────────────┐
│ MCP Game Deck Desktop App (Tauri, signed .exe / .msi / .dmg) │
│ │
│ ┌──────────────┐ ┌──────────────────┐ ┌─────────────┐ │
│ │ React + Vite │ │ Rust supervisor │ │ MCP proxy │ │
│ │ UI: chat, │◀─▶│ spawns Claude │──▶│ (esbuild │ │
│ │ plans, rules │ │ Code via SDK │ │ bundled │ │
│ │ library │ │ │ │ .cjs) │ │
│ └──────────────┘ └────────┬─────────┘ └──────┬──────┘ │
│ │ AgentMessage │ STDIO ▲│
│ ▼ protocol │ ││
│ ┌─────────────────────────────┴───┐ ││
│ │ @anthropic-ai/claude-agent-sdk │ ││
│ │ → Claude Code CLI │──┘│
│ └─────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘The Unity package is the thin connector: a C# MCP server that lives inside the Editor process, a toolbar pin that launches the desktop app, and a Plugin~/ directory of Claude Code plugins (agents, skills, knowledge). The desktop app is the chat surface and the host for the Claude Code CLI session.
The MCP-standard interface on :8090 stays open, so any MCP-compatible client (Claude Desktop, Cursor, Cline, etc.) can connect directly without going through the desktop app.
Quick start
Install Claude Code (instructions) and authenticate it (
claude /login).Install the Unity package via Package Manager → Add package from git URL:
https://github.com/RamonBedin/mcp-game-deck.gitOpen your project in Unity 6. The MCP server starts automatically. A pin appears on the Editor toolbar.
Click the pin → "Open Chat". The desktop app downloads on first use (~30 MB) and launches.
Send a message. "What's in the active scene?" "Create a 10×10 ProBuilder cube and add a Rigidbody." "Run the EditMode tests and summarize failures."
That's it. The pin is your entry point from there on.
Features
273 MCP Tools
Programmatic control over the Unity Editor, organized across 41 categories. The chat exposes every tool to Claude — names like mcp__game-deck__gameobject-create or mcp__game-deck__probuilder-extrude-faces show up as auto-discovered tools at session init.
Category | Description |
GameObject | Create, find, get, update, delete, duplicate, select, set parent, look-at, move relative |
Component | Add, get, update, remove, list components on GameObjects |
Transform | Move, rotate, scale, get transform info |
Scene | Create, load, save, unload, delete scenes; get info/hierarchy; list scenes; frame objects |
Prefab | Create, instantiate, open, modify, save, close prefabs; get prefab info |
Asset | Create, copy, move, rename, delete assets; inspect/set import settings; refresh AssetDatabase |
Script | Create, read, update, delete C# scripts; apply targeted edits; validate compilation |
Editor | Play/pause/stop, execute menu items, manage tags/layers, get editor state, preferences, undo |
ProBuilder | Mesh creation, extrusion, face/edge/vertex operations, UV editing, smoothing, merge, weld |
Graphics | Lightmap baking, reflection probes, light probes, URP volumes, post-processing, render stats |
Physics | Raycast, linecast, overlap, shape cast, rigidbody, joints, physics materials, collision matrix |
Camera | Camera creation, Cinemachine configuration (body, aim, noise, blend, lens, target, priority) |
Profiler | Start/stop profiling, memory snapshots, frame debugger, frame timing, performance counters |
Package | List, add, remove, embed, search packages; manage scoped registries; resolve, status |
UIToolkit | Create UXML/USS, attach documents, panel settings, get visual tree, inspect, read/update files |
Animation | Create clips, add keyframes, configure Animator controllers, get animation info |
Build | Build, batch build, get/set build settings, switch platform, manage build scenes |
Texture | Create, inspect, configure textures; apply gradients and procedural patterns |
Material | Create, update, assign materials; get shader properties |
Light | Create, configure, list lights |
Shader | Inspect and list shaders |
VFX | List and inspect particle systems |
Audio | Create and configure audio sources |
NavMesh | Get NavMesh info, bake NavMesh |
Terrain | Create terrains, get terrain data |
Screenshot | Capture Game view, Scene view, camera-specific, and multi-view screenshots |
ScriptableObject | Create, inspect, list, modify ScriptableObjects |
Object | Get object data, modify objects by instance ID |
Reflect | Get type info, search types, call methods, get members, find methods via reflection |
Type | Get type schema for serialized types |
PlayerSettings | Get and set player settings (company, product, scripting backend) |
Tests | Run EditMode/PlayMode tests, get test results |
Console | Get logs, log messages, clear console |
Selection | Get and set editor selection |
Meta | List all tools, enable/disable tools |
Helpers | Cross-domain utilities and shared logic |
FindInFile | File search and grep across the project |
BatchExecute | Run multiple tool calls atomically |
UnityDocs | Get API docs, get manual pages, open documentation |
Ping | Server connectivity check |
10 Unity-Specialist Subagents
Agent | Focus |
unity-specialist | Architecture decisions, Unity APIs, MonoBehaviour vs DOTS, platform builds |
unity-ui-specialist | UI Toolkit (UXML/USS), data binding, runtime UI performance, input handling |
unity-shader-specialist | Shader Graph, custom HLSL, VFX Graph, URP customization, post-processing |
unity-dots-specialist | ECS architecture, Jobs system, Burst compiler, hybrid renderer |
unity-addressables-specialist | Asset groups, async loading, memory management, content catalogs |
gameplay-programmer | Game mechanics, player systems, combat, input, state machines |
systems-designer | Combat formulas, progression curves, crafting recipes, balance math |
technical-artist | Shaders, VFX, rendering optimization, art pipeline |
performance-analyst | Profiling, memory analysis, frame time budgets, bottlenecks |
qa-lead | Test strategy, bug triage, release quality gates, regression planning |
Invoke a specialist explicitly via Claude's Task tool, or let Claude route automatically based on the question.
24 Slash Commands
Quick-access structured workflows. Type / in the chat to autocomplete.
Command | Description |
| Create an Architecture Decision Record (ADR) |
| Audit assets for naming, file sizes, and orphaned references |
| Analyze game balance data for outliers and degenerate strategies |
| Guided game concept ideation with structured techniques |
| Structured bug reports with reproduction steps and severity |
| Auto-generate changelog from git history |
| Architectural and quality code review for Unity C# |
| Create a new custom slash command from a SKILL.md template |
| Review game design docs for completeness and balance |
| Task effort estimation with complexity analysis |
| Emergency fix workflow with audit trail |
| Decompose a game concept into systems with dependency mapping |
| Plan a feature implementation with tasks, architecture, and file list |
| Generate a complete Unity system (MonoBehaviour + ScriptableObject config) |
| Structured performance profiling with budgets |
| Execute a saved plan step-by-step with checkpoints |
| Generate or analyze structured playtest reports |
| Rapid prototyping — validate a mechanic with throwaway code |
| Analyze and refactor a file or system with before/after comparison |
| Generate design/architecture docs from existing code |
| Persist a generated plan to |
| Analyze a feature for scope creep |
| Generate or update a sprint plan from the project backlog |
| Scan codebase for technical debt (TODO, FIXME, HACK) |
You can ship your own commands too. Drop a SKILL.md into ProjectSettings/GameDeck/commands/ and it appears in the picker.
16-Document Knowledge Base
A curated Unity reference library bundled with the package. Surfaced in the Library tab of the desktop app with full-text search and match highlighting.
Project Architecture — Assembly definitions, 4-layer pattern, bootstrapper
ScriptableObjects — Event channels, runtime sets, data-driven design
Design Patterns — Observer, Command, State Machine, Object Pool, Singleton, Factory
DOTS/ECS — Entity Component System, Burst, Jobs, decision frameworks
Architecture by Genre — RPG, 2D platformer, multiplayer, roguelike patterns
Mobile Optimization — Profiling, pooling, NonAlloc APIs, compression
Core Gameplay Systems — Combat, progression, economy, meta-progression
UI/UX — UI Stack, MVP/MVVM, Canvas splitting, virtualized lists
Dependency Injection & Testing — VContainer vs Zenject, NUnit, testing pyramid
AI-Assisted Workflow — MCP patterns, known limitations, best practices
Asset Pipeline & Addressables — Sprite Atlas, texture/audio compression
Procedural Content & Balancing — Generation algorithms, mathematical balancing
Audio & VFX — Audio design, Wwise, VFX Graph best practices
Save System & Meta-Progression — Serialization, progression tracking
Publishing & Live Ops — Store requirements, analytics, monetization
Case Studies — 12 real games analyzed, 10 recurring architectural patterns
Plans CRUD
Plans are markdown documents stored in ProjectSettings/GameDeck/plans/. They show up in a dedicated tab in the desktop app: create, edit, delete, execute. The /save-plan command persists a Claude-generated plan to disk; /plan-execute runs one with checkpoints.
Rules
Short directives that get injected into Claude's system prompt every turn. Stored in ProjectSettings/GameDeck/rules/, composed into Library/MCPGameDeck/rules-bundle.md at runtime, and forwarded via the SDK's systemPrompt.append channel. Cap of 10 active rules to keep them deliberate.
2 MCP Resources, 6 MCP Prompts
Resource | Description |
Assets | List project assets filtered by type (Prefab, Material, ScriptableObject, etc.) |
Scenes Hierarchy | Complete hierarchy of all loaded scenes |
Prompt | Description |
build-pipeline | Configure and execute single or multi-platform builds |
gameobject-handling-strategy | Best practices for creating and organizing GameObjects |
prefab-workflow | Prefab creation, editing, and management |
scene-setup | Scene organization with proper lighting, camera, and structure |
ui-toolkit-workflow | UI Toolkit patterns with UXML, USS, and C# backing |
debug-and-profile | Structured profiling and debugging workflow |
Requirements
Requirement | Version | Notes |
Claude Code | ≥ 2.1.0, < 3.0.0 | Install via |
Unity | 6000.0+ | Uses Unity 6 APIs ( |
Node.js | 18+ | Required by Claude Code itself; the desktop app spawns a Node child |
OS | Windows 10/11, macOS 12+, Ubuntu 20.04+ | Tauri binaries shipped per-OS via GitHub Releases |
Anthropic API | Active subscription or API key | Set up through Claude Code's |
Installation
Step 1 — Install Claude Code
npm install -g @anthropic-ai/claude-code
claude /loginConfirm with claude /status.
Step 2 — Install the Unity package
Open Unity 6, then Window → Package Manager → + → Add package from git URL:
https://github.com/RamonBedin/mcp-game-deck.gitFor a specific version, append #v2.0.0.
For local development:
https://github.com/RamonBedin/mcp-game-deck.git
# then point to a file: reference if you're iterating on the package itselfStep 3 — Open the chat
Click the MCP Game Deck pin on the Editor toolbar → Open Chat.
On first launch the package downloads the signed Tauri binary from the matching GitHub Release into %APPDATA%\MCPGameDeck\bin\<version>\ (Windows) — or the OS-equivalent user-data directory on macOS/Linux. SHA-256 is verified before promotion. If the download fails the dialog explains how to install manually.
The desktop app's first-run wizard then walks through the three checks (Claude Code installed, authenticated, Agent SDK present) and provisions the Node runtime on demand.
After that: just chat.
Configuration
Project settings live at ProjectSettings/GameDeckSettings.json and are editable via Project Settings → MCP Game Deck.
Setting | Default | Description |
MCP Server Port |
| Port for the C# MCP TCP server. Changing requires a Unity restart. |
Host |
| Hostname the MCP server binds to |
Request Timeout |
| Max time for a single tool execution on the main thread |
The settings panel also exposes a copy-paste MCP config block for Claude Desktop, Claude Code CLI, Cursor, Cline, and other MCP-aware clients that want to connect to the C# server directly (bypassing the desktop app).
Using the C# MCP server with other clients
The desktop app is one consumer of the C# MCP server — not the only one. Any MCP-compatible client can connect to localhost:8090 directly. The settings panel generates the JSON config block ready to paste:
{
"mcpServers": {
"mcp-game-deck": {
"command": "node",
"args": ["<package-path>/Server~/dist/mcp-proxy.js"],
"env": {
"UNITY_MCP_PORT": "8090",
"UNITY_MCP_HOST": "localhost"
}
}
}
}For external-client use you'll need to npm install && npm run build inside Server~/ once to compile the proxy. The desktop app ships a self-contained bundled version inside its installer, so its users never need to do this themselves.
Project structure
mcp-game-deck/
├── package.json Unity package manifest (v2.0.0)
├── README.md You are here
├── LICENSE MIT
│
├── Editor/ C#, Editor-only
│ ├── MCP/ Custom MCP framework (attributes, discovery, server)
│ ├── Tools/ 273 MCP tools across 41 categories
│ ├── Pin/ Toolbar pin + binary download/launch lifecycle
│ ├── Settings/ Project settings UI and persistence
│ ├── Prompts/ MCP prompt templates
│ └── Resources/ Pin icons, etc.
│
├── Plugin~/ Claude Code plugin bundled with the package
│ ├── .claude-plugin/ plugin.json + plugin metadata
│ ├── agents/ 10 Unity-specialist agents
│ ├── skills/ 24 slash commands (one SKILL.md per command)
│ └── knowledge/ 16 reference documents
│
├── Server~/ TypeScript MCP proxy
│ ├── src/ Source (Claude Code ↔ Unity HTTP bridge)
│ └── package.json Dev dependencies + bundle script
│
└── App~/ Tauri desktop chat app (v1.0.0)
├── src/ React + Vite frontend
├── src-tauri/ Rust supervisor (spawns Claude Code SDK, owns MCP proxy resource)
├── scripts/ Build orchestration (Server~ → bundled proxy → Tauri resource)
└── package.json App version, build scriptsThe ~ suffix on Plugin~/, Server~/, and App~/ is a Unity convention — those folders are invisible to the asset pipeline. They ship with the package via UPM git install but never appear in your project's Asset Database.
Architectural notes
A few decisions worth knowing if you're going to dig in:
TCP, not HTTPListener. The Unity-side MCP server uses
TcpListenerwithSO_REUSEADDRto avoidEADDRINUSEafter assembly reloads. The HTTP layer is hand-rolled on top.Main-thread dispatcher. Every tool call that touches Unity APIs is marshalled onto the main thread via an internal dispatcher. Tools never assume they're on the right thread.
Resource-bundled proxy. The MCP proxy ships as a self-contained CommonJS bundle (esbuild) inside the Tauri app's resource dir — no separate
npm installfor end users. Source lives inServer~/src/mcp-proxy.ts.Token-based auth. A per-project auth token at
Library/GameDeck/auth-tokengates the MCP server. The desktop app reads it transparently; external MCP clients can opt in via theUNITY_MCP_AUTH_TOKENenv var.Permission contract via env vars. The pin passes
MCP_GAME_DECK_PACKAGE_ROOT(resolved Unity package path) andMCP_GAME_DECK_RUNTIME_DIR(per-version writable runtime tree) to the Tauri process at spawn time, decoupling the desktop binary from compile-time path assumptions.
Third-party dependencies
MCP Game Deck integrates with proprietary software that is not bundled with this package and is governed by separate terms:
Claude Code — Anthropic's CLI agent. Required at runtime. Subject to Anthropic's Usage Policy and Commercial Terms of Service.
@anthropic-ai/claude-agent-sdk — Drives Claude Code from the desktop app's Node runtime. Same Anthropic terms apply.
@modelcontextprotocol/sdk — MCP protocol implementation for the proxy. MIT.
Tauri — Desktop app framework. MIT / Apache 2.0.
The MIT License of this repository covers only the source code authored here. Users are responsible for installing Claude Code separately, maintaining their own Anthropic API authentication, and complying with Anthropic's terms.
License
MIT © Ramon Bedin
Author
Ramon Bedin — GitHub
If you ship a Unity project with MCP Game Deck, I'd love to hear about it. Open an issue or drop a line.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RamonBedin/mcp-game-deck'
If you have feedback or need assistance with the MCP directory API, please join our Discord server