mcp-unity
by CoderGamester
MCP Server to integrate Unity Editor game engine with different AI Model clients (e.g. Claude Desktop, Windsurf, Cursor)
What is mcp-unity
MCP Unity Editor (Game Engine)
English | ๐จ๐ณ็ฎไฝไธญๆ | ๐ฏ๐ตๆฅๆฌ่ช |
---|
,/(/. *(/,
*/(((((/. *((((((*.
.*((((((((((/. *((((((((((/.
./((((((((((((((/ *((((((((((((((/,
,/(((((((((((((/*. */(((((((((((((/*.
,%%#((/((((((* ,/(((((/(#&@@(
,%%##%%##((((((/*. ,/((((/(#&@@@@@@(
,%%######%%##((/(((/*. .*/(((//(%@@@@@@@@@@@(
,%%####%#(%%#%%##((/((((((((//#&@@@@@@&@@@@@@@@(
,%%####%( /#%#%%%##(//(#@@@@@@@%, #@@@@@@@(
,%%####%( *#%###%@@@@@@( #@@@@@@@(
,%%####%( #%#%@@@@, #@@@@@@@(
,%%##%%%( #%#%@@@@, #@@@@@@@(
,%%%#* #%#%@@@@, *%@@@(
., ,/##*. #%#%@@@@, ./&@#* *`
,/#%#####%%#/, #%#%@@@@, ,/&@@@@@@@@@&\.
`*#########%%%%###%@@@@@@@@@@@@@@@@@@&*ยด
`*%%###########%@@@@@@@@@@@@@@&*ยด
`*%%%######%@@@@@@@@@@&*ยด
`*#%%##%@@@@@&*ยด
`*%#%@&*ยด
โโโโ โโโโ โโโโโโโโโโโโโโ โโโ โโโโโโโ โโโโโโโโโโโโโโโโโโ โโโ
โโโโโ โโโโโโโโโโโโโโโโโโโโโ โโโ โโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโ
โโโโโโโโโโโโโโ โโโโโโโโ โโโ โโโโโโโโโ โโโโโโ โโโ โโโโโโโ
โโโโโโโโโโโโโโ โโโโโโโ โโโ โโโโโโโโโโโโโโโโ โโโ โโโโโ
โโโ โโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโ โโโ โโโ
โโโ โโโ โโโโโโโโโโ โโโโโโโ โโโ โโโโโโโโ โโโ โโโ
MCP Unity is an implementation of the Model Context Protocol for Unity Editor, allowing AI assistants to interact with your Unity projects. This package provides a bridge between Unity and a Node.js server that implements the MCP protocol, enabling AI agents like Claude, Windsurf, and Cursor to execute operations within the Unity Editor.
Features
IDE Integration - Package Cache Access
MCP Unity provides automatic integration with VSCode-like IDEs (Visual Studio Code, Cursor, Windsurf) by adding the Unity Library/PackedCache
folder to your workspace. This feature:
- Improves code intelligence for Unity packages
- Enables better autocompletion and type information for Unity packages
- Helps AI coding assistants understand your project's dependencies
MCP Server Tools
-
execute_menu_item
: Executes Unity menu items (functions tagged with the MenuItem attribute)Example prompt: "Execute the menu item 'GameObject/Create Empty' to create a new empty GameObject"
-
select_gameobject
: Selects game objects in the Unity hierarchy by path or instance IDExample prompt: "Select the Main Camera object in my scene"
-
update_component
: Updates component fields on a GameObject or adds it to the GameObject if it does not contain the componentExample prompt: "Add a Rigidbody component to the Player object and set its mass to 5"
-
add_package
: Installs new packages in the Unity Package ManagerExample prompt: "Add the TextMeshPro package to my project"
-
run_tests
: Runs tests using the Unity Test RunnerExample prompt: "Run all the EditMode tests in my project"
-
notify_message
: Displays messages in the Unity EditorExample prompt: "Send a notification to Unity that the task has been completed"
-
add_asset_to_scene
: Adds an asset from the AssetDatabase to the Unity sceneExample prompt: "Add the Player prefab from my project to the current scene"
MCP Server Resources
-
unity://menu-items
: Retrieves a list of all available menu items in the Unity Editor to facilitateexecute_menu_item
toolExample prompt: "Show me all available menu items related to GameObject creation"
-
unity://hierarchy
: Retrieves a list of all game objects in the Unity hierarchyExample prompt: "Show me the current scene hierarchy structure"
-
unity://gameobject/{id}
: Retrieves detailed information about a specific GameObject by instance ID or object path in the scene hierarchy, including all GameObject components with it's serialized properties and fieldsExample prompt: "Get me detailed information about the Player GameObject"
-
unity://logs
: Retrieves a list of all logs from the Unity consoleExample prompt: "Show me the recent error messages from the Unity console"
-
unity://packages
: Retrieves information about installed and available packages from the Unity Package ManagerExample prompt: "List all the packages currently installed in my Unity project"
-
unity://assets
: Retrieves information about assets in the Unity Asset DatabaseExample prompt: "Find all texture assets in my project"
-
unity://tests/{testMode}
: Retrieves information about tests in the Unity Test RunnerExample prompt: "List all available tests in my Unity project"
Requirements
- Unity 2022.3 or later - to install the server
- Node.js 18 or later - to start the server
- npm 9 or later - to debug the server
Installation
Installing this MCP Unity Server is a multi-step process:
Step 1: Install Unity MCP Server package via Unity Package Manager
- Open the Unity Package Manager (Window > Package Manager)
- Click the "+" button in the top-left corner
- Select "Add package from git URL..."
- Enter:
https://github.com/CoderGamester/mcp-unity.git
- Click "Add"
Step 2: Install Node.js
To run MCP Unity server, you'll need to have Node.js 18 or later installed on your computer:
- Visit the Node.js download page
- Download the Windows Installer (.msi) for the LTS version (recommended)
- Run the installer and follow the installation wizard
- Verify the installation by opening PowerShell and running:
node --version
- Visit the Node.js download page
- Download the macOS Installer (.pkg) for the LTS version (recommended)
- Run the installer and follow the installation wizard
- Alternatively, if you have Homebrew installed, you can run:
brew install node@18
- Verify the installation by opening Terminal and running:
node --version
Step 3: Configure AI LLM Client
- Open the Unity Editor
- Navigate to Tools > MCP Unity > Server Window
- Click on the "Configure" button for your AI LLM client as shown in the image below
- Confirm the configuration installation with the given popup
To install MCP Unity via Smithery:
Currently not available
Open the MCP configuration file of your AI client (e.g. claude_desktop_config.json in Claude Desktop) and copy the following text:
Replace
ABSOLUTE/PATH/TO
with the absolute path to your MCP Unity installation or just copy the text from the Unity Editor MCP Server window (Tools > MCP Unity > Server Window).
{
"mcpServers": {
"mcp-unity": {
"command": "node",
"args": [
"ABSOLUTE/PATH/TO/mcp-unity/Server/build/index.js"
],
"env": {
"UNITY_PORT": "8090"
}
}
}
}
Start Unity Editor MCP Server
- Open the Unity Editor
- Navigate to Tools > MCP Unity > Server Window
- Click "Start Server" to start the WebSocket server
- Open Claude Desktop or your AI Coding IDE (e.g. Cursor IDE, Windsurf IDE, etc.) and start executing Unity tools
When the AI client connects to the WebSocket server, it will automatically show in the green box in the window
Optional: Set WebSocket Port
By default, the WebSocket server runs on port 8090. You can change this port in two ways:
- Open the Unity Editor
- Navigate to Tools > MCP Unity > Server Window
- Change the "WebSocket Port" value to your desired port number
- Unity will setup the system environment variable UNITY_PORT to the new port number
- Restart the Node.js server
- Click again on "Start Server" to reconnect the Unity Editor web socket to the Node.js MCP Server
- Set the UNITY_PORT environment variable in the terminal
- Powershell
$env:UNITY_PORT = "8090"
- Command Prompt/Terminal
set UNITY_PORT=8090
- Restart the Node.js server
- Click again on "Start Server" to reconnect the Unity Editor web socket to the Node.js MCP Server
Debugging the Server
The MCP Unity server is built using Node.js . It requires to compile the TypeScript code to JavaScript in the build
directory.
To build the server, open a terminal and:
-
Navigate to the Server directory:
cd ABSOLUTE/PATH/TO/mcp-unity/Server
-
Install dependencies:
npm install
-
Build the server:
npm run build
-
Run the server:
node build/index.js
Debug the server with @modelcontextprotocol/inspector:
- Powershell
$env:UNITY_PORT=8090; npx @modelcontextprotocol/inspector node Server/build/index.js
- Command Prompt/Terminal
set UNITY_PORT=8090 && npx @modelcontextprotocol/inspector node Server/build/index.js
Don't forget to shutdown the server with Ctrl + C
before closing the terminal or debugging it with the MCP Inspector.
- Enable logging on your terminal or into a log.txt file:
- Powershell
$env:LOGGING = "true" $env:LOGGING_FILE = "true"
- Command Prompt/Terminal
set LOGGING=true set LOGGING_FILE=true
Troubleshooting
- Ensure the WebSocket server is running (check the Server Window in Unity)
- Check if there are any firewall restrictions blocking the connection
- Make sure the port number is correct (default is 8080)
- Change the port number in the Unity Editor MCP Server window. (Tools > MCP Unity > Server Window)
- Check the Unity Console for error messages
- Ensure Node.js is properly installed and accessible in your PATH
- Verify that all dependencies are installed in the Server directory
- Ensure the menu item path is correct (case-sensitive)
- Check if the menu item requires confirmation
- Verify that the menu item is available in the current context
Support & Feedback
If you have any questions or need support, please open an issue on this repository.
Alternative you can reach out on:
- Linkedin:
- Discord: gamester7178
- Email: [email protected]
Contributing
Contributions are welcome! Please feel free to submit a Pull Request or open an Issue with your request.
Commit your changes following the Conventional Commits format.
License
This project is under MIT License
Acknowledgements
Leave a Comment
Comments section will be available soon. Stay tuned!
Frequently Asked Questions
What is MCP?
MCP (Model Context Protocol) is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications, providing a standardized way to connect AI models to different data sources and tools.
What are MCP Servers?
MCP Servers are lightweight programs that expose specific capabilities through the standardized Model Context Protocol. They act as bridges between LLMs like Claude and various data sources or services, allowing secure access to files, databases, APIs, and other resources.
How do MCP Servers work?
MCP Servers follow a client-server architecture where a host application (like Claude Desktop) connects to multiple servers. Each server provides specific functionality through standardized endpoints and protocols, enabling Claude to access data and perform actions through the standardized protocol.
Are MCP Servers secure?
Yes, MCP Servers are designed with security in mind. They run locally with explicit configuration and permissions, require user approval for actions, and include built-in security features to prevent unauthorized access and ensure data privacy.
Related MCP Servers
Ableton Live MCP Server
MCP Server implementation for Ableton Live OSC control
Airbnb MCP Server
AI Agent Marketplace Index Search MCP Server
MCP Server for AI Agent Marketplace Index from DeepNLP
Algorand MCP Implementation
Algorand Model Context Protocol (Server & Client)
mcp-server-apache-airflow
pypi.org/project/mcp-server-apache-airflow/
airtable-mcp-server
๐๏ธ๐ค Airtable Model Context Protocol Server, for allowing AI systems to interact with your Airtable bases
Airtable MCP Server
Search, create and update Airtable bases, tables, fields, and records using Claude Desktop and MCP (Model Context Protocol) clients
Alphavantage MCP Server
A MCP server for the stock market data API, Alphavantage API.
Amadeus MCP Server
Amadeus MCP(Model Context Protocol) Server
Anki MCP Server
An MCP server for Anki
Submit Your MCP Server
Share your MCP server with the community
Submit Now