3D indie game QA automation tool suite. Enables agents to observe game state and manipulate character input (WASD, Shift, Space, E keys) without direct state mutation. Implements agentic game QA with FastMCP-based tool exposure.
This MCP server exhibits significant definition quality gaps across multiple dimensions. While 8 tools are registered with basic descriptions, the schemas are incomplete or missing entirely, parameter descriptions are sparse or generic, and error handling guidance is minimal. The Korean-language descriptions are non-empty but lack the specificity LLMs need for reliable tool selection. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present. The server lacks output schema documentation, which prevents agents from understanding what fields to extract from responses. Several tools operate on sensitive state (character movement, memory) without clear recovery guidance on failure.
카메라의 각도(yaw, pitch)와 줌(zoom)을 조정합니다. 이 게임은 오빗 카메라(Orbit Camera) 시스템을 사용합니다. 주변 환경을 더 넓게 보거나 특정 방향을 조망할 때 사용합니다. 시점 변경은 WASD 이동의 기준점도 바꿈에 유의하세요. - yaw_delta_degrees: 수평 회전량. 양수는 오른쪽, 음수는 왼쪽으로 카메라를 돌립니다. * Yaw 0의 의미: 월드 좌표계의 북쪽(North)을 정면으로 응시함. 시계 방향으로 회전합니다. - pitch_delta_degrees: 수직 기울기 변화량. 양수는 위에서 아래를 내려다보는 시점(Top-down)으로, 음수는 지평선을 바라보는 시점으로 바꿉니다. * 범위: 약 12도(0.22 rad) ~ 64도(1.12 rad). 64도에 가까울수록 수직으로 내려다봅니다. - zoom_delta: 카메라 거리 변화량. 양수는 캐릭터로부터 멀어지며(줌 아웃) 더 넓은 영역을 보여주고, 음수는 가까워집니다(줌 인). * 거리 범위: 3.6 ~ 11.5 unit.
일련의 입력 프레임(WASD, Shift, Space, E)을 전송하여 캐릭터를 조작합니다. - [중요] 캐릭터 이동은 카메라 시점을 기준으로 결정됩니다. - [정밀도] duration_ms는 물리 계산 결과에 따라 소수점 단위로 입력할 수 있습니다. - [예시] frames: [{"keys": ["KeyW"], "duration_ms": 1245.5}, {"keys": ["KeyD"], "duration_ms": 450.0}]
특정 영역(x, y, width, height)만 집중적으로 관측합니다. 작은 물체나 퍼즐 텍스트를 정밀하게 확인해야 할 때 사용하십시오.
시각 검증이 꼭 필요한 경우에만 현재 화면을 캡처합니다. 사용자 메시지에 이미 이미지가 포함되어 있다면 가급적 호출하지 마십시오.
게임 엔진 내부 진단 정보 조회. 이벤트 트리거 상태, 물리 엔진 경고, 퀘스트 논리 구조 등 기술 데이터 제공.
Missing output schema documentation for all tools. LLMs cannot plan downstream calls or extract required fields without knowing what response structure to expect. diagnose_engine_state, inspect_game_state, and capture_visual_observation critically lack this.
Generic or incomplete parameter descriptions. 'value' in save_memory has type 'any' with trivial description 'Value to store in memory', no guidance on data structure, constraints, or size limits. 'reason' parameters lack context on how they affect tool behavior.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications. apply_input_buffer and adjust_camera_view are marked WRITE but lack destructiveHint annotations. save_memory is WRITE but lacks idempotent/atomic semantics documentation.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
현재 게임 월드의 구조화된 상태(좌표, 주변 장애물, 랜드마크, 퀘스트 상태 등)를 조회합니다. 이미지는 절대 포함하지 않으며 순수 상태 데이터만 반환합니다.
런타임 작업 기억을 불러옵니다.
판단, 이동 경로, 발견 사실 등 중요 정보를 런타임 작업 기억에 저장합니다.
Error handling lacks recovery guidance. Tools return generic 'connection failed' or 'failed to acquire' messages without actionable next steps. E.g., capture_visual_observation returns 'budget_exhausted: true' but does not clearly instruct the agent on whether to retry or proceed with cached results.
Parameter type mismatch and underspecification. save_memory 'value' param is type 'any', no validation constraints or serialization hints. capture_visual_crop coordinates (x, y, width, height) lack range or unit documentation (pixels? world units?). camera adjustment parameters lack absolute range documentation (only deltas).
Inconsistent naming conventions across similar tools. capture_visual_observation vs capture_visual_crop both observe visuals but naming does not clearly distinguish fetch-full-screen from fetch-region patterns. apply_input_buffer's frames parameter is deeply nested without schema flattening.