Unreal-mcp/docs/IMPLEMENTATION_PLAN.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

157 lines
4.7 KiB
Markdown

# Unreal MCP Server - Plan d'Implementation
## Vision
MCP server Python pour Unreal Engine offrant :
- Generation C++ production-ready (via CLAUDE.md)
- Workflow bidirectionnel Blueprint <-> C++
- Runtime interaction + debug
**Differentiation** : Seul MCP avec generation C++ + manipulation Blueprint + analyse statique.
---
## Architecture
```
┌─────────────────────────────────────────┐
│ UNREAL MCP SERVER (Python) │
├─────────────────────────────────────────┤
│ Tools MCP │
│ ├── Project: get_spawnable_classes │
│ ├── Scene: spawn_actor │
│ ├── Debug: get_console_logs │
│ └── Blueprint: create_blueprint │
├─────────────────────────────────────────┤
│ Core │
│ ├── Unreal Connection (port 9998) │
│ ├── uasset Parser (fallback) │
│ └── IR (Intermediate Representation) │
└─────────────────────────────────────────┘
```
---
## Stack Technique
```python
{
"runtime": "Python 3.11+",
"mcp": "mcp (official Python SDK)",
"validation": "pydantic",
"blueprint_parser": "unreal_asset / custom",
"unreal_connection": "Remote Execution (port 9998)",
"testing": "pytest",
"linting": "ruff"
}
```
---
## Phases d'Implementation
### Phase 0 : Setup (Current)
- [x] Architecture definie
- [ ] Init projet Python (pyproject.toml)
- [ ] Setup MCP SDK Python
- [ ] Structure dossiers
- [ ] Tests (pytest)
### Phase 1 : Project Intelligence
- [ ] `get_spawnable_classes` - Liste classes spawnables
- [ ] `get_project_assets` - Inventaire assets
- [ ] `scan_cpp_classes` - Parse Source/
### Phase 2 : Scene Manipulation
- [ ] `spawn_actor` - Spawn via Unreal API
- [ ] `get_scene_hierarchy` - Arbre acteurs
- [ ] `modify_actor_transform` - Deplacer acteurs
### Phase 3 : Debug Tools
- [ ] `get_console_logs` - Logs temps reel
- [ ] `analyze_crash_dump` - Debug crashes
- [ ] `profile_blueprint` - Performance BP
### Phase 4 : Blueprint Operations
- [ ] `read_blueprint` - Parse .uasset
- [ ] `create_blueprint_from_cpp` - C++ -> BP
- [ ] `execute_python_script` - Scripts custom
### Phase 5 : Advanced (Future)
- [ ] `blueprint_to_cpp` - BP -> C++ optimise
- [ ] `transform_blueprint` - Round-trip modifications
- [ ] `optimize_blueprint` - Auto-optimization
---
## Structure Projet
```
unreal-mcp/
├── pyproject.toml # Project config + dependencies
├── README.md
├── CLAUDE.md # Dev guide
├── src/
│ └── unreal_mcp/
│ ├── __init__.py
│ ├── server.py # MCP entry point
│ ├── tools/
│ │ ├── __init__.py
│ │ ├── project.py # get_spawnable_classes, get_project_assets
│ │ ├── scene.py # spawn_actor, get_scene_hierarchy
│ │ ├── debug.py # get_console_logs, analyze_crash
│ │ └── blueprint.py # read_blueprint, create_blueprint
│ ├── core/
│ │ ├── __init__.py
│ │ ├── unreal_connection.py # Connection Unreal Editor
│ │ └── uasset_parser.py # Parse .uasset files
│ └── utils/
│ ├── __init__.py
│ ├── logger.py
│ └── validation.py
├── tests/
│ ├── __init__.py
│ ├── test_tools/
│ └── test_core/
├── skills/
│ └── blueprint-workflow/
│ ├── skill.yaml
│ └── prompt.md
└── docs/
├── SPEC.md
├── IMPLEMENTATION_PLAN.md
└── REFERENCES.md
```
---
## Challenges & Solutions
| Challenge | Solution |
|-----------|----------|
| Format .uasset proprietaire | unreal_asset lib + fallback UAssetAPI |
| Editeur ferme | Fallback: scan Content/ + scripts Python |
| Equivalence BP->C++ | Tests comportementaux + warnings |
| Validation compilation | Syntax check + Epic standards |
---
## Metriques Succes
- 100% code genere compile
- Response time < 2s
- 90%+ equivalence comportementale BP->C++
---
## Next Steps
1. `pyproject.toml` + structure dossiers
2. Setup MCP SDK Python basique
3. Implementer `get_spawnable_classes`
4. Unreal connection (Remote Execution)
---
*Last update: 2026-01-20*