Skip to main content
Glama
dpwgc

VRChat Project MCP

by dpwgc

VRChat Project MCP

A Unity Editor MCP (Model Context Protocol) plugin for VRChat avatar development.

It exposes 49 tools to external AI agents through a built-in HTTP service (JSON-RPC 2.0 / SSE), covering:

  • General Unity project capabilities: project info, scene/object/component query and editing, asset management, console log troubleshooting (aligned with the manage_scene / manage_gameobject / manage_asset / manage_editor capabilities of existing unity-mcp-style plugins);

  • VRChat-specific capabilities: avatar detail reports (menus/parameters/bindings/performance/resource usage/installed plugins), editing MA / VRCFury component parameters, creating/duplicating/editing/binding expression menus and expression parameter files.

Pure C# implementation with zero third-party dependencies (no Python / JS / Newtonsoft.Json or any other libraries), compatible with Unity 2022.3 and Unity 6 (Windows / macOS / Linux Editor).


Table of Contents

  1. Core Features

  2. Installation

  3. Quick Start

  4. Configuration Panel

  5. HTTP Endpoints and Protocol

  6. Tool List

  7. Read-Only / Read-Write Permission Modes

  8. Client Integration Examples

  9. Extension Guide

  10. Compatibility and Known Limitations

  11. Security Notes

  12. Project Structure

  13. FAQ


Related MCP server: unityxclaude

Core Features

Feature

Description

HTTP port service

Built-in hand-written HTTP/1.1 server (based on TcpListener, avoiding the unavailability of HttpListener under Unity .NET Standard 2.1), supporting both Streamable HTTP (POST /mcp) and legacy SSE (GET /sse + POST /message) transports

Zero dependencies

Pure C#; JSON parsing/serialization is a built-in implementation; no third-party Unity packages or external runtimes required

Compatibility

Unity 2022.3 (.NET Standard 2.1 / C# 9) and Unity 6; editor-only, does not affect runtime builds

Tool type annotation

Each tool is annotated as query (read-only) or write (write), exposed to agents via the description prefix and the _meta.access field in tools/list, so they can determine whether user confirmation is needed

Permission gating

The configuration panel can switch between read-only / read-write modes; in read-only mode the server directly rejects all write-type tools (returns permission_denied)

Main-thread safety

All Unity API calls go through a main-thread dispatcher; HTTP worker threads never touch Unity APIs directly

No compile-time VRChat dependency

All reads/writes to VRCSDK3 / Modular Avatar / VRCFury go through SerializedObject + reflection; if the corresponding packages are not installed, the plugin still compiles and runs normally, with only the relevant tools returning clear errors

Real-time logging

The configuration panel includes a built-in real-time log box (connection/call/rejection/error events, color-coded), and also forwards Unity console output

Extensible

Three extension methods: attribute annotation ([McpTool]) + provider interface (IMcpToolProvider) + runtime registration, see the Extension Guide


Installation

  1. Copy this repository to any location (e.g., ../vrchat-project-mcp next to your project);

  2. In the Unity project, open Window → Package Manager → + → Add package from disk… and select the package.json in this directory;

  3. Or directly append to the project's Packages/manifest.json:

{
  "dependencies": {
    "com.vrchat-project.mcp": "file:../../vrchat-project-mcp"
  }
}

Method 2: Place Directly in Assets

Copy the entire folder into the project's Assets/ directory (e.g., Assets/vrchat-project-mcp/), and Unity will compile it automatically. The package.json can be kept or deleted.

Method 3: Git URL (UPM)

After pushing the repository to a Git service, select Add package from git URL… in the Package Manager and enter the repository URL.

After installation, the menu bar shows Tools → VRChat Project MCP (configuration panel / start server / stop server).


Quick Start

  1. Open Tools → VRChat Project MCP → Configuration Panel;

  2. Confirm the default listen address 127.0.0.1:8765 and operation permission (read-write by default);

  3. Click Start Server (if "auto-start server after editor launch" is enabled, it will already be running);

  4. Open http://127.0.0.1:8765/ in a browser to see the Chinese info page; GET /health returns a JSON status;

  5. Have your agent call via HTTP (see examples in Client Integration Examples):

POST http://127.0.0.1:8765/mcp
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","clientInfo":{"name":"my-agent","version":"1.0"}}}

Then use tools/list to view all tools and tools/call to execute them. The agent can first call mcp.get_status to understand the service mode and tool list, use unity.get_console_logs to troubleshoot errors, and use vrc.get_avatar_info to output an avatar report.


Configuration Panel

Tools → VRChat Project MCP → Configuration Panel:

Configuration Item

Description

Listen address

Default 127.0.0.1 (local machine only); can be changed to 0.0.0.0 to expose to the LAN (be careful about security)

Port

Default 8765; enter 0 for automatic assignment (actual port shown in the top status bar)

Operation permission

Read-only (rejects all write-type tools) / Read-write (allows queries and writes). Changes take effect immediately, intercepted in real time by the server

Auto-start

Automatically start the service after the editor launches

Real-time log box

Prints connection, call, rejection, and error events in real time, with auto-scroll and clear support

Quick actions

Start / Stop / Restart / Copy MCP endpoint / Clear logs

Changes to the listen address and port require clicking "Restart" to take effect; permission mode changes take effect immediately. All configuration is saved per-project in EditorPrefs.


HTTP Endpoints and Protocol

Endpoint

Method

Description

/mcp

POST

Streamable HTTP (MCP 2025-03-26): JSON request → JSON response; if the request header Accept contains text/event-stream, returns as an SSE event stream

/mcp

DELETE

Session end (this service is stateless, returns 200 directly)

/sse

GET

Legacy HTTP+SSE (MCP 2024-11-05): establishes a long-lived connection and sends an endpoint event (carrying sessionId)

/message?sessionId=x

POST

Client→server channel for the legacy SSE transport; returns 202, results are written back via SSE events

/health

GET

Health check JSON (status/mode/tool count/endpoint list)

/

GET

Chinese info page

  • Protocol: MCP over JSON-RPC 2.0, flow initialize → notifications/initialized → tools/list → tools/call;

  • Supports batch array requests; protocol versions compatible with 2024-11-05 / 2025-03-26 / 2025-06-18 (echoes the client version);

  • All responses include CORS headers (Access-Control-Allow-Origin: *, etc.), so browser clients (such as MCP Inspector) can access directly.


Tool List

Type column: Query = read-only safe; Write = modifies scenes/assets/projects, rejected by the server in read-only mode, and agents are advised to confirm with the user before calling.

MCP Meta Tools (mcp)

Tool

Type

Description

mcp.get_status

Query

Service running status, access mode, full tool list (with read/write annotations) and endpoints

mcp.refresh_tools

Query

Re-scan assemblies and refresh the tool registry (call after adding/removing extensions)

Unity General (unity)

Tool

Type

Description

unity.get_project_info

Query

Basic project info (product name/Unity version/platform/build scenes/asset statistics)

unity.get_packages

Query

Installed UPM package list (including VRChat-related package detection)

unity.get_resource_usage

Query

Process memory/managed memory/scene object component statistics/asset counts by type/current selection

unity.get_console_logs

Query

Console logs (in-memory ring buffer + tail of Editor.log file), supports level/keyword filtering

unity.get_scene_info

Query

Active scene info (name/path/object statistics/root objects/component Top statistics)

unity.list_gameobjects

Query

List scene objects filtered by name/component keywords (including inactive ones)

unity.get_object_info

Query

Complete object info (transform/component list/serialized fields of each component)

unity.get_selection

Query

Currently selected objects in the editor

unity.set_selection

Write

Set selection (asset path / #instance ID / scene path)

unity.set_object_property

Write

Generic serialized field setting (scene objects and prefab assets, auto-save), supports parameters.Array.data[i].field paths

unity.set_transform

Write

Set object transform (position/euler rotation/scale)

unity.create_gameobject

Write

Create a GameObject (can specify parent and initial components)

unity.destroy_object

Write

Destroy scene objects (prefab assets rejected by default)

unity.create_prefab

Write

Save a prefab from a scene object

unity.instantiate_prefab

Write

Instantiate a prefab into the scene

unity.open_scene

Write

Open a scene (optionally save the current scene first)

unity.save_scene

Write

Save the current scene

unity.run_menu_item

Write

Execute an editor menu item (e.g., GameObject/3D Object/Cube)

unity.list_assets

Query

Search and list assets (type/folder/keyword filters)

unity.get_asset_info

Query

Asset details (type/size/dependencies/importer/prefab summary)

unity.read_text_asset

Query

Read text files in the project (limited to Assets/, Packages/, ProjectSettings/)

unity.create_asset

Write

Create assets (AnimatorController/Material/PhysicMaterial/AnimationClip/any ScriptableObject)

unity.create_script

Write

Create a C# script file (MonoBehaviour template, optional namespace)

unity.copy_asset

Write

Copy assets (auto-appends a number on name conflicts)

unity.delete_asset

Write

Delete assets (moves to recycle bin by default)

unity.create_folder

Write

Create folders under Assets (level by level)

unity.refresh_assets

Write

Save and refresh the asset database

VRChat-Specific (vrc)

Tool

Type

Description

vrc.get_avatars

Query

List avatars in the scene and project prefabs (VRCAvatarDescriptor / legacy descriptors)

vrc.get_avatar_info

Query

Full avatar details: descriptor fields/animation layers/expression menu tree/expression parameters/performance stats/render bone stats/plugin components such as MA·VRCFury — for the Agent to output reports and suggestions

vrc.get_performance_stats

Query

Performance stats (poly count/bones/materials/PhysBone/collider counts and ranks; prefers the SDK's official calculation, otherwise estimates by official thresholds and marks it as estimated)

vrc.get_installed_packages

Query

Detect versions of VRChat-related SDKs/plugins (VRCSDK/MA/VRCFury/Poiyomi/DynamicBone/AAO, etc.)

vrc.get_component_info

Query

Full serialized parameters of a specified component (MA/VRCFury/PhysBone, etc.)

vrc.set_component_property

Write

Modify serialized fields of any component (MA/VRCFury, etc.) (enums by name, asset references by asset path)

vrc.list_expressions_menus

Query

List expression menu (VRCExpressionsMenu) assets in the project

vrc.get_expressions_menu

Query

Read the menu structure (control type/parameter/value/icon/submenu/label, with recursion support)

vrc.create_expressions_menu

Write

Create a new expression menu asset

vrc.copy_expressions_menu

Write

Copy an expression menu asset

vrc.set_menu_control

Write

Add/modify/delete menu controls (Button/Toggle/SubMenu/TwoAxisPuppet/FourAxisPuppet/RadialPuppet, including labels and subParameters)

vrc.bind_expressions

Write

Bind menu/parameter assets to the avatar descriptor (supports both scene objects and prefabs)

vrc.list_expression_parameters

Query

List expression parameter (VRCExpressionParameters) assets in the project

vrc.get_expression_parameters

Query

Read the parameter list (name/type Int·Float·Bool/default value/whether saved)

vrc.create_expression_parameters

Write

Create a new expression parameter asset

vrc.copy_expression_parameters

Write

Copy an expression parameter asset

vrc.set_parameter

Write

Add/modify/delete expression parameters

vrc.ma_get_parameters

Query

Read all parameters of the ModularAvatarParameters component

vrc.ma_set_parameter

Write

Add/modify/delete MA parameters (syncType is set by name; invalid values will list the valid options for that version)

Extension example (example)

Tool

Type

Description

example.hello

Query

Extension example (demonstrates custom tool registration; ExampleExtensionTools.cs can be deleted)

Common invocation examples

// 读取头像报告
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
  "name":"vrc.get_avatar_info",
  "arguments":{"target":"Assets/MyAvatar.prefab","includeStats":true}}}

// 改 MA 参数默认值(写入,只读模式会被拒绝)
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{
  "name":"vrc.set_component_property",
  "arguments":{"target":"Assets/MyAvatar.prefab","componentType":"ModularAvatarParameters",
               "propertyPath":"parameters.Array.data[0].defaultValue","value":1.0}}}

