![AI Game Developer — Unity MCP](https://github.com/IvanMurzak/Unity-MCP/blob/main/docs/img/promo/ai-developer-header.svg?raw=true) [![MCP](https://badge.mcpx.dev 'MCP Server')](https://modelcontextprotocol.io/introduction) [![OpenUPM](https://img.shields.io/npm/v/com.ivanmurzak.unity.mcp?label=OpenUPM®istry_uri=https://package.openupm.com&labelColor=333A41 'OpenUPM package')](https://openupm.com/packages/com.ivanmurzak.unity.mcp/) [![Docker Image](https://img.shields.io/docker/image-size/aigamedeveloper/mcp-server/latest?label=Docker%20Image&logo=docker&labelColor=333A41 'Docker Image')](https://hub.docker.com/r/aigamedeveloper/mcp-server) [![Unity Editor](https://img.shields.io/badge/Editor-X?style=flat&logo=unity&labelColor=333A41&color=2A2A2A 'Unity Editor supported')](https://unity.com/releases/editor/archive) [![Unity Runtime](https://img.shields.io/badge/Runtime-X?style=flat&logo=unity&labelColor=333A41&color=2A2A2A 'Unity Runtime supported')](https://unity.com/releases/editor/archive) [![r](https://github.com/IvanMurzak/Unity-MCP/workflows/release/badge.svg 'Tests Passed')](https://github.com/IvanMurzak/Unity-MCP/actions/workflows/release.yml)
[![Discord](https://img.shields.io/badge/Discord-Join-7289da?logo=discord&logoColor=white&labelColor=333A41 'Join')](https://discord.gg/cfbdMZX99G) [![OpenUPM](https://img.shields.io/badge/dynamic/json?labelColor=333A41&label=Downloads&query=%24.downloads&suffix=%2Fmonth&url=https%3A%2F%2Fpackage.openupm.com%2Fdownloads%2Fpoint%2Flast-month%2Fcom.ivanmurzak.unity.mcp)](https://openupm.com/packages/com.ivanmurzak.unity.mcp/) [![Stars](https://img.shields.io/github/stars/IvanMurzak/Unity-MCP 'Stars')](https://github.com/IvanMurzak/Unity-MCP/stargazers) [![License](https://img.shields.io/github/license/IvanMurzak/Unity-MCP?label=License&labelColor=333A41)](https://github.com/IvanMurzak/Unity-MCP/blob/main/LICENSE) [![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua) The MCP Server is available as a lightweight Docker container, ideal for cloud deployments or isolating the AI server environment. The server lives in its own shared repository: [IvanMurzak/GameDev-MCP-Server](https://github.com/IvanMurzak/GameDev-MCP-Server) - **Image**: `aigamedeveloper/mcp-server` - **Tags**: `latest`, `X.Y.Z` (e.g., `8.0.0`) - **Architectures**: `linux/amd64`, `linux/arm64` (Apple Silicon compatible) ![Docker Launch](https://github.com/IvanMurzak/Unity-MCP/blob/main/docs/img/editor/docker-launch.gif?raw=true) ![AI Game Developer — Unity MCP](https://github.com/IvanMurzak/Unity-MCP/blob/main/docs/img/promo/hazzard-divider.svg?raw=true) ## 🚀 Quick Start Run the server on port `8080`: ```bash docker run -p 8080:8080 aigamedeveloper/mcp-server:latest ``` > ⚠️ **Required:** > 1. Install [Unity Editor](https://unity.com) > 2. Install [AI Game Developer](https://github.com/IvanMurzak/Unity-MCP) plugin in Unity project. ![AI Game Developer — Unity MCP](https://github.com/IvanMurzak/Unity-MCP/blob/main/docs/img/promo/hazzard-divider.svg?raw=true) ## ⚙️ Configuration The server can be configured using environment variables. | Variable | Default | Description | | :---------------------------- | :--------------- | :-------------------------------------------------------------------------------------- | | `MCP_PLUGIN_PORT` | `8080` | The port the server listens on for both Client (HTTP) and Plugin (SignalR) connections. | | `MCP_PLUGIN_CLIENT_TRANSPORT` | `streamableHttp` | Transport for the Client connection: `streamableHttp` or `stdio`. | | `MCP_PLUGIN_CLIENT_TIMEOUT` | `10000` | Timeout in milliseconds for Plugin responses. | | `MCP_AUTHORIZATION` | `none` | Authentication mode for incoming Client connections: `none` or `required`. | | `MCP_PLUGIN_TOKEN` | *(unset)* | Bearer token is optional. If set - server accept only connection with this exact token. Works only with `MCP_AUTHORIZATION=required`. | ### Example: Custom Port Run on port `9090`: ```bash docker run \ -e MCP_PLUGIN_PORT=9090 \ -p 9090:9090 \ aigamedeveloper/mcp-server:latest ``` ### Example: STDIO Mode STDIO mode is used when the MCP Client manages the Docker process directly. ```bash docker run -i \ -e MCP_PLUGIN_CLIENT_TRANSPORT=stdio \ -p 8080:8080 \ aigamedeveloper/mcp-server:latest ``` ### Example: Bearer Token Authentication Require a bearer token from the MCP Client: ```bash docker run \ -e MCP_AUTHORIZATION=required \ -e MCP_PLUGIN_TOKEN=your-secret-token \ -p 8080:8080 \ aigamedeveloper/mcp-server:latest ``` ![AI Game Developer — Unity MCP](https://github.com/IvanMurzak/Unity-MCP/blob/main/docs/img/promo/hazzard-divider.svg?raw=true) ## 💻 Client Configuration To use the Dockerized server with your AI Client (e.g., Claude): ### HTTP Mode (Recommended for Remote/Cloud) ```json { "mcpServers": { "ai-game-developer": { "url": "http://localhost:8080" } } } ``` With bearer token authentication (`MCP_AUTHORIZATION=required`): ```json { "mcpServers": { "ai-game-developer": { "url": "http://localhost:8080", "headers": { "Authorization": "Bearer your-secret-token" } } } } ``` ### STDIO Mode (Managed by Client) ```json { "mcpServers": { "ai-game-developer": { "command": "docker", "args": [ "run", "-t", "--rm", "-e", "MCP_PLUGIN_CLIENT_TRANSPORT=stdio", "-p", "8080:8080", "aigamedeveloper/mcp-server:latest" ] } } } ``` With bearer token authentication (`MCP_AUTHORIZATION=required`): ```json { "mcpServers": { "ai-game-developer": { "command": "docker", "args": [ "run", "-t", "--rm", "-e", "MCP_PLUGIN_CLIENT_TRANSPORT=stdio", "-e", "MCP_AUTHORIZATION=required", "-e", "MCP_PLUGIN_TOKEN=your-secret-token", "-p", "8080:8080", "aigamedeveloper/mcp-server:latest" ] } } } ``` ![AI Game Developer — Unity MCP](https://github.com/IvanMurzak/Unity-MCP/blob/main/docs/img/promo/hazzard-divider.svg?raw=true)