Skip to content

Fix PR #22 control plane build and tool routing - #29

Open
mikkelchokolate wants to merge 5 commits into
flopperam:mainfrom
mikkelchokolate:codex/fix-pr22-control-plane
Open

Fix PR #22 control plane build and tool routing#29
mikkelchokolate wants to merge 5 commits into
flopperam:mainfrom
mikkelchokolate:codex/fix-pr22-control-plane

Conversation

@mikkelchokolate

Copy link
Copy Markdown

Fix for PR #22

This is a follow-up/fix branch for #22. It keeps the PR synced with current main and fixes issues found while validating every registered MCP tool.

What changed

  • Fixed UE 5.7 build issues in the control-plane/editor command changes from PR Complete Phase 1: Critical Control Plane (protocol v1.2.0) #22.
  • Added protocol/version handling and tool schema introspection fixes for the Python FastMCP server.
  • Added dead-letter recording for exhausted/failed command sends.
  • Added missing C++ handlers and bridge routing for Python tools that were registered but previously unreachable from Unreal:
    • create_widget_blueprint
    • create_blueprint_interface
    • create_blueprint_macro_library
    • create_data_table
    • create_behavior_tree
    • create_blackboard
  • Fixed helper self-import behavior so composition tools reuse the active server module/connection state instead of importing a second server module instance.
  • Kept the standalone plugin and sample-project plugin copies synchronized.

Why

During validation, the Python server registered 92 tools, but six asset-creation tools had no matching C++ command route/handler and would fail in a live editor with Unknown command. Composition helpers could also accidentally create separate module state through import unreal_mcp_server_advanced.

Validation

  • python -m py_compile Python\unreal_mcp_server_advanced.py Python\helpers\error_codes.py
  • Isolated dry-run of all registered tools: 92/92 passed.
  • Python socket command to C++ route coverage: 77/77, missing 0.
  • Plugin copy sync check: 55 files matched between UnrealMCP and FlopperamUnrealMCP/Plugins/UnrealMCP.
  • RunUAT BuildPlugin ... -TargetPlatforms=Win64 -Rocket: BUILD SUCCESSFUL.
  • Build.bat FlopperamUnrealMCPEditor Win64 Development ...: Result: Succeeded.

Note: destructive/lifecycle tools such as editor exit, restart, delete actor, and delete level were validated at wrapper/routing/build layers rather than executed against a live editor project.

Ayush Ojha and others added 5 commits May 24, 2026 12:11
Add 24 new C++ commands and 29 new Python MCP tools covering:
- Editor lifecycle: get_editor_state, get_engine_version, save_all, PIE start/stop, simulate start/stop, pause_game
- Level management: list/open/save/create/duplicate/delete levels, sublevel add/remove/toggle visibility
- Selection & viewport: get/select actors, focus viewport, set camera, capture screenshot, get viewport stats
- Reflection APIs: get/set object properties, call_uobject_function, build_navmesh (merged from standalone)
- Protocol: list_tools_dynamic, get_tool_json_schema, ping, protocol version negotiation bumped to 1.2.0
- Reliability: dead-letter queue infrastructure with get/clear tools

Merge diverged plugin copies (FlopperamUnrealMCP authoritative, synced to UnrealMCP standalone).
Update plan.md and docs/repository-map.md with Phase 1 completion status.
@mikkelchokolate
mikkelchokolate marked this pull request as ready for review May 24, 2026 10:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant