uefn-mcp-server
v1.0.0
Published
MCP server for UEFN - AI-powered Fortnite Creative map building with 87 tools
Maintainers
Readme
UEFN MCP Server
A comprehensive Model Context Protocol (MCP) server for building Fortnite Creative maps with Unreal Engine for Fortnite (UEFN) using AI assistance.
Features
- 87 Tools for project management, code generation, analysis, refactoring, assets, and automation
- 8 Game Templates (Battle Royale, Prop Hunt, Racing, Deathrun, Zone Wars, CTF, Box Fight, Hide & Seek)
- 8 Asset Templates (Loot, Competitive, Deathrun, Racing, Prop Hunt, Social, Horror, Party)
- 10 Prompts for guided workflows and conversational AI
- 6 Resources for quick access to project data
- Extensive Knowledge Base with 30+ patterns, 18+ code snippets, 20+ device APIs, 9 widget APIs
- Asset Reference Library with 45+ Fortnite assets (weapons, consumables, props, audio, UI, VFX)
- Intelligent Code Analysis with anti-pattern detection and quality metrics
- Auto-Fix & Refactoring tools for common Verse issues
Installation
npm install
npm run buildUsage
Set the project path and run:
export UEFN_PROJECT_PATH="/path/to/your/uefn/project"
node dist/index.jsClaude Desktop Configuration
Add to claude_desktop_config.json:
{
"mcpServers": {
"uefn": {
"command": "node",
"args": ["/path/to/FortniteMCP/dist/index.js"],
"env": {
"UEFN_PROJECT_PATH": "/path/to/your/uefn/project"
}
}
}
}Tools Reference
Project Management (5 tools)
| Tool | Description |
|------|-------------|
| scan_project | Scan UEFN project structure, modules, and devices |
| read_verse_file | Read .verse file with parsed metadata |
| list_devices | List all creative_device classes with editables |
| list_modules | List Verse modules with file counts |
| get_asset_manifest | Read Assets.digest.verse |
File Operations (3 tools)
| Tool | Description |
|------|-------------|
| create_verse_file | Create new .verse file with validation |
| edit_verse_file | Edit file with find/replace or line insertion |
| delete_verse_file | Delete file (saved in history for undo) |
History & Revert (5 tools)
| Tool | Description |
|------|-------------|
| list_history | Show recent file changes |
| revert_change | Undo specific change by ID |
| revert_batch | Undo entire batch of changes |
| revert_last | Quick undo last change |
| diff_change | Show before/after for a change |
Error Detection (3 tools)
| Tool | Description |
|------|-------------|
| get_build_errors | Parse UEFN logs for Verse errors |
| fix_verse_error | Apply fix to specific line |
| validate_verse_syntax | Check code for syntax issues |
Code Generation (4 tools)
| Tool | Description |
|------|-------------|
| generate_device | Generate complete creative_device |
| generate_class | Generate class/struct/interface |
| generate_game_mode | Generate game mode scaffold |
| get_device_types | List available UEFN device types |
Build & Push (5 tools)
| Tool | Description |
|------|-------------|
| trigger_build | Generate build automation instructions |
| get_build_status | Get current build status from logs |
| monitor_build | Watch for build completion |
| push_build | Generate push automation instructions |
| get_uefn_shortcuts | UEFN keyboard shortcuts reference |
Version Control (8 tools)
| Tool | Description |
|------|-------------|
| git_status | Check git status |
| git_diff | Show file changes |
| git_commit | Create commit |
| git_log | View commit history |
| git_branch | Manage branches |
| git_stash | Stash/restore changes |
| git_init | Initialize git with UEFN .gitignore |
| git_add_all | Stage all changes |
Knowledge Base (12 tools)
| Tool | Description |
|------|-------------|
| search_docs | Search all documentation |
| get_verse_types | Type reference (int, array, map, etc.) |
| get_verse_keywords | Keywords by category |
| get_verse_patterns | Common patterns with examples |
| get_code_snippets | Ready-to-use code snippets |
| get_pattern | Get specific pattern by name |
| get_snippet | Get specific snippet by name |
| get_quick_reference | Verse quick reference card |
| get_device_api | Device API reference (methods, events) |
| get_widget_api | Widget API reference (properties, methods) |
| get_async_patterns | Async/concurrency patterns (spawn, race, sync) |
| get_character_api | Player/character API reference |
Desktop Automation (6 tools)
| Tool | Description |
|------|-------------|
| capture_uefn_state | Screenshot/OCR instructions |
| execute_workflow | Run predefined workflows |
| find_ui_element | Locate UI elements |
| get_automation_guide | Task-specific automation help |
| detect_dialog | Handle dialog boxes |
| get_uefn_layout | UEFN window layout reference |
Code Analysis (5 tools)
| Tool | Description |
|------|-------------|
| analyze_file | Analyze file for anti-patterns, performance issues, quality metrics |
| analyze_project | Project-wide analysis with summary report |
| suggest_improvements | Targeted suggestions (performance, readability, safety) |
| detect_dead_code | Find unused functions, variables, imports |
| analyze_dependencies | Import dependency analysis |
Project Templates (4 tools)
| Tool | Description |
|------|-------------|
| list_templates | List available game mode templates |
| get_template | Get full template details with code |
| generate_from_template | Generate all files from template |
| create_custom_template | Create custom template from mechanics |
Refactoring (8 tools)
| Tool | Description |
|------|-------------|
| auto_fix_file | Auto-fix common Verse issues |
| auto_fix_project | Auto-fix entire project |
| rename_symbol | Rename across files |
| extract_function | Extract code into function |
| add_editable | Add @editable property |
| extract_constant | Extract value to constant/@editable |
| organize_imports | Sort imports by category |
| add_error_handling | Add failable/option handling |
Advanced Tools (6 tools)
| Tool | Description |
|------|-------------|
| get_dependency_graph | Generate file dependency graph |
| find_usages | Find all symbol usages |
| generate_test_scenarios | Generate test scenarios for devices |
| generate_docs | Generate API documentation |
| analyze_performance | Performance analysis |
| generate_boilerplate | Generate common pattern boilerplate |
Asset Tools (13 tools)
| Tool | Description |
|------|-------------|
| search_assets | Search Fortnite assets by name, type, or tag |
| get_assets_by_category | Get all assets in a category (weapon, consumable, prop, audio, ui, vfx) |
| get_assets_by_tag | Get assets filtered by a specific tag |
| get_asset_template | Get pre-configured asset template for a game mode |
| list_asset_templates | List all available asset templates |
| scan_project_assets | Scan UEFN project for assets (textures, meshes, sounds) |
| get_asset_usage | Find where an asset is used in Verse files |
| get_weapons | Get weapon assets with optional subcategory filter |
| get_consumables | Get consumable assets (health, shield) |
| get_props | Get prop assets with optional subcategory filter |
| get_audio | Get audio assets with optional type filter |
| generate_asset_list | Generate suggested asset list for a game mode |
| list_asset_categories | List all available asset categories with counts |
Game Templates
| Template | Description |
|----------|-------------|
| battle_royale | Last player standing with storm, loot, eliminations |
| prop_hunt | Hiders disguise as props, seekers hunt |
| racing | Checkpoint-based racing with laps |
| deathrun | Obstacle course with checkpoints |
| zone_wars | Fast-paced building/fighting with zones |
| capture_the_flag | Team-based flag capturing |
| box_fight | 1v1 or team box fighting with rounds |
| hide_and_seek | Classic hide and seek with roles |
Asset Templates
| Template | Category | Description |
|----------|----------|-------------|
| loot | battle_royale | Standard BR loot pool with weapons and consumables |
| competitive | battle_royale | Competitive loot with balanced weapons |
| deathrun | obstacle | Traps and hazard effects for deathruns |
| racing | racing | Countdown, music, and checkpoint effects |
| prop_hunt | prop_hunt | Prop disguises and seeking tools |
| social | social | Party music and ambient sounds |
| horror | creative | Spooky ambiance and jump scare effects |
| party | minigame | Celebration effects and party audio |
Asset Library
The server includes a comprehensive Fortnite asset reference library:
| Category | Count | Examples | |----------|-------|----------| | Weapons | 7 | Assault Rifle, Shotgun, SMG, Sniper, RPG | | Consumables | 6 | Medkit, Shield Potion, Bandages, Slurp | | Materials | 3 | Wood, Brick, Metal | | Props | 8 | Ammo Box, Chest, Spike Trap, Bouncer | | Audio | 7 | Victory Music, Countdown, Ambient | | UI | 7 | Health Icon, Shield Icon, Minimap | | VFX | 7 | Damage Flash, Heal Effect, Spawn Effect |
Knowledge Base Contents
Patterns (30+)
Core Patterns:
- Failable Array Access
- Map Operations
- Event Subscription
- Tick Loop
- Player Tracking
- Timer with Countdown
- Movement with MoveTo
- Random Selection
- Optional/Nullable Values
- String Interpolation
UI Patterns:
- Canvas UI Setup
- Dynamic Text Updates
- Button Widget with Click Handler
- Stack Box Layout
- Progress Bar
- Popup Message
Animation Patterns:
- Smooth Prop Movement
- Rotation Animation
- Easing/Interpolation
- Teleport with Effects
NPC Patterns:
- Guard Spawner Setup
- NPC Dialog System
- Creature Spawner Waves
Game Mechanics:
- Inventory System
- Checkpoint System
- Power-up System
- Zone Capture
Snippets (18+)
- Basic Device Template
- Device with Button
- Device with Trigger Volume
- Score Manager
- Teleport Helper
- Round System
- Custom UI Widget
- Distance Check
- Full HUD Manager
- Minigame Manager
- Prop Spawner Pool
- Event Bus
- Audio Manager
- Team Color Indicator
- Leaderboard UI
- Item Pickup
- Projectile System
- State Machine
Device APIs (20+)
| Device | Key Methods/Events |
|--------|-------------------|
| button_device | InteractedWithEvent |
| trigger_device | Enable/Disable, AgentEntersEvent |
| guard_spawner_device | Spawn/Despawn, SpawnedEvent, EliminatedEvent |
| item_spawner_device | SpawnItem, Enable/Disable |
| timer_device | Start/Stop/Reset, SuccessEvent |
| score_manager_device | Activate/SetScore/GetScore |
| hud_message_device | Show/Hide |
| teleporter_device | Enable/Disable, Teleport |
| damage_volume_device | Enable/Disable |
| tracker_device | Increment/GetValue |
| map_indicator_device | Show/Hide, SetTarget |
| conditional_button_device | InteractedWithEvent |
| signal_remote_manager_device | PrimarySignalEvent |
| creature_spawner_device | Spawn/DespawnAll, WaveCompleteEvent |
| accolades_device | Award |
| audio_player_device | Play/Stop/Register |
| cinematic_sequence_device | Play/Stop/Pause |
| elimination_manager_device | EliminationEvent |
| player_spawner_device | Enable/Disable, SpawnedEvent |
| class_selector_device | ClassSelectedEvent |
Widget APIs (9)
| Widget | Description |
|--------|-------------|
| text_block | Display text with font, color, shadow |
| button_regular | Clickable button with label |
| slider_regular | Value slider with min/max |
| color_block | Solid color fill |
| texture_block | Display images |
| canvas | Root container for UI |
| canvas_slot | Position widget in canvas |
| stack_box | Layout children in row/column |
| overlay | Layer children on top of each other |
Async Patterns (7)
| Pattern | Description |
|---------|-------------|
| spawn | Start concurrent execution |
| race | First to complete wins |
| sync | Wait for all to complete |
| branch | Run independent tasks |
| rush | First to complete, cancel others |
| defer | Cleanup on scope exit |
| <suspends> | Mark function as async |
Prompts
| Prompt | Description |
|--------|-------------|
| chat | Have a natural conversation about UEFN/Verse development |
| ask | Quick question about Verse or UEFN - get a direct answer |
| brainstorm | Brainstorm game ideas, mechanics, or features |
| new-device | Generate creative_device from description |
| debug-verse-error | Diagnose and fix compilation errors |
| game-mode-scaffold | Plan complete game modes |
| build-fix-cycle | Guide through build-fix-rebuild |
| version-control | Guide through git operations |
| learn-verse | Interactive Verse learning |
| automate-uefn | Desktop automation guidance |
Resources
| URI | Description |
|-----|-------------|
| uefn://project/structure | Project structure JSON |
| uefn://build/log | Build log text |
| uefn://shortcuts | UEFN keyboard shortcuts |
| uefn://verse/quick-reference | Verse quick reference |
| uefn://layout | UEFN window layout |
Desktop Automation Workflows
The server provides predefined workflows for common UEFN tasks:
build_verse- Compile Verse (Ctrl+Shift+B)push_build- Push to Fortnite (Ctrl+Shift+P)save_all- Save all files (Ctrl+Shift+S)start_session- Start play test (F5)stop_session- Stop play test (Shift+F5)open_verse_file- Open file dialogopen_output_log- View logs (Alt+Shift+O)refresh_verse- Hot reload (Ctrl+Alt+F11)
These integrate with the desktop MCP for full automation.
Architecture
src/
├── index.ts # Entry point
├── server.ts # MCP server with all tools/prompts/resources
├── tools/
│ ├── project-management.ts # Project scanning tools
│ ├── file-operations.ts # File CRUD with history
│ ├── history-tools.ts # Undo/redo tools
│ ├── error-tools.ts # Build error detection/fixing
│ ├── code-generation.ts # Device/class/game mode generation
│ ├── build-tools.ts # Build/push automation
│ ├── git-tools.ts # Version control
│ ├── knowledge-tools.ts # Documentation search
│ ├── desktop-tools.ts # Desktop automation
│ ├── analysis-tools.ts # Code quality analysis
│ ├── template-tools.ts # Game mode templates
│ ├── refactoring-tools.ts # Auto-fix & refactoring
│ ├── advanced-tools.ts # Dependency graphs, testing, docs
│ └── asset-tools.ts # Asset search, discovery & templates
├── utils/
│ ├── path-sandbox.ts # Security layer for file access
│ ├── history.ts # Change tracking with snapshots
│ ├── verse-parser.ts # Parse Verse code structure
│ ├── log-parser.ts # Parse UEFN build logs
│ ├── import-resolver.ts # Auto-resolve Verse imports
│ ├── knowledge-base.ts # Core documentation & combined exports
│ ├── knowledge-base-extended.ts # Extended patterns & snippets
│ ├── knowledge-base-official.ts # Device/Widget/Character APIs
│ └── asset-library.ts # Fortnite asset reference library
└── types/
├── project.ts # Project structure types
└── history.ts # History entry typesExample Usage
Generate a Device
Use generate_device with:
- name: "coin_collector"
- description: "Collect coins to score points"
- editables: [{ name: "ScorePerCoin", type: "int" }]
- events: ["Button.InteractedWithEvent"]
- tracksPlayers: trueFix Build Errors
1. Use get_build_errors to see all errors
2. For each error, use fix_verse_error with the suggested fix
3. Use trigger_build to rebuild
4. Repeat until cleanSearch for UI Help
Use search_docs with query: "button widget"Automate Full Build Cycle
1. Use execute_workflow with workflow: "save_all"
2. Use execute_workflow with workflow: "build_verse"
3. Use monitor_build to wait for completion
4. Use get_build_status to check resultsDocumentation
- Getting Started Guide - Installation and first steps
- Complete Tool Reference - All 87 tools with parameters and examples
- Code Examples - Practical Verse code examples
- Verse API Reference - Types, device APIs, widget APIs, async patterns
License
MIT