// 给表情菜单加一个开关
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{
  "name":"vrc.set_menu_control",
  "arguments":{"menuPath":"Assets/Menus/Main.asset","action":"add",
               "control":{"name":"开关","type":"Toggle","parameter":"MyParam"}}}}

// 排查控制台报错
{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{
  "name":"unity.get_console_logs",
  "arguments":{"level":"Error","maxLines":50}}}

Read-only / read-write permission modes

  • The server checks the current access mode before executing any write-type tool; in read-only mode it directly returns an isError result:

{
  "content": [{"type":"text","text":"当前为【只读】模式,已拒绝写入类工具调用「vrc.set_parameter」。…"}],
  "isError": true,
  "structuredContent": {"error": {"code":"permission_denied","access":"write","mode":"readonly"}}
}
  • Recommended strategy on the Agent side: call tools/list or mcp.get_status to get each tool's _meta.access; confirm with the user before write-type tools, and there is no need to re-implement interception on the client side (the server already provides a fallback).


Client integration examples

curl (JSON mode)

# 握手
curl -s http://127.0.0.1:8765/mcp -H "Content-Type: application/json" -d \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","clientInfo":{"name":"curl","version":"1"}}}'

# 工具清单(注意每个工具 description 前缀的【查询】/【写入】与 _meta.access)
curl -s http://127.0.0.1:8765/mcp -H "Content-Type: application/json" -d \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

# 调用工具
curl -s http://127.0.0.1:8765/mcp -H "Content-Type: application/json" -d \
'{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"mcp.get_status"}}'

curl (SSE mode)

# Accept 带 text/event-stream 时响应为 SSE 事件流
curl -sN http://127.0.0.1:8765/mcp -H "Accept: text/event-stream" \
     -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

MCP Inspector (browser)

Open MCP Inspector, select Streamable HTTP as the Transport, and enter http://127.0.0.1:8765/mcp as the URL (this service has built-in CORS support).

Claude Desktop / other stdio-only clients

Use a community bridge tool to convert HTTP MCP to stdio (the bridge runs on the client side and does not affect this plugin's zero dependencies):

npx mcp-remote http://127.0.0.1:8765/sse

Or use a custom Agent to call directly over HTTP (POST /mcp, see the JSON-RPC flow above).


Extension guide

The plugin reserves three layers of extension points, so new capabilities can be added without modifying the plugin source code:

Method 1: [McpTool] attribute annotation (recommended)

Define public static methods in any code that references the VrchatProjectMcp.Core assembly and annotate them with the attribute; they are automatically scanned and registered when the plugin starts or when mcp.refresh_tools is called:

using VrchatProjectMcp.Core.Json;
using VrchatProjectMcp.Core.Mcp;

public static class MyTools
{
    // access 必须标明:Query(查询)或 Write(写入,只读模式会被服务端拒绝)
    [McpTool("mytools.check_avatar", McpToolAccess.Query, "mytools", "检查头像…")]
    public static object Check([McpParam("头像路径")] string path = null)
    {
        return new JsonObject().Set("ok", true);
    }
}

Method 2: IMcpToolProvider interface

Suitable for scenarios where the tool set is determined dynamically (e.g., "register the corresponding tool only after detecting that a certain plugin is installed"):

public sealed class MyProvider : IMcpToolProvider
{
    public IEnumerable<McpToolDefinition> RegisterTools()
    {
        var def = new McpToolDefinition
        {
            Name = "mytools.dynamic",
            Access = McpToolAccess.Write,
            Category = "mytools",
            Description = "动态注册示例",
        };
        def.Parameters.Add(new McpParamDefinition { Name = "x", JsonType = "string", Required = true });
        def.Handler = args => new JsonObject().Set("done", true);
        yield return def;
    }
}

See Editor/Tools/Examples/ExampleExtensionTools.cs for a complete runnable example.

Method 3: Runtime registration / custom resources / custom HTTP endpoints

// 运行时注册工具
McpToolRegistry.Instance.RegisterTool(myDefinition);

// 注册 MCP 资源(resources/list 可见,Agent 可 resources/read)
McpToolRegistry.Instance.Resources.Add(new McpResourceDefinition
{
    Uri = "mcp://my-report",
    Name = "我的报告",
    ReadHandler = () => new JsonObject().Set("data", 123),
});

// 自定义 HTTP 端点(需服务已启动)
McpServerController.Server?.AddHandler("GET", "/my-endpoint", ctx =>
{
    // ctx.BodyText 读取请求体;用 McpServerController.Server.WriteResponse(...) 写响应
});

Scan scope: only assemblies that "reference the VrchatProjectMcp.Core assembly" are scanned; it does not iterate over all Unity types, so the overhead is manageable.


Compatibility and known limitations

Item

Description

Unity version

2022.3 (.NET Standard 2.1 / C# 9) and Unity 6 (all code is written in C# 9 syntax and verified locally by compiling with LangVersion 9.0)

Platform

Windows / macOS / Linux editor (the HTTP server uses TcpListener and does not depend on platform-specific APIs)

Play mode

The service also works in play mode; however, writes to the scene in play mode are lost after exiting play mode, so proceed with caution

Compile dependencies

Zero compile-time dependencies on VRCSDK3 / MA / VRCFury; when they are not installed, the related tools return a clear error (without affecting the plugin itself)

Performance stats

Prefers reflecting into the SDK's AvatarPerformanceStats; when the SDK is missing, estimates by the official documentation thresholds and clearly marks the result as "estimated"

Menu/parameter asset creation and editing

Requires the VRChat SDK3 to be installed in the project (these asset types are defined by the SDK); SDK2 legacy avatars only support reading information

Prefab scanning

vrc.get_avatars prefab scanning loads prefabs one by one, which can be slow on large projects (can be controlled with limit and includePrefabAssets=false)

Modal dialog operations

Tool execution has a 120-second main-thread timeout; operations involving modal dialogs may time out (the plugin avoids showing dialogs inside tools)

Long-lived resources

SSE long connections are established on demand; before domain reload the service automatically stops and cleans up to prevent lingering port usage


Security notes

  1. By default it only listens on 127.0.0.1: only local processes can access it. Changing it to 0.0.0.0 exposes the service to all devices on the LAN; please be sure you understand the risks;

  2. This plugin currently has no built-in authentication (the MCP community standard is to have the client-side proxy handle authentication centrally). If exposed to the public internet, add authentication at the reverse proxy layer;

  3. Read-only mode is the last line of defense, but it is still recommended that the Agent obtain user confirmation before write-type operations;

  4. unity.read_text_asset only allows reading files under Assets/, Packages/, and ProjectSettings/; it cannot read system files outside those paths.


Project structure

vrchat-project-mcp/
├── package.json                        # UPM 包清单(unity ≥ 2022.3,零依赖)
├── README.md                           # 本文档
├── LICENSE                             # MIT
├── Runtime/                            # 纯 C# 协议层(noEngineReferences,无 Unity 依赖)
│   ├── VrchatProjectMcp.Core.asmdef
│   ├── Mcp/
│   │   ├── Json/MiniJson.cs            #   内置 JSON 解析/序列化(零依赖)
│   │   ├── McpTypes.cs                 #   模式枚举/权限接口/资源定义/扩展接口
│   │   ├── McpToolAttribute.cs         #   [McpTool]/[McpParam] 特性(扩展方式二)
│   │   ├── McpToolDefinition.cs        #   工具定义 + inputSchema 生成 + 参数绑定
│   │   ├── McpToolRegistry.cs          #   扫描/注册/权限门控/调用执行
│   │   ├── JsonRpcCore.cs              #   JSON-RPC 2.0 分发(initialize/tools/resources)
│   │   └── IMcpLogger.cs               #   日志接口(宿主实现)
│   └── Net/
│       ├── SimpleHttpServer.cs         #   TcpListener 手写 HTTP/1.1 服务器(SSE/CORS/chunked)
│       └── McpHttpEndpoints.cs         #   /mcp /sse /message /health / 端点
├── Editor/                             # Unity 编辑器层
│   ├── VrchatProjectMcp.Editor.asmdef
│   ├── Core/
│   │   ├── McpMainThreadDispatcher.cs  #   主线程调度(HTTP 线程 → Unity 主线程)
│   │   └── McpServerController.cs      #   生命周期控制/组装/内置资源/菜单项
│   ├── Settings/
│   │   ├── McpSettings.cs              #   配置(EditorPrefs 持久化,按项目隔离)
│   │   └── McpSettingsWindow.cs        #   配置面板(地址/端口/权限/实时日志)
│   ├── Logging/
│   │   ├── McpEditorLogger.cs          #   日志器(窗口富文本 + Unity 控制台)
│   │   └── McpConsoleCapture.cs        #   控制台日志环形缓冲采集
│   └── Tools/
│       ├── ToolHelpers.cs              #   目标解析/序列化读写/预制件编辑等公共辅助
│       ├── McpMetaTools.cs             #   mcp.* 元工具
│       ├── UnityProjectTools.cs        #   unity.* 项目/包/资源/日志
│       ├── UnitySceneTools.cs          #   unity.* 场景/对象/组件/预制件
│       ├── UnityAssetTools.cs          #   unity.* 资产
│       ├── Vrc/
│       │   ├── VrcReflection.cs        #   VRChat SDK 类型反射(无编译期依赖)
│       │   ├── VrcCoreTools.cs         #   vrc.* 头像/性能/插件探测/组件读写
│       │   ├── VrcMenuTools.cs         #   vrc.* 表情菜单 新建/复制/编辑/绑定
│       │   ├── VrcParameterTools.cs    #   vrc.* 表情参数 新建/复制/编辑
│       │   └── VrcMaTools.cs           #   vrc.ma_* MA 参数
│       └── Examples/
│           └── ExampleExtensionTools.cs#   扩展示例(可删除)
└── DevTests~/                          # 开发期冒烟测试(目录名带 ~ 后缀,Unity 不会导入,非包内容)
    └── CoreSanity/                     #   Core 协议层 37 项端到端测试(dotnet 工程)

DevTests~ uses the ~ suffix convention from UPM, so Unity completely ignores this directory when importing the package; to run tests locally: dotnet run --project DevTests~/CoreSanity/CoreSanity.csproj.


FAQ

Q: Why not use HttpListener / WebSocket?

At the .NET Standard 2.1 API level of Unity 2022/Unity 6, HttpListener is unavailable; WebSocket requires a third-party library. TcpListener + hand-written HTTP/1.1 is the most stable zero-dependency, cross-version solution.

Q: Will the plugin be included in the game build?

No. The core logic is in the Editor assembly (includePlatforms: ["Editor"]); although the protocol layer is in the Runtime directory, it is only referenced by the Editor and will not enter the player at build time.

Q: Why still annotate tool types in read-only mode?

The type annotation serves the Agent's decision-making (whether to double-confirm, whether to attempt the call); server-side interception is a fallback safeguard, and combining both is safer.

Q: Can it be used without the VRChat SDK installed?

Yes. All regular Unity tools work; among the VRChat tools, "avatar info/component read-write/plugin detection" work on a best-effort basis (via reflection by type name), while "menu/parameter asset creation and editing" returns a clear message.

Q: How do I troubleshoot failed Agent calls?

Check the real-time log box in the configuration panel (every connection and call is printed), or have the Agent call unity.get_console_logs to read the console and Editor.log.

Q: What if the port is already in use?

Change the port in the configuration panel and click "Restart"; or enter port 0 for automatic assignment (the actual port is shown in the status bar).


Version history

  • 0.1.0 (initial version): HTTP (JSON/SSE) MCP service, 27 regular Unity tools, 19 VRChat-specific tools, 2 meta tools, 1 extension example; read-only/read-write permission gating; configuration panel and real-time logs; extension points; Chinese comments and documentation.

License

MIT (see LICENSE).

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides 20 tools to control the Unity Editor with natural language, including scene management, component manipulation, script generation, asset handling, project settings, builds, and live C# execution.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server for Unity that enables AI agents to query and control the Unity Editor, providing tools for scene management, object manipulation, and asset browsing.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for safely inspecting and editing Unity/VRChat prefabs, scenes, and assets. It diagnoses override collisions, broken references, and runtime exceptions, with read-only YAML analysis and write operations via an Editor Bridge.
    11
    MIT

View all related MCP servers

Related MCP Connectors

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • Generate, edit, and deploy immersive 3D/WebGL web projects from any MCP assistant.

  • A MCP server built for developers enabling Git based project management with project and personal…

View all MCP Connectors

Latest Blog Posts

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/dpwgc/vrchat-project-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server