VRChat Project MCP
VRChat Project MCP
VRChat 모델 개발을 위한 Unity 에디터 MCP(Model Context Protocol) 플러그인.
내장 HTTP 서비스(JSON-RPC 2.0 / SSE)를 통해 외부 AI Agent에 49개 도구를 노출하며, 다음을 포함합니다:
일반 Unity 프로젝트 기능: 프로젝트 정보, 씬/오브젝트/컴포넌트 조회 및 편집, 에셋 관리, 콘솔 로그 디버깅(기존 unity-mcp 계열 플러그인의
manage_scene / manage_gameobject / manage_asset / manage_editor기능 정렬);VRChat 전용 기능: 아바타 상세 보고서(메뉴/파라미터/바인딩/성능/리소스 사용/설치된 플러그인), MA / VRCFury 등 컴포넌트 파라미터 편집, 이모션 메뉴 및 이모션 파라미터 파일 생성/복사/편집/바인딩.
순수 C# 구현, 서드파티 의존성 제로(Python / JS / Newtonsoft.Json 등 어떤 라이브러리도 도입하지 않음), Unity 2022.3 및 Unity 6 호환(Windows / macOS / Linux 에디터).
목차
Related MCP server: unityxclaude
핵심 기능
기능 | 설명 |
HTTP 포트 서비스 | 내장 수제 HTTP/1.1 서버( |
제로 의존성 | 순수 C#; JSON 파싱/직렬화는 내장 구현; 서드파티 Unity 패키지나 외부 런타임에 의존하지 않음 |
호환성 | Unity 2022.3(.NET Standard 2.1 / C# 9) 및 Unity 6; 에디터 전용, 런타임 빌드에 영향 없음 |
도구 유형 표시 | 각 도구에 |
권한 게이트 | 설정 패널에서 읽기 전용 / 읽기-쓰기 모드 전환 가능; 읽기 전용 모드에서는 서버가 모든 쓰기 도구를 직접 거부( |
메인 스레드 안전 | 모든 Unity API 호출은 메인 스레드 스케줄러를 통해 실행되며, HTTP 작업 스레드는 절대 Unity API에 직접 접근하지 않음 |
VRChat 컴파일 타임 의존성 없음 | VRCSDK3 / Modular Avatar / VRCFury에 대한 읽기/쓰기는 모두 |
실시간 로그 | 설정 패널에 실시간 로그 박스 내장(연결/호출/거부/오류, 색상 구분), Unity 콘솔도 함께 전달 |
확장 가능 | 속성 어노테이션( |
설치
방법 1: UPM 로컬 패키지(권장)
이 저장소를 임의의 위치에 복사(예: 프로젝트 옆
../vrchat-project-mcp);Unity 프로젝트에서
Window → Package Manager → + → Add package from disk…를 열고 이 디렉토리의package.json선택;또는 프로젝트의
Packages/manifest.json에 직접 추가:
{
"dependencies": {
"com.vrchat-project.mcp": "file:../../vrchat-project-mcp"
}
}방법 2: Assets에 직접 배치
전체 폴더를 프로젝트 Assets/ 아래로 복사(예: Assets/vrchat-project-mcp/), Unity가 자동으로 컴파일합니다. package.json은 유지해도 되고 삭제해도 됩니다.
방법 3: Git URL(UPM)
저장소를 Git 서비스에 푸시한 후 Package Manager에서 Add package from git URL…을 선택하고 저장소 주소를 입력합니다.
설치 완료 후 메뉴 바에 Tools → VRChat Project MCP(설정 패널 / 서버 시작 / 서버 중지)가 나타납니다.
빠른 시작
Tools → VRChat Project MCP → 설정 패널을 엽니다;
기본 수신 주소
127.0.0.1:8765, 작업 권한(기본 읽기-쓰기)을 확인합니다;서버 시작을 클릭합니다(「에디터 시작 후 자동으로 서비스 시작」을 켠 경우 이미 자동 실행됨);
브라우저에서 http://127.0.0.1:8765/를 열면 중국어 정보 페이지가 표시되고,
GET /health는 JSON 상태를 반환합니다;Agent가 HTTP를 통해 호출하도록 합니다(예시는 클라이언트 연동 예시 참조):
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"}}}그런 다음 tools/list로 전체 도구를 확인하고, tools/call로 실행합니다. Agent는 먼저 mcp.get_status를 호출하여 서비스 모드와 도구 목록을 파악하고, unity.get_console_logs로 오류를 디버깅하고, vrc.get_avatar_info로 아바타 보고서를 출력할 수 있습니다.
설정 패널
Tools → VRChat Project MCP → 설정 패널:
설정 항목 | 설명 |
수신 주소 | 기본 |
포트 | 기본 |
작업 권한 | 읽기 전용(모든 쓰기 도구 거부) / 읽기-쓰기(조회 및 쓰기 허용). 변경 즉시 적용, 서버가 실시간 차단 |
자동 시작 | 에디터 시작 후 서비스 자동 시작 |
실시간 로그 박스 | 연결, 호출, 거부, 오류 이벤트를 실시간 출력, 자동 스크롤 및 지우기 지원 |
빠른 작업 | 시작 / 중지 / 재시작 / MCP 엔드포인트 복사 / 로그 지우기 |
수신 주소와 포트 변경은 「재시작」을 클릭해야 적용됩니다; 권한 모드 변경은 즉시 적용됩니다. 모든 설정은 프로젝트별로 EditorPrefs에 격리 저장됩니다.
HTTP 엔드포인트 및 프로토콜
엔드포인트 | 메서드 | 설명 |
| POST | Streamable HTTP(MCP 2025-03-26): JSON 요청 → JSON 응답; 요청 헤더 |
| DELETE | 세션 종료(이 서비스는 무상태, 직접 200) |
| GET | 기존 HTTP+SSE(MCP 2024-11-05): 장기 연결 수립, |
| POST | 기존 SSE 전송의 클라이언트→서버 채널; 202 반환, 결과는 SSE 이벤트로 기록 |
| GET | 상태 확인 JSON(상태/모드/도구 수/엔드포인트 목록) |
| GET | 중국어 정보 페이지 |
프로토콜: MCP over JSON-RPC 2.0, 흐름
initialize → notifications/initialized → tools/list → tools/call;배치 배열 요청 지원; 프로토콜 버전 호환
2024-11-05 / 2025-03-26 / 2025-06-18(클라이언트 버전 에코);모든 응답에 CORS 헤더(
Access-Control-Allow-Origin: *등) 포함, 브라우저 클라이언트(예: MCP Inspector)가 직접 접근 가능.
도구 목록
유형 열:
조회= 읽기 전용 안전;쓰기= 씬/에셋/프로젝트를 수정하며, 읽기 전용 모드에서 서버가 거부, Agent 호출 전 사용자 2차 확인 권장.
MCP 메타 도구(mcp)
도구 | 유형 | 설명 |
| 조회 | 서비스 실행 상태, 접근 모드, 전체 도구 목록(읽기/쓰기 표시 포함) 및 엔드포인트 |
| 조회 | 프로그램 재스캔 및 도구 레지스트리 새로고침(확장 추가/삭제 후 호출) |
Unity 일반(unity)
도구 | 유형 | 설명 |
| 조회 | 프로젝트 기본 정보(제품명/Unity 버전/플랫폼/빌드 씬/에셋 통계) |
| 조회 | 설치된 UPM 패키지 목록(VRChat 관련 패키지 탐지 포함) |
| 조회 | 프로세스 메모리/관리 메모리/씬 오브젝트 컴포넌트 통계/유형별 에셋 수/현재 선택 항목 |
| 조회 | 콘솔 로그(메모리 링 버퍼 + Editor.log 파일 끝부분), 레벨/키워드 필터 지원 |
| 조회 | 활성 씬 정보(이름/경로/오브젝트 통계/루트 오브젝트/컴포넌트 Top 통계) |
| 조회 | 이름/컴포넌트 키워드 필터로 씬 오브젝트 나열(비활성 포함) |
| 조회 | 오브젝트 전체 정보(위치/컴포넌트 목록/각 컴포넌트 직렬화 필드) |
| 조회 | 현재 에디터 선택 오브젝트 |
| 쓰기 | 선택 설정(에셋 경로 / #인스턴스 ID / 씬 경로) |
| 쓰기 | 일반 직렬화 필드 설정(씬 오브젝트 및 프리팹 에셋, 자동 저장), |
| 쓰기 | 오브젝트 위치 설정(위치/오일러 회전/스케일) |
| 쓰기 | GameObject 생성(부모 및 초기 컴포넌트 지정 가능) |
| 쓰기 | 씬 오브젝트 파괴(프리팹 에셋은 기본적으로 거부) |
| 쓰기 | 씬 오브젝트에서 프리팹 저장 |
| 쓰기 | 프리팹을 씬에 인스턴스화 |
| 쓰기 | 씬 열기(선택적으로 현재 씬 먼저 저장) |
| 쓰기 | 현재 씬 저장 |
| 쓰기 | 에디터 메뉴 항목 실행(예: |
| 조회 | 에셋 검색 및 나열(유형/폴더/키워드 필터) |
| 조회 | 에셋 상세 정보(유형/크기/의존성/임포터/프리팹 요약) |
| 조회 | 프로젝트 내 텍스트 파일 읽기(Assets/, Packages/, ProjectSettings/ 하위만) |
| 쓰기 | 에셋 생성(AnimatorController/Material/PhysicMaterial/AnimationClip/임의 ScriptableObject) |
| 쓰기 | C# 스크립트 파일 생성(MonoBehaviour 템플릿, 네임스페이스 선택 가능) |
| 쓰기 | 에셋 복사(이름 중복 시 자동 번호 추가) |
| 쓰기 | 에셋 삭제(기본적으로 휴지통으로 이동) |
| 쓰기 | Assets 아래 폴더 생성(단계별) |
| 쓰기 | 저장 후 에셋 데이터베이스 새로고침 |
VRChat 전용(vrc)
도구 | 유형 | 설명 |
| 조회 | 씬과 프로젝트 프리팹에 있는 아바타 나열 (VRCAvatarDescriptor / 레거시 디스크립터) |
| 조회 | 아바타 전체 상세 정보: 디스크립터 필드/애니메이션 레이어/표정 메뉴 트리/표정 파라미터/성능 통계/렌더링 본 통계/MA·VRCFury 등 플러그인 컴포넌트 —— Agent가 보고서와 제안을 출력하도록 제공 |
| 조회 | 성능 통계 (폴리곤 수/본/머티리얼/PhysBone/콜라이더 개수와 등급; SDK 공식 계산 우선, 그렇지 않으면 공식 임계값으로 추정 후 표시) |
| 조회 | VRChat 관련 SDK/플러그인 버전 탐지 (VRCSDK/MA/VRCFury/Poiyomi/DynamicBone/AAO 등) |
| 조회 | 지정 컴포넌트(MA/VRCFury/PhysBone 등) 전체 직렬화 파라미터 |
| 쓰기 | 임의 컴포넌트(MA/VRCFury 등) 직렬화 필드 수정 (enum은 이름, 리소스 참조는 에셋 경로 사용) |
| 조회 | 프로젝트의 표정 메뉴(VRCExpressionsMenu) 에셋 나열 |
| 조회 | 메뉴 구조 읽기 (컨트롤 타입/파라미터/값/아이콘/서브메뉴/라벨, 재귀 지원) |
| 쓰기 | 새 표정 메뉴 에셋 생성 |
| 쓰기 | 표정 메뉴 에셋 복사 |
| 쓰기 | 메뉴 컨트롤 추가/수정/삭제 (Button/Toggle/SubMenu/TwoAxisPuppet/FourAxisPuppet/RadialPuppet, labels 및 subParameters 포함) |
| 쓰기 | 메뉴/파라미터 에셋을 아바타 디스크립터에 바인딩 (씬 오브젝트와 프리팹 모두 지원) |
| 조회 | 프로젝트의 표정 파라미터(VRCExpressionParameters) 에셋 나열 |
| 조회 | 파라미터 목록 읽기 (이름/타입 Int·Float·Bool/기본값/저장 여부) |
| 쓰기 | 새 표정 파라미터 에셋 생성 |
| 쓰기 | 표정 파라미터 에셋 복사 |
| 쓰기 | 표정 파라미터 추가/수정/삭제 |
| 조회 | ModularAvatarParameters 컴포넌트의 전체 파라미터 읽기 |
| 쓰기 | MA 파라미터 추가/수정/삭제 (syncType은 이름으로 설정, 잘못된 값이면 해당 버전에서 선택 가능한 값 나열) |
확장 예시 (example)
도구 | 유형 | 설명 |
| 조회 | 확장 예시 (사용자 지정 도구 등록 데모, |
일반적인 호출 예시
// 读取头像报告
{"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}}}읽기 전용 / 읽기-쓰기 권한 모드
서버는 어떤 쓰기 계열 도구를 실행하기 전에 현재 액세스 모드를 확인합니다. 읽기 전용 모드에서는 바로
isError결과를 반환합니다:
{
"content": [{"type":"text","text":"当前为【只读】模式,已拒绝写入类工具调用「vrc.set_parameter」。…"}],
"isError": true,
"structuredContent": {"error": {"code":"permission_denied","access":"write","mode":"readonly"}}
}Agent 측 권장 전략:
tools/list또는mcp.get_status를 호출하여 각 도구의_meta.access를 확인합니다.write유형 도구는 사용자에게 먼저 확인하고, 클라이언트에서 차단을 중복 구현할 필요가 없습니다(서버에서 이미 안전장치가 있음).
클라이언트 연동 예시
curl (JSON 모드)
# 握手
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 모드)
# 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 (브라우저)
MCP Inspector를 열고 Transport는 Streamable HTTP를 선택한 뒤 URL에 http://127.0.0.1:8765/mcp를 입력합니다 (이 서비스는 CORS를 내장 지원합니다).
Claude Desktop / stdio만 지원하는 기타 클라이언트
커뮤니티 브리지 도구를 사용해 HTTP MCP를 stdio로 변환합니다 (브리지 도구는 클라이언트 측에서 실행되며 이 플러그인의 제로 의존성에 영향을 주지 않습니다):
npx mcp-remote http://127.0.0.1:8765/sse또는 자체 개발 Agent가 HTTP로 직접 호출할 수 있습니다 (POST /mcp, 위의 JSON-RPC 절차 참조).
확장 가이드
플러그인은 세 가지 확장 포인트를 제공하며, 플러그인 소스 코드를 수정하지 않고 기능을 추가할 수 있습니다:
방법 1: [McpTool] 속성 지정 (권장)
VrchatProjectMcp.Core 어셈블리를 참조하는 코드에서 public static 메서드를 정의하고 특성을 지정하면, 플러그인 시작 또는 mcp.refresh_tools 호출 시 자동으로 스캔하여 등록합니다:
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);
}
}방법 2: IMcpToolProvider 인터페이스
도구 집합을 동적으로 결정해야 하는 상황에 적합합니다 (예: "특정 플러그인이 설치된 것을 감지한 후에 해당 도구를 등록"):
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;
}
}완전한 실행 가능 예시는 Editor/Tools/Examples/ExampleExtensionTools.cs를 참조하세요.
방법 3: 런타임 등록 / 커스텀 리소스 / 커스텀 HTTP 엔드포인트
// 运行时注册工具
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(...) 写响应
});스캔 범위: "VrchatProjectMcp.Core 어셈블리를 참조하는" 어셈블리만 스캔하며 Unity의 모든 타입을 순회하지 않으므로 오버헤드가 통제 가능합니다.
호환성 및 알려진 제한 사항
항목 | 설명 |
Unity 버전 | 2022.3 (.NET Standard 2.1 / C# 9) 및 Unity 6 (모든 코드는 C# 9 문법으로 작성되었으며 로컬에서 LangVersion 9.0으로 컴파일 검증됨) |
플랫폼 | Windows / macOS / Linux 에디터 (HTTP 서버는 |
플레이 모드 | 서비스는 플레이 모드에서도 사용 가능합니다. 단, 플레이 모드에서 씬에 대한 쓰기는 플레이 모드를 종료하면 손실됩니다. 주의하세요. |
컴파일 의존성 | VRCSDK3 / MA / VRCFury에 대한 컴파일 타임 의존성이 없습니다. 설치되지 않은 경우 관련 도구는 명확한 오류를 반환합니다(플러그인 자체 사용에는 영향 없음). |
성능 통계 | SDK |
메뉴/파라미터 에셋 생성 및 편집 | 프로젝트에 VRChat SDK3 설치 필요 (이 에셋 타입은 SDK에 정의됨). SDK2 레거시 아바타는 정보 읽기만 지원합니다. |
프리팹 스캔 |
|
팝업류 작업 | 도구 실행에는 120초 메인 스레드 타임아웃이 적용됩니다. 모달 팝업이 포함된 작업은 타임아웃될 수 있습니다(플러그인은 도구 내에서 팝업을 띄우지 않도록 함). |
상주 리소스 | SSE 장기 연결은 필요에 따라 생성됩니다. 도메인 리로드 전에 서비스가 자동으로 중지되고 정리되어 잔여 포트 점유를 방지합니다. |
보안 안내
기본적으로
127.0.0.1만 수신합니다: 로컬 프로세스만 접근할 수 있습니다.0.0.0.0으로 변경하면 서비스가 LAN 내 모든 장치에 노출되므로 위험을 반드시 숙지하세요.이 플러그인은 현재 인증을 내장하지 않습니다 (MCP 커뮤니티 표준은 클라이언트 측 프록시에서 일괄 인증하는 방식입니다). 공개 네트워크에 노출할 경우 리버스 프록시 계층에서 인증을 추가하세요.
읽기 전용 모드는 마지막 안전장치이지만, 여전히 Agent가 쓰기 계열 작업에 대해 먼저 사용자 확인을 받을 것을 권장합니다.
unity.read_text_asset는Assets/,Packages/,ProjectSettings/아래의 파일만 읽을 수 있으며, 시스템 파일을 벗어나서 읽을 수 없습니다.
프로젝트 구조
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~는 UPM 규약의~접미사를 사용하여 명명되며, Unity가 패키지를 가져올 때 해당 디렉터리를 완전히 무시합니다. 로컬에서 테스트를 실행하려면:dotnet run --project DevTests~/CoreSanity/CoreSanity.csproj.
FAQ
Q: 왜 HttpListener / WebSocket을 사용하지 않나요?
Unity 2022/Unity 6의 .NET Standard 2.1 API 레벨에서는 HttpListener를 사용할 수 없습니다. WebSocket은 타사 라이브러리가 필요합니다. TcpListener + 직접 작성한 HTTP/1.1은 제로 의존성이며 버전 간 가장 안정적인 방법입니다.
Q: 플러그인이 게임 패키지에 포함되나요?
아니요. 핵심 로직은 Editor 어셈블리(includePlatforms: ["Editor"])에 있으며, 프로토콜 계층은 Runtime 디렉터리에 있지만 Editor에서만 참조되므로 빌드 시 플레이어에 포함되지 않습니다.
Q: 읽기 전용 모드인데 왜 도구 유형을 표시하나요? 유형 표시는 Agent의 결정(이중 확인 여부, 호출 시도 여부)을 돕기 위한 것이며, 서버 측 차단은 최후의 안전장치입니다. 둘을 함께 사용하면 더 안전합니다.
Q: VRChat SDK가 설치되지 않아도 되나요? 됩니다. Unity 일반 도구는 모두 사용할 수 있습니다. VRChat 도구 중 "아바타 정보/컴포넌트 읽기·쓰기/플러그인 탐지"는 최선을 다해 사용 가능하며(타입 이름으로 리플렉션), "메뉴/파라미터 에셋 생성 및 편집"은 명확한 안내를 반환합니다.
Q: Agent 호출 실패는 어떻게 해결하나요?
설정 패널의 실시간 로그 창을 확인하거나(모든 연결 및 호출이 출력됨), Agent가 unity.get_console_logs를 호출하여 콘솔과 Editor.log를 읽게 하세요.
Q: 포트가 점유되어 있으면 어떻게 하나요?
설정 패널에서 포트를 변경한 후 "재시작"을 클릭하세요. 또는 포트에 0을 입력하면 자동 할당됩니다(실제 포트는 상태 표시줄에 표시됨).
버전 기록
0.1.0 (초기 버전): HTTP(JSON/SSE) MCP 서비스, Unity 일반 도구 27개, VRChat 전용 도구 19개, 메타 도구 2개, 확장 예시 1개; 읽기 전용/읽기-쓰기 권한 게이트; 설정 패널 및 실시간 로그; 확장 포인트; 중국어 주석 및 문서.
License
MIT (LICENSE 참조).
This server cannot be installed
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
- AlicenseNot gradedqualityDmaintenanceAn 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.2MIT
- AlicenseNot gradedqualityCmaintenanceA local MCP server for Unity Editor that provides 20 editor tools to control scripts, scenes, components, assets, and builds.2MIT
- AlicenseNot gradedqualityBmaintenanceAn 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
- AlicenseNot gradedqualityAmaintenanceMCP 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.11MIT
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…
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/dpwgc/vrchat-project-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server