Skip to main content
Glama

Unity MCP

Unity Editor와 Claude Code를 연결하는 MCP (Model Context Protocol) 패키지.

Architecture

Claude Code ←(STDIO)→ Node.js MCP Server ←(WebSocket :8090)→ Unity Editor (C#)

Related MCP server: MCP Game Deck

Project Structure

unity-mcp/
├── server/                  # Node.js MCP 브릿지 서버 (TypeScript)
│   ├── bin/cli.ts           # CLI 엔트리포인트
│   ├── src/
│   │   ├── index.ts         # MCP 서버 엔트리포인트
│   │   ├── unity-bridge.ts  # WebSocket 클라이언트 (Unity 연결)
│   │   ├── types.ts         # 요청/응답 타입 정의
│   │   └── tools/index.ts   # 91개 도구 정의
│   └── build/               # 컴파일된 JS 출력
└── unity-package/           # Unity 패키지 (C#)
    └── Editor/
        ├── McpServer.cs     # WebSocket 서버 (연결/디스패치)
        ├── McpServerMenu.cs # 에디터 메뉴 통합
        ├── McpSettings.cs   # 설정 관리
        ├── ConsoleLogBuffer.cs  # 콘솔 로그 버퍼
        ├── ShaderGraphHelper.cs # ShaderGraph 유틸리티
        ├── IToolHandler.cs  # 도구 핸들러 인터페이스
        └── Handlers/        # 90개 핸들러 구현

Installation

1. Unity Package

Packages/manifest.json에 추가:

"com.jaewon.mcp-unity": "https://github.com/jaewonjung6446/unity-mcp.git?path=unity-package"
  • Unity 2022.3 이상 필요

  • 의존성: com.unity.nuget.newtonsoft-json, com.unity.editorcoroutines

2. MCP Server 빌드

cd server
npm install
npm run build

3. MCP Config

.mcp.json:

{
  "mcpServers": {
    "unity": {
      "command": "node",
      "args": ["D:\\Unity\\Izakoza\\unity-mcp\\server\\build\\cli.js"]
    }
  }
}

Multiple Unity Projects (다중 프로젝트 설정)

한 로컬에서 여러 Unity 프로젝트의 MCP를 동시에 실행하려면 각각 다른 포트를 사용해야 합니다.

1. Unity 프로젝트별 포트 설정

각 Unity 프로젝트의 ProjectSettings/McpUnitySettings.json:

Project A:

{ "Port": 8090 }

Project B:

{ "Port": 8091 }

2. MCP 서버 설정

.mcp.json에서 --port 또는 -p 인자로 포트 지정:

{
  "mcpServers": {
    "unity-project-a": {
      "command": "node",
      "args": ["D:\\Unity\\unity-mcp\\server\\build\\cli.js", "--port", "8090"]
    },
    "unity-project-b": {
      "command": "node",
      "args": ["D:\\Unity\\unity-mcp\\server\\build\\cli.js", "--port", "8091"]
    }
  }
}

포트 우선순위

  1. 명령줄 인자 (--port) — 최우선

  2. ProjectSettings/McpUnitySettings.json 설정 파일

  3. 기본값: 8090

Available Tools (91)

Editor Control (7)

Tool

Description

get_state

에디터 상태 (플레이 모드, 활성 씬, 플랫폼)

get_selection

현재 선택된 오브젝트

set_selection

에디터 선택 변경/해제 (다중 선택, 에셋 선택)

pause_editor

Play Mode 일시정지/해제

step_frame

일시정지 중 1프레임 전진

undo_redo

실행 취소/다시 실행 (최대 20단계)

clear_console

콘솔 창 및 로그 버퍼 클리어

Scene (6)

Tool

Description

open_scene

씬 열기 (additive 옵션)

close_scene

씬 닫기

save_scene

활성 씬 저장

get_scenes_list

빌드 설정/로드된/전체 씬 목록

get_scene_hierarchy

씬 계층구조 스냅샷

set_scene_view_camera

Scene View 카메라 제어 (위치, 회전, 줌, 프리셋 뷰)

GameObject (9)

Tool

Description

get_game_object

GameObject 정보 (ID/이름/경로)

create_game_object

GameObject 생성 (empty, primitive, 위치/회전/스케일)

delete_game_object

GameObject 삭제 (Undo 지원)

set_game_object_property

속성 설정 (이름, 태그, 레이어, 위치, 회전, 스케일 등)

duplicate_game_object

복제 (개수, 오프셋 옵션)

group_game_objects

여러 오브젝트를 빈 부모로 그룹화

align_game_object

축 기준 정렬 (min/max/center/first)

set_parent

부모-자식 관계 변경/해제

focus_game_object

Scene View에서 오브젝트 포커스

Component (5)

Tool

Description

get_component_data

컴포넌트 직렬화 필드 값 읽기

add_component

컴포넌트 추가 (Rigidbody, AudioSource 등)

remove_component

컴포넌트 제거

set_component_property

컴포넌트 프로퍼티 설정 (int, float, Color, Vector 등)

find_objects_by_criteria

태그/레이어/컴포넌트/이름으로 오브젝트 검색

Prefab (3)

Tool

Description

open_prefab

프리팹 편집 모드 열기

create_prefab

씬 오브젝트로 프리팹 에셋 생성

instantiate_prefab

프리팹을 씬에 인스턴스화

Asset Management (13)

Tool

Description

create_script

C# 스크립트 생성

execute_code

C# 코드 실행

get_asset_contents

에셋 내용 읽기

get_asset_importer

임포터 설정 조회

copy_asset

에셋 복사

import_asset

에셋 리임포트

delete_asset

에셋/폴더 삭제

move_asset

에셋 이동/이름 변경

create_folder

폴더 생성 (재귀)

get_asset_dependencies

에셋 의존성 조회

find_references

에셋 참조 역검색

get_asset_preview

에셋 미리보기 썸네일 이미지

refresh_assets

AssetDatabase 새로고침 (Ctrl+R)

Search & Validation (4)

Tool

Description

search

에셋 또는 씬 오브젝트 검색

screenshot

Scene/Game 뷰 스크린샷 캡처

test_active_scene

활성 씬 검증 (누락 스크립트, 머티리얼 등)

get_missing_references

씬/에셋에서 누락 참조 스캔

Shader Graph (5)

Tool

Description

create_shader_graph

ShaderGraph 생성 (URP Lit/Unlit/Canvas 템플릿)

add_shader_graph_node

노드 추가 (SampleTexture2D, Color, Multiply 등)

connect_shader_graph_nodes

노드 간 연결

add_shader_graph_property

프로퍼티 추가 (Color, Float, Texture2D 등)

get_shader_graph_node_types

지원 노드 타입/슬롯 정보 조회

Material & Rendering (7)

Tool

Description

create_material

머티리얼 생성 (셰이더 지정)

set_material_property

머티리얼 프로퍼티 설정 (color, float, texture 등)

set_game_object_material

GameObject에 머티리얼 할당

analyze_scene

씬 분석 (렌더러, 머티리얼, 셰이더, 라이트)

get_render_settings

렌더 설정 조회 (ambient, fog, skybox, reflections)

set_render_settings

렌더 설정 변경 (fog, ambient, skybox 등)

set_light_property

라이트 프로퍼티 설정 (타입, 색상, 강도, 그림자 등)

Volume / Post-Processing (2)

Tool

Description

get_volume_settings

URP Volume 설정 조회 (Bloom, Vignette 등)

set_volume_component

Volume 컴포넌트 설정 (Bloom, ColorAdjustments 등)

UI (9)

Tool

Description

create_ui_element

UI 요소 생성 (Text, Button, Slider 등, Canvas 자동 생성)

find_ui_elements

Canvas UI 요소 스캔 (경로, 타입, 상태)

inspect_ui_layout

UI 레이아웃 이슈 검출 (겹침, 화면 밖, 작은 터치 영역)

click_ui_element

UI 클릭 시뮬레이션 (Play Mode)

set_ui_input

InputField 텍스트 입력 (Play Mode)

get_ui_state

UI 요소 상태 조회 (Button, Toggle, Slider 등)

drag_ui_element

UI 드래그 앤 드롭 시뮬레이션 (Play Mode)

scroll_ui

스크롤 이벤트 시뮬레이션 (Play Mode)

set_ui_value

Slider/Toggle/Dropdown/Scrollbar 값 설정

QA & Play Mode (6)

Tool

Description

set_play_mode

Play Mode 진입/종료

get_console_logs

콘솔 로그 조회 (error, warning, exception 필터)

wait_for_seconds

대기 (0.1~30초)

wait_until

조건 충족까지 대기 (오브젝트 활성화, 텍스트 매칭 등)

simulate_input

키보드/마우스 입력 시뮬레이션 (Play Mode)

set_time_scale

Time.timeScale 설정 (슬로모션, 배속)

Animation (2)

Tool

Description

get_animator_state

Animator 상태, 전환 정보, 파라미터 값 조회

set_animator_parameter

Animator 파라미터 설정 (Float, Int, Bool, Trigger)

Physics (3)

Tool

Description

raycast

물리 레이캐스트 (월드/스크린 좌표, 다중 히트)

set_rigidbody_property

Rigidbody/2D 프로퍼티 설정 (질량, 드래그, 중력 등)

apply_force

Rigidbody에 힘 적용 (Force, Impulse, VelocityChange)

Audio (2)

Tool

Description

get_audio_sources

씬 내 모든 AudioSource 정보 조회

play_audio

오디오 재생/정지/일시정지 (클립 변경 가능)

Navigation (2)

Tool

Description

get_navmesh_info

NavMesh 정보, NavMeshAgent/Obstacle 조회

set_navmesh_destination

NavMeshAgent 목적지 설정/정지 (Play Mode)

Scene Systems (2)

Tool

Description

get_particle_system_info

ParticleSystem 정보 (모듈 설정, 상태, 파티클 수)

get_terrain_info

Terrain 정보 (크기, 해상도, 레이어, 트리)

Project Info (4)

Tool

Description

get_project_settings

프로젝트 설정 조회 (player, quality, physics, time)

get_packages

설치된 패키지 목록

get_build_settings

빌드 설정 (타겟 플랫폼, 씬, 개발 모드)

get_performance_stats

런타임 성능 통계 (FPS, 메모리, 오브젝트 수)

Development

cd server
npm install
npm run build          # TypeScript 컴파일
npm run watch          # 변경 감지 자동 빌드
node build/cli.js      # 서버 실행

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude Code to directly control Unity Editor, supporting scene manipulation, component operations, asset management, prefab handling, and audio control through natural language commands.
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A Unity Editor MCP server that gives Claude Code full control over Unity projects through 268 tools, 7 resources, and specialized AI agents. It enables AI-assisted game development by allowing Claude to see, create, modify, and inspect everything in Unity including scenes, GameObjects, scripts, and builds.
    6
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Allows MCP clients like Claude Desktop or Cursor to perform Unity Editor actions, including asset management, scene modification, and game mechanic testing.
    22
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents (like Claude Code, Cursor) to directly operate Unity scenes via MCP protocol, with tools for scene hierarchy, object creation/deletion, and transform modification.
    6 npm
    1
    ISC