{
  "name": "unity3d-game-engine",
  "display_name": "Unity3D Game Engine",
  "description": "An MCP server that enables LLMs to interact with Unity3d Game Engine, supporting access to a variety of the Unit's Editor engine tools (e.g. Console Logs, Test Runner logs, Editor functions, hierarchy state, etc) and executing them as MCP tools or gather them as resources.",
  "repository": {
    "type": "git",
    "url": "https://github.com/CoderGamester/mcp-unity"
  },
  "homepage": "https://github.com/CoderGamester/mcp-unity",
  "author": {
    "name": "CoderGamester"
  },
  "license": "MIT",
  "categories": [
    "Media Creation"
  ],
  "tags": [
    "Unity",
    "Node.js",
    "TypeScript",
    "WebSocket",
    "AI"
  ],
  "installations": {
    "npm": {
      "type": "npm",
      "command": "npx",
      "args": [
        "-y",
        "https://github.com/CoderGamester/mcp-unity"
      ],
      "env": {
        "UNITY_PORT": "${UNITY_PORT}"
      }
    }
  },
  "examples": [
    {
      "title": "Execute Menu Item",
      "description": "Execute Unity menu items programmatically using MCP Unity.",
      "prompt": "mcp-unity execute_menu_item"
    }
  ],
  "arguments": {
    "UNITY_PORT": {
      "description": "Environment variable to set the port number for the Unity MCP Server. This should be set to the desired port for the server to run and connect with the Unity Editor.",
      "required": false,
      "example": "8090"
    }
  },
  "tools": [
    {
      "name": "execute_menu_item",
      "description": "Executes a Unity menu item by path",
      "inputSchema": {
        "type": "object",
        "properties": {
          "menuPath": {
            "type": "string",
            "description": "The path to the menu item to execute (e.g. \"GameObject/Create Empty\")"
          }
        },
        "required": [
          "menuPath"
        ]
      }
    },
    {
      "name": "select_object",
      "description": "Sets the selected object in the Unity editor by path or ID",
      "inputSchema": {
        "type": "object",
        "properties": {
          "objectPath": {
            "type": "string",
            "description": "The path or ID of the object to select (e.g. \"Main Camera\" or a Unity object ID)"
          }
        },
        "required": [
          "objectPath"
        ]
      }
    },
    {
      "name": "package_manager",
      "description": "Manages packages in the Unity Package Manager",
      "inputSchema": {
        "type": "object",
        "properties": {
          "methodSource": {
            "type": "string",
            "description": "The method source to use (registry, github, or disk) to add the package"
          },
          "packageName": {
            "type": "string",
            "description": "The package name to add from Unity registry (e.g. com.unity.textmeshpro)"
          },
          "version": {
            "type": "string",
            "description": "The version to use for registry packages (optional)"
          },
          "repositoryUrl": {
            "type": "string",
            "description": "The GitHub repository URL (e.g. https://github.com/username/repo.git)"
          },
          "branch": {
            "type": "string",
            "description": "The branch to use for GitHub packages (optional)"
          },
          "path": {
            "type": "string",
            "description": "The path to use (folder path for disk method or subfolder for GitHub)"
          }
        },
        "required": [
          "methodSource"
        ]
      }
    },
    {
      "name": "run_tests",
      "description": "Runs Unity's Test Runner tests",
      "inputSchema": {
        "type": "object",
        "properties": {
          "testMode": {
            "type": "string",
            "description": "The test mode to run (EditMode, PlayMode, or All)"
          },
          "testFilter": {
            "type": "string",
            "description": "Optional test filter (e.g. specific test name or namespace)"
          }
        }
      }
    },
    {
      "name": "notify_message",
      "description": "Sends a message to the Unity console",
      "inputSchema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "The message to display in the Unity console"
          },
          "type": {
            "type": "string",
            "description": "The type of message (info, warning, error)"
          }
        },
        "required": [
          "message"
        ]
      }
    }
  ]
}
