Skip to main content
Glama
okp74103-ops

Godot Project Doctor

by okp74103-ops
README.md
# Godot Project Doctor — PlayMCP 출품본

`GodotFunctionRefactor`의 분석·리팩터링 계획 기능을 공개 MCP 서비스에 맞게 안전하게 재구성한 출품용 복사본입니다. 사용자의 프로젝트 파일을 서버가 직접 수정하지 않으며, 전달받은 GDScript 텍스트만 메모리에서 처리합니다.

제3자 구성요소와 출품용 권리 표시는 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md), 전체 Node 의존성 목록은 [THIRD_PARTY_BOM.md](THIRD_PARTY_BOM.md), PlayMCP 입력 문안은 [PLAYMCP_SUBMISSION_COPY.md](PLAYMCP_SUBMISSION_COPY.md)를 참고하세요.

## 제공 도구

- `analyze_gdscript`: 스크립트 크기, 함수·signal·export, 역할 혼합과 위험 신호 분석
- `plan_godot_refactor`: 원본 보존형 단계별 리팩터링 계획과 검증 체크리스트 생성
- `generate_godot_service`: Godot 4.x `RefCounted` 서비스 뼈대 생성

출품본은 로컬 AI를 사용하지 않습니다. 카카오의 호출 Agent가 목표와 판단을 담당하고 MCP는 원본 `GodotFunctionRefactor.exe`의 결정론적 분석·생성·적용·검증 기능을 실행합니다. 전체 분석, factory scan/full/generate/batch/apply, worker board, self-train/self-patch, promotion, chaos restore/verify/drill, Kubernetes 복구 검증, stage backup/refactor/restore, 해시 검증, Tree-sitter, gdtoolkit, AST, 역할 정책, GdUnit4, Godot headless 검사, 셀프테스트·정리와 커스텀 도구 설정을 포함합니다.

`prepare_agent_execution`은 카카오 Agent의 자연어 목표를 scan → generate → 선택적 sandbox apply → headless/role 검증 순서로 변환합니다. 공개 목록에서는 `factory_local_ai_check`와 `factory_local_ai_plan`을 제거했습니다.

파일을 변경할 수 있는 도구는 입력에 `confirm_copy: true`가 반드시 필요하며, 모든 프로젝트 경로는 `GFR_WORKSPACE_ROOT` 내부로 제한됩니다.

## 로컬 실행

```powershell
pnpm install
$env:PORT=3000
pnpm start
```

- MCP Endpoint: `http://localhost:3000/mcp`
- 상태 확인: `http://localhost:3000/health`
- 전송 방식: Stateless Streamable HTTP

## 카카오클라우드 배포

```bash
docker build -t godot-function-refactor-mcp .
docker run --rm -p 3000:3000 -e PORT=3000 -v /path/to/godot-projects:/workspace godot-function-refactor-mcp
```

Linux 컨테이너에서는 Mono 런타임으로 기존 .NET Framework 엔진을 실행합니다. Windows 환경에서는 `Dockerfile.windows`를 사용할 수 있습니다.

카카오클라우드에서 외부 HTTPS Endpoint를 생성한 뒤 `https://<endpoint>/mcp`를 PlayMCP 개발자 콘솔에 등록합니다.

## 출품 전 확인

1. 카카오클라우드 MCP 서버 Endpoint 생성
2. PlayMCP에서 임시 등록 후 세 도구 호출 테스트
3. 최종본을 `등록 및 심사 요청`
4. 승인 후 공개 상태를 반드시 `전체 공개`로 변경
5. 공모전 페이지에서 `Player 예선 참여` 제출 — 제출은 1회만 가능

## 공개 서비스 안전성

- 경로 입력 및 서버 파일 접근 기능 없음
- 명령 실행 기능 없음
- 입력 길이 120,000자로 제한
- 사용자 소스 저장 없음
- 원본 프로젝트 자동 수정 없음

`engine/`에는 원본 Windows 도구의 배포용 복사본과 규칙 파일을 보관하지만, Linux 컨테이너 이미지에는 포함하지 않습니다.