Unity MCP Server
name: Unity Game Development MCP
description: A Node.js MCP server for Unity projects, providing tools for scene, code, and asset analysis.
version: 1.0.0
author:
name: MCP-Unity Team
url: https://github.com/GrandMasterK414/unity-smithery-mcp
transport:
type: websocket
port: 3000
start:
command: node dist/index.js --smithery
tools:
- name: open_file
description: Reads the contents of a file in the Unity project.
parameters:
type: object
required: ["path"]
properties:
path:
type: string
description: Project-relative path of the file to read.
- name: search_files
description: Searches for text patterns in project files.
parameters:
type: object
required: ["query"]
properties:
query:
type: string
description: Text to search for in project files.
fileTypes:
type: array
items:
type: string
description: Specific file extensions to search.
maxResults:
type: integer
description: Maximum number of results to return.
- name: list_assets
description: Lists project assets of a certain type or in a folder.
parameters:
type: object
properties:
type:
type: string
description: Filter by asset type.
folder:
type: string
description: Directory to list assets from.
- name: get_project_info
description: Gets high-level information about the Unity project.
parameters:
type: object
properties: {}
status: planned
- name: parse_scene
description: Parses a Unity scene file to extract game objects hierarchy.
parameters:
type: object
required: ["scenePath"]
properties:
scenePath:
type: string
description: Path to the Unity scene file.
status: planned
- name: parse_prefab
description: Parses a Unity prefab file to extract components and properties.
parameters:
type: object
required: ["prefabPath"]
properties:
prefabPath:
type: string
description: Path to the Unity prefab file.
status: planned
- name: find_in_scenes
description: Finds scenes containing a specific GameObject or component reference.
parameters:
type: object
required: ["query"]
properties:
query:
type: string
description: Name of object or component to find.
type:
type: string
description: Type to search for.
enum: ["GameObject", "Component", "Script"]
status: planned
- name: analyze_cs_code
description: Compiles C# code to find compiler errors.
parameters:
type: object
required: ["filePath"]
properties:
filePath:
type: string
description: Path to C# file to analyze.
status: planned
- name: find_references
description: Finds references to a C# class or method throughout the codebase.
parameters:
type: object
required: ["symbol"]
properties:
symbol:
type: string
description: Class, method, or property name to find references to.
directory:
type: string
description: Directory to search in.
status: planned
- name: generate_script
description: Creates a new C# script file from a template.
parameters:
type: object
required: ["name", "projectPath", "scriptType"]
properties:
name:
type: string
description: Name of the class to generate.
projectPath:
type: string
description: Where to create the script file.
scriptType:
type: string
description: Type of script to generate.
enum: ["MonoBehaviour", "ScriptableObject", "SingletonMonoBehaviour", "EditorWindow"]
template:
type: string
description: Optional custom template content.
status: planned
- name: validate_shader
description: Compiles a shader and reports errors.
parameters:
type: object
required: ["shader"]
properties:
shader:
type: string
description: Path to the shader file.
status: planned
- name: inspect_yaml
description: Inspects a YAML asset file and provides structured output.
parameters:
type: object
required: ["path"]
properties:
path:
type: string
description: Path to the YAML file.
status: planned
- name: run_tests
description: Runs Unity's automated tests in batch mode and reports results.
parameters:
type: object
properties:
category:
type: string
description: Test category to run.
testName:
type: string
description: Specific test name to run.
testPlatform:
type: string
description: Platform to run tests on.
enum: ["PlayMode", "EditMode"]
default: "EditMode"
status: planned
- name: simulate_playmode
description: Experimental - runs a scene in play mode for a short duration.
parameters:
type: object
required: ["scenePath", "duration"]
properties:
scenePath:
type: string
description: Path to the scene to simulate.
duration:
type: integer
description: Duration to run the simulation in seconds.
outputPath:
type: string
description: Path where to save output data.
status: planned