UnityMCP VRC MCP Server

MCP Server for Unity with help for creating VRChat worlds

Local serverstdioTypeScript

What is the UnityMCP VRC MCP server?

MCP Server for Unity with help for creating VRChat worlds. The unitymcp vrc mcp server wraps that behind the Model Context Protocol, so an assistant can use it through 9 defined tools rather than through you.

What it actually does

Drive the Unity Editor from Claude (or any MCP client). A Unity Editor plugin hosts a small HTTP server inside the Editor, and a small MCP server (Node/TypeScript) sends it one request per tool call and exposes the tools to Claude — run C# in the Editor, read editor/scene state, and pull Unity console logs.

  • Many Editors, many Claude sessions. — Each Editor's plugin hosts its own HTTP server on a
  • Run real C#. — execute_editor_command runs LLM-authored C# (its own usings,
  • Unity 2022.3 → Unity 6. — The command sandbox compiles with Mono's in-process compiler
  • Bounded state. — get_editor_state returns scene/project state on demand, capped so
  • See what it's doing. — take_screenshot renders the Scene or game camera back to Claude
  • Survives recompiles. — A domain reload just drops the HTTP listener for a moment — there's

Its toolset

Everything the assistant can do here goes through one of these:

  • list_unity_instances — Lists the Unity Editors currently running (name, project, instanceId) so you can pick one
  • select_unity_instance — Chooses which Editor subsequent calls target by default (per session); calls can also override with instance=
  • execute_editor_command — Compiles and runs LLM-authored C# in the Editor; returns result + logs. Optional timeoutMs (default 60s, max 300s) for heavy ops like large imports
  • get_editor_state — Returns Unity/scene/project state on demand (bounded)
  • get_object_details — Inspects one GameObject: transform, components, and size info (Renderer bounds, mesh vertex counts, shared mesh/material names)
  • get_logs — Returns recent Unity console logs
  • clear_logs — Clears the Editor's buffered console logs (e.g. stale errors from a failed snippet) so later get_logs reads aren't ambiguous
  • take_screenshot — Renders the Scene view or game camera to a JPEG/PNG image, so Claude can see the result of edits
  • get_command_page — Fetches later pages of any oversized tool result that was paged — execute_editor_command, get_object_details, get_editor_state (used automatically)

Adding it to your client

Installation goes through your MCP client rather than a global install: point it at npm on npm and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

When to reach for it

Plenty of monitoring and observability servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. UnityMCP VRC's toolset — list_unity_instances, select_unity_instance, execute_editor_command and 6 more — is a fair guide to whether it matches your workflow. It is maintained by swax; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Caveats

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 9 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch UnityMCP VRC.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the unitymcp vrc mcp server does with a few real requests.

Available tools

ToolWhat it does
list_unity_instancesLists the Unity Editors currently running (name, project, instanceId) so you can pick one.
select_unity_instanceChooses which Editor subsequent calls target by default (per session); calls can also override with instance=.
execute_editor_commandCompiles and runs LLM-authored C# in the Editor; returns result + logs. Optional timeoutMs (default 60s, max 300s) for heavy ops like large imports.
get_editor_stateReturns Unity/scene/project state on demand (bounded).
get_object_detailsInspects one GameObject: transform, components, and size info (Renderer bounds, mesh vertex counts, shared mesh/material names).
get_logsReturns recent Unity console logs.
clear_logsClears the Editor's buffered console logs (e.g. stale errors from a failed snippet) so later get_logs reads aren't ambiguous.
take_screenshotRenders the Scene view or game camera to a JPEG/PNG image, so Claude can see the result of edits.
get_command_pageFetches later pages of any oversized tool result that was paged — execute_editor_command, get_object_details, get_editor_state (used automatically).

How to install the UnityMCP VRC MCP server

{
  "mcpServers": {
    "unity": {
      "command": "node",
      "args": ["C:\\git\\UnityMCP\\unity-mcp-server\\build\\index.js"]
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Example prompts to try

  • Use UnityMCP VRC to list unity instances.
  • Use UnityMCP VRC to select unity instance.
  • Use UnityMCP VRC to execute editor command.

Frequently asked questions

Unity 2022.3 through Unity 6. The command sandbox automatically uses the appropriate compiler (Mono for .NET Framework projects, Roslyn for .NET Standard projects).