vrc-mcp-proxy
The vrc-mcp-proxy server lets you remotely control and automate the Unity Editor via MCP, acting as a correcting/safety proxy over the upstream MCP-for-Unity server. Key capabilities include:
Execute C# Code: Run arbitrary C# code inside the Unity Editor, with compiler options, execution history, safety checks (blocks unsafe
usingdirectives), and idempotency guards.Manage Assets: Full CRUD on Unity assets — import, create, modify, delete, duplicate, move, rename, search, and organize folders.
Manage GameObjects: Create, modify, delete, duplicate, and reposition GameObjects, including prefab instantiation and look-at operations.
Find GameObjects: Search the scene by name, tag, layer, component type, path, or ID with pagination.
Manage Scenes: Create, load, save, close, query hierarchy, set active scene, and validate scenes.
Manage Editor: Control playback (play/pause/stop), set active tools, manage tags/layers, deploy/restore packages, and perform undo/redo.
Manage Cameras: Create and configure cameras (including Cinemachine), capture screenshots (single, surround, orbit), and control blending/targeting.
Manage Packages: List, search, install, remove, embed, and configure Unity packages and scoped registries.
Read Console: Retrieve or clear Unity Editor console messages with filtering by type and text.
Unity Reflect: Inspect Unity's live C# API via reflection — look up types, members, and assemblies.
Execute Menu Items: Trigger any Unity Editor menu item by path.
Refresh Unity: Trigger asset database refresh and/or script compilation.
Set Active Instance: Pin a specific Unity Editor instance when multiple are running.
The proxy layer also enforces tool allowlists, corrects false failure responses (e.g., for asset move/rename/delete), applies a per-call watchdog timer, and blocks schema-drifted tools.
Provides a proxy to the MCP-for-Unity server, enabling AI agents to interact with Unity by exposing tools for code execution, asset management, and console output correction, with additional safety and idempotency guards.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vrc-mcp-proxyMove the 'Player' prefab to the 'Resources' folder."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vrc-mcp-proxy
Developed in the Atelier workspace.
An owned stdio MCP interception proxy that wraps the pinned MCP-for-Unity server (version pinned in src/vrc_mcp_proxy/config.py, via uvx) and corrects a handful of ways its transport lies to the model — a "success:false" that actually moved the file on disk, a snippet silently executed twice by a connection-level retry, a timeout that doesn't mean the work didn't run. It also narrows the exposed tool surface to an allowlist and refuses execute_code snippets that can't compile in a method body.
One tool is refused rather than corrected. read_console truncates every console entry to its first line inside Unity, so a multi-line diagnostic's payload never reaches this process and no transform here can restore it; the refusal routes to ReportConsole (com.ryan6vrc.agent-tools), which reads UnityEditor.LogEntries directly. A lie the proxy cannot see is a lie it must not appear to have handled.
It is a thin line-based JSON-RPC relay, not an MCP-SDK re-serve: it spawns the pinned server as a subprocess and passes every message through untouched except at named interception points. See docs/design.md for the full rationale and the per-failure verdicts, and docs/bump-runbook.md for moving the upstream pin.
Behaviors
Behavior | Point | What it does |
| tools/list resp | Validates upstream schemas against the committed baseline; refuses calls to a tool whose schema drifted. |
| tools/list resp + tools/call req | Exposes only the allowlisted tools; refuses the rest, naming the one-line fix. |
| tools/call req | Refuses snippets with top-level |
| tools/call req | Wraps snippets in a SessionState guard so an upstream transport re-send returns the cached result instead of running twice. |
| tools/call resp | On a move/rename/delete reported as failed, verifies on disk and rewrites a false failure to success (delete: only when the asset and its |
| tools/call resp | On a |
| tools/call resp | Appends a note to timeout errors: the work may have run; verify on disk before retrying. |
| tools/call req + timer | Per-call timer on an |
| tools/call req | Refuses an unpinned call while 2+ Unity editors are live (probe-free heartbeat count), naming them and |
| tools/call resp ( | On a successful pin, surfaces the resolved project root as |
Related MCP server: revula
Wiring it into .mcp.json
Keep the server key UnityMCP so every mcp__UnityMCP__* name and settings matcher survives unchanged:
{
"mcpServers": {
"UnityMCP": {
"command": "uv",
"args": ["run", "--project", "<path-to-this-repo>", "vrc-mcp-proxy"]
}
}
}The proxy spawns the pinned upstream server itself; you do not point .mcp.json at uvx mcpforunityserver anymore.
Disabling a behavior
Each behavior is independently disableable at launch via one env var (comma- or space-separated names from the table above):
"env": { "VRC_MCP_PROXY_DISABLE": "manage_asset_truth_correction,canary" }Development
uv run pytestTests need no Unity: transforms are unit-tested as pure functions, and one end-to-end test relays the proxy against a scripted fake child process. The pin lives in exactly one place — src/vrc_mcp_proxy/config.py.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseBqualityAmaintenanceMCP server for high-fidelity code audits, refactoring, and architectural analysis using specialized Proxy Experts.Last updated85
- Alicense-qualityCmaintenanceProduction-grade MCP server for universal reverse engineering automation.Last updated69GPL 3.0
- AlicenseAqualityCmaintenanceAn MCP server that recovers original C# class, method, field, and parameter names from Unity IL2CPP global-metadata.dat files to assist with reverse engineering Unity games.Last updated14MIT
- Flicense-qualityCmaintenanceA sandbox MCP server for testing and debugging MCP tools and interactions via the MCP Inspector.Last updated
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for doc2mcp documentation, generated by doc2mcp.
An MCP server for deep research or task groups
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ryan6-VRC/vrc-mcp-proxy'
If you have feedback or need assistance with the MCP directory API, please join our Discord server