- 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>
157 lines
4.7 KiB
Markdown
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*
|