overdare-studio-mcp
Enables Claude to create, modify, and delete parts and scripts in OVERDARE Studio worlds via natural language, with automatic backup and rollback for safe operations.
README
overdare-studio-mcp
Claude 로 OVERDARE Studio 를 조작하는 MCP 서버. Claude Desktop 이나 Claude Code 에서 "Workspace 에 빨간 큐브 만들어줘" 처럼 말하면, 실제 Studio 월드에 파트·스크립트를 만들고 수정하고 삭제한다.
⚠️ 비공식 프로젝트 — OVERDARE 와 무관하며 공식 지원이 아닙니다. Studio 가 여는 로컬 포트를 사용하므로 Studio 업데이트로 동작이 바뀔 수 있습니다(
npm run replay로 감지). 로컬 단일 사용자용.
⏱️ 5분 빠른 시작
0. 준비 — OVERDARE Studio 를 실행하고 월드를 하나 열어둔다. (Node.js 20+ 필요)
1. 빌드
git clone <this-repo> overdare-studio-mcp && cd overdare-studio-mcp
npm install
npm run build
2. Claude 에 연결 (둘 중 하나)
Claude Code:
claude mcp add overdare-studio -- node /절대경로/overdare-studio-mcp/dist/server/index.js
Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"overdare-studio": {
"command": "node",
"args": ["/절대경로/overdare-studio-mcp/dist/server/index.js"],
"env": {
"OVERDARE_PROJECT_CWD": "/절대경로/내-월드-폴더"
}
}
}
}
OVERDARE_PROJECT_CWD는.umap/.ovdrjm월드 파일이 있는 폴더. 쓰기 도구에 필요(읽기는 없어도 됨).
3. 첫 도구 호출 — Claude 에게:
- "OVERDARE 월드 구조 보여줘" →
studio_browse로 트리를 가져온다. - "Workspace 에 2×2×2 네온 큐브 'Hello' 만들어줘" →
studio_create_part로 실제 생성.
끝. 생성/수정/삭제는 자동으로 백업되고, 실패하면 롤백된다.
주요 기능
- CRUD — 인스턴스 생성/조회/수정/삭제 + 스크립트 추가. 자연어로.
- 안전한 쓰기 — 모든 변경이
backup → 수정 → 검증 → 적용 → 저장파이프라인을 거치고, 실패 시 자동 롤백. - 자산 임포트 — 에셋 스토어 모델 + 로컬 이미지(경로 보안 검증).
- 퍼블리시 가드 — 비가역 publish 는 4중 게이트로 보호(실수 발사 방지).
- Recorder / Replay — 모든 RPC 를 기록하고, Studio 업데이트 후 프로토콜 변경을 감지.
- Capability Layer — 지원하지 않는 기능은 호출 시 구조적 에러로 알림.
지원 도구 (13)
| 도구 | 하는 일 |
|---|---|
studio_browse |
월드 인스턴스 트리 조회 (필터/깊이 지원) |
studio_screenshot |
뷰포트 스크린샷 |
studio_create_part |
Part 생성 (Size/CFrame/Color/Material/Anchored 등) |
studio_update_part |
인스턴스 이름/속성 부분 수정 |
studio_delete |
인스턴스 삭제 (자식 포함, 서비스 보호) |
studio_add_script |
Script/LocalScript/ModuleScript 추가 |
studio_import_model |
에셋 스토어 모델 임포트 |
studio_import_image |
로컬 이미지 임포트 (경로 검증) |
studio_apply_action_sequence |
ActionSequencer 에 시퀀서 JSON 적용 |
studio_apply / studio_save |
변경 적용 / 월드 저장 |
studio_publish |
월드 퍼블리시 (기본 dry-run, 4중 게이트) |
studio_capabilities |
Studio 기능 지원 여부 보고 |
도구별 입력 스키마/예제/반환은 docs/TOOLS.md 참고. 모든 도구는 동일한
ToolResult(success/operation/affected/warnings/data/error) 를 structuredContent 로 반환한다.
안전장치
쓰기 파이프라인 + 자동 롤백
모든 .ovdrjm 변경은 강제로 다음 순서를 거친다:
백업 → 수정 → 검증 → level.apply → level.save.file
어느 단계든 실패하면 백업에서 복원하고 라이브 씬을 되돌린다. 동시 외부 수정도 감지해 중단한다.
--unsafe(또는 OVERDARE_UNSAFE=1) 일 때만 백업을 생략한다(롤백 불가).
Publish 가드 (비가역 작업)
studio_publish 는 기본이 dry-run(미리보기). 실제 발사는 아래 4개가 모두 충족돼야 한다:
capability 지원 + OVERDARE_ALLOW_PUBLISH=1 + confirm:true + dryRun:false
하나라도 빠지면 RPC 를 호출하지 않고, 미충족 게이트를 구조적으로 보고한다.
Recorder / Replay
OVERDARE_MCP_TRACE=1 으로 trace 를 stderr 에 출력하고, OVERDARE_MCP_TRACE_DIR=.trace 로
rpc.jsonl/session.json/metadata.json/ovdrjm.diff 를 저장한다.
npm run replay .trace/session.json # 기록 세션을 재생해 프로토콜 변경(드리프트) 감지
응답의 shape(키/타입 구조)를 비교하므로 데이터 변경은 무시하고 프로토콜 변경만 잡는다.
(인증 토큰류는 trace 에 <redacted>.)
환경변수
| 변수 | 기본값 | 설명 |
|---|---|---|
OVERDARE_PROJECT_CWD |
현재 폴더 | .ovdrjm 월드가 있는 폴더 (쓰기에 필요) |
STUDIO_HOST / STUDIO_PORT |
127.0.0.1 / 13377 |
Studio RPC 엔드포인트 |
OVERDARE_RPC_TIMEOUT_MS |
30000 |
RPC 타임아웃 |
OVERDARE_MCP_TRACE |
— | 1 → Recorder 활성화(stderr) |
OVERDARE_MCP_TRACE_DIR |
— | replay 용 파일 저장 폴더 |
OVERDARE_ASSET_ROOTS |
— | 이미지 임포트 허용 경로 추가(플랫폼 구분자) |
OVERDARE_ALLOW_PUBLISH |
— | 1 → publish 게이트 하나 해제 |
OVERDARE_UNSAFE |
— | 1 → 백업/롤백 생략(권장 안 함) |
FAQ
Q. Studio 가 꺼져 있으면? 읽기/쓰기 도구가 연결 오류를 구조적으로 반환한다. Studio 를 켜고 월드를 연 뒤 다시 시도.
Q. 쓰기 도구가 "프로젝트 폴더에 .umap 이 없습니다" 라고 한다. OVERDARE_PROJECT_CWD 를 실제 월드 파일(.umap/.ovdrjm)이 있는 폴더로 지정해야 한다.
Q. 실수로 월드가 망가지지 않나? 모든 쓰기는 백업 후 진행되고 실패 시 롤백된다. publish 만 비가역이며 4중 게이트로 막혀 있다.
Q. OVERDARE 공식인가? 아니다. 비공식·로컬 단일 사용자용 도구다.
Q. Studio 업데이트로 안 되면? 로컬 프로토콜이 바뀐 것일 수 있다. npm run replay 로 변경 지점을 확인한다.
Q. 어떤 Claude 모델/클라이언트가 필요한가? MCP 를 지원하는 Claude Desktop 또는 Claude Code. 서버는 stdio 로 동작한다.
개발
npm run dev # tsx 로 서버 실행
npm test # 단위 테스트 (vitest)
npm run typecheck # 타입 체크
npm run ci # typecheck + build + test + replay(dry)
npm run gen:docs # docs/TOOLS.md 재생성
더 자세한 구조·설계는 docs/Architecture.md, 기여 가이드는 CONTRIBUTING.md, 변경 이력은 CHANGELOG.md.
License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。