Unreal-mcp/CLAUDE.md
StillHammer ee2092dada Implement complete Python MCP server with 12 tools and blueprint-workflow skill
- Add MCP server with real Unreal Remote Execution Protocol (UDP 6766 + TCP 6776)
- Implement 12 MCP tools: project intelligence, scene manipulation, debug/profiling, blueprint ops
- Add enhanced .uasset parser with UE4/UE5 support
- Create /blueprint-workflow skill (analyze, bp-to-cpp, cpp-to-bp, transform, optimize)
- Include 21 passing tests
- Add complete user documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 18:59:43 +07:00

128 lines
3.5 KiB
Markdown

# Unreal MCP Server - Dev Guide
MCP server Python pour Unreal Engine : Runtime + Project Intelligence
---
## Architecture
```
┌─────────────────────────────────┐
│ UNREAL MCP SERVER (Python) │
├─────────────────────────────────┤
│ MCP Tools (12) │
│ └── Remote Execution Protocol │
├─────────────────────────────────┤
│ Fallback (éditeur fermé) │
│ └── .uasset parser + scan │
└─────────────────────────────────┘
User's CLAUDE.md → Expertise Unreal C++ (PAS NOUS!)
Skills → /blueprint-workflow
MCP Tools → get_spawnable_classes(), spawn_actor(), debug...
```
---
## Structure
```
src/unreal_mcp/
├── server.py # MCP entry point
├── tools/
│ ├── project.py # get_spawnable_classes, get_project_assets, scan_cpp_classes
│ ├── scene.py # spawn_actor, get_scene_hierarchy, modify_actor_transform
│ ├── debug.py # get_console_logs, analyze_crash_dump, profile_blueprint
│ └── blueprint.py # read_blueprint, create_blueprint_from_cpp, execute_python_script
├── core/
│ ├── unreal_connection.py # Remote Execution Protocol (UDP+TCP)
│ └── uasset_parser.py # Parse .uasset (fallback)
└── utils/
├── config.py # Settings (pydantic-settings)
├── logger.py
└── validation.py
skills/
└── blueprint-workflow/
├── skill.yaml # 5 commands: analyze, bp-to-cpp, cpp-to-bp, transform, optimize
└── prompt.md
```
---
## MCP Tools (12)
| Category | Tools |
|----------|-------|
| Project | `get_spawnable_classes`, `get_project_assets`, `scan_cpp_classes` |
| Scene | `spawn_actor`, `get_scene_hierarchy`, `modify_actor_transform` |
| Debug | `get_console_logs`, `analyze_crash_dump`, `profile_blueprint` |
| Blueprint | `read_blueprint`, `create_blueprint_from_cpp`, `execute_python_script` |
---
## Remote Execution Protocol
**UDP Multicast** (Node Discovery)
- Group: `239.0.0.1`
- Port: `6766`
- Messages: `ping`, `pong`, `open_connection`, `close_connection`
**TCP** (Commands)
- Port: `6776`
- Messages: `command`, `command_result`
- Format: 4-byte length prefix + JSON UTF-8
```python
from unreal_mcp.core.unreal_connection import UnrealConnection
with UnrealConnection(project_path=Path("/path/to/project")) as conn:
result = await conn.execute("print('Hello from Unreal!')")
```
---
## Env
```bash
# Project path (for offline mode)
UE_PROJECT_PATH=/path/to/project
# TCP Command port (default: 6776)
UE_COMMAND_PORT=6776
# UDP Multicast (default: 239.0.0.1:6766)
UE_MULTICAST_GROUP=239.0.0.1
UE_MULTICAST_PORT=6766
# Logging
LOG_LEVEL=INFO
```
---
## Guidelines
- Python 3.11+
- Type hints partout
- Validation avec Pydantic
- Graceful fallback si éditeur fermé
- Return `{ "success": True/False, "data"/"error": ... }`
- Tests avec pytest (21 tests)
---
## Status
- ✅ Architecture
- ✅ MCP SDK setup
- ✅ 12 tools implémentés
- ✅ Remote Execution Protocol (real)
- ✅ /blueprint-workflow skill
- ✅ Tests (21 passed)
- ✅ Fallback offline mode
---
**Remember**: L'expertise Unreal C++ sera dans le CLAUDE.md des users, pas ici.