AgentStack
MCP verified MIT Self-run

Funplay Unreal Mcp

mcp-funplayai-funplay-unreal-mcp · by FunplayAI

The Most Advanced MCP Server for Unreal Editor with execute_python, prompts/resources, API discovery, screenshots, and Play-In-Editor automation.

No reviews yet
0 installs
16 views
0.0% view→install

Install

$ agentstack add mcp-funplayai-funplay-unreal-mcp

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.2.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.2.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Funplay Unreal Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Funplay MCP for Unreal The most advanced MCP server for the Unreal Editor.

中文 | English

> 💖 If this saves you time, please star the repo — it helps a lot.


Funplay MCP for Unreal lets AI assistants — Claude Code, Cursor, Windsurf, Codex, VS Code Copilot and any other MCP client — operate directly inside a running Unreal Editor. It is a pure-Python editor plugin (no C++ build, works across Unreal Engine 5.3–5.8) that exposes the editor over a local MCP server, plus a tiny Node.js stdio bridge that connects your AI client to it. MIT-licensed and free for commercial use.

Describe what you want in natural language — spawn and arrange actors, build levels and Blueprints, create materials, import assets, drive Play-In-Editor, capture screenshots, or run arbitrary execute_python — and let the assistant do it.

> "Build a small arena: a floor, four walls, some point lights, and a player > start in the middle. Then play it and send me a screenshot." > > The assistant inspects the level, spawns and positions the actors, sets up > lighting, enters Play-In-Editor, and returns a screenshot — all through this > MCP server.

Demo

Codex asks for a castle, Funplay MCP drives the Unreal Editor through MCP, and the finished scene appears directly in the editor.

Quick Start

Three things: (1) drop the plugin into your project, (2) enable it and start the server, (3) point your AI client at it.

1. Install the plugin

> 💡 The plugin is pure Python — there is nothing to compile.

  • Copy the FunplayMCP/ folder into your project's Plugins/ directory

(/Plugins/FunplayMCP/), or download Funplay.UnrealMcp.vX.Y.Z.zip from the latest Release and extract it there.

  • It depends on the engine's Python Editor Script Plugin, which the

.uplugin enables automatically.

2. Enable and start the MCP Server

  • Open your project. In Edit → Plugins, confirm Funplay MCP for Unreal is

enabled, then restart the editor if prompted.

  • On startup the server listens at http://127.0.0.1:8765/ by default. If the

port is busy it automatically picks a free local port (and a second editor of the same project attaches to the existing server).

  • A per-project auth token is generated and stored in

/Saved/FunplayMCP/funplay_mcp_settings.json.

  • Get the endpoint and token any time from **Tools → Funplay MCP → Log Endpoint
  • Token** (printed to the Output Log).

3. Configure your AI client

The fastest path is the editor menu: Tools → Funplay MCP → Configure Claude Code (or Cursor / VS Code / Codex). It writes the right config with the endpoint and token filled in.

Manual configuration

Claude Code (~/.claude.json), Cursor (~/.cursor/mcp.json):

{
  "mcpServers": {
    "funplay-unreal": {
      "command": "npx",
      "args": ["-y", "funplay-unreal-mcp"],
      "env": {
        "FUNPLAY_UNREAL_MCP_URL": "http://127.0.0.1:8765/",
        "FUNPLAY_UNREAL_MCP_TOKEN": ""
      }
    }
  }
}

VS Code (mcp.json) uses the servers key; Codex (~/.codex/config.toml) uses a [mcp_servers."funplay-unreal"] table. Both are written for you by the one-click menu.

4. Verify the connection

Ask your assistant to:

  • call get_project_info,
  • read the resource unreal://project/context,
  • run execute_python with result = unreal.SystemLibrary.get_engine_version().

Before You Start

  • Editor only. The server runs inside the Unreal Editor; it does not ship in

packaged games.

  • Loopback only. It binds 127.0.0.1 and rejects non-loopback Origins; POST

requests require the per-project auth token.

  • Default core profile. A focused 32-tool set is exposed by default; switch

to full (97 tools) in the settings file when you want everything.

  • execute_python safety checks are on by default (a filesystem/process

denylist); pass safety_checks=false to override per call.

  • All unreal API work is marshalled onto the game thread, so the editor never

crashes from off-thread access.

Why This Project

  • execute_python first. A first-class tool that runs arbitrary Python in

the editor — anything the 96 dedicated tools don't cover, you can still do.

  • API discovery built in. search_api / describe_class / inspect_object

read the embedded unreal module's own docs, so the assistant uses the real API instead of hallucinating it.

  • Pure Python, no build. No C++ module, no compile step, portable across UE

5.3–5.8.

  • Safe by construction. Game-thread marshalling, loopback binding, auth

token, and DNS-rebinding protection out of the box.

  • One-click client config + project skills. Configure Claude Code / Cursor /

VS Code / Codex and generate an AGENTS.md bridge from the editor menu.

  • Same family, same conventions as Funplay MCP for Unity / Godot / Cocos.

Highlights

  • 97 built-in tools (32 in the default core profile) across 20 categories.
  • MCP resources (unreal://...) for project, level, selection, logs, and the

tool catalog, plus prompt templates for common workflows.

  • Structured results — every tool returns JSON the assistant can reason over;

screenshots come back as inline images.

  • Auto port-fallback and same-project instance attach.
  • Zero-dependency Node bridge published to npm as funplay-unreal-mcp.

MCP Capabilities

  • Tools: 97 (32 core / 97 full).
  • Primary execution: execute_python — run any Python snippet in the editor.
  • Prompts: level_review, feature_plan, debug_runtime, blueprint_actor.
  • Resources: unreal://project/context, unreal://project/info,

unreal://level/current, unreal://actors/list, unreal://selection/current, unreal://tools/catalog, unreal://logs/recent, unreal://interaction/history, plus templates unreal://actor/{ref} and unreal://asset/{path}.

Comparison with Funplay MCP for Unity

| | Funplay MCP for Unreal | Funplay MCP for Unity | |---|---|---| | Editor side | Pure-Python plugin (no build) | C# package | | Primary execution | execute_python (embedded unreal) | execute_code (in-memory C#) | | Transport | Local HTTP + stdio bridge | Local HTTP + stdio bridge | | Default exposure | core profile (32 of 97) | core profile | | Engine versions | UE 5.3–5.8 | Unity 2022.3+ | | Client config | One-click (Claude/Cursor/VS Code/Codex) | One-click |

Built-in Tools

97 built-in tools (32 core). Call get_tool_catalog for the live list.

| Category | Tools | |---|---| | Execution | execute_python, run_console_command | | Reflection | search_api, describe_class, list_enum_values, inspect_object | | Actors | spawn_actor, spawn_actor_from_asset, destroy_actor, duplicate_actor, set_actor_transform, set_actor_label, set_actor_property, attach_actor, get_actor_info, list_actors, find_actors, batch_spawn_actors | | Components | add_component, list_components, get_component_properties, set_component_property, set_static_mesh, set_material, set_physics_properties, add_ism_instances | | Assets | list_assets, find_assets, get_asset_info, duplicate_asset, rename_asset, delete_asset, save_asset, import_asset, create_folder, asset_exists, get_asset_references | | Blueprints | create_blueprint, add_blueprint_component, compile_blueprint, get_blueprint_info, spawn_blueprint | | Materials | create_material, create_material_instance, set_material_instance_parameter, get_material_info, add_material_expression, connect_material_expressions, connect_material_property, recompile_material | | Levels | new_level, load_level, save_current_level, save_all_dirty, get_level_info, list_levels | | Play-In-Editor | play_in_editor, stop_play_in_editor, simulate_in_editor, get_play_state | | Viewport | set_viewport_camera, get_viewport_camera, focus_viewport | | Screenshots | take_screenshot | | Selection | get_selection, set_selection, select_none, get_selected_assets | | Editor State | get_editor_state, get_project_info, get_output_log, sync_content_browser, health_status, undo, redo | | Files | read_file, write_file, list_directory, file_exists | | Procedural | build_wall, build_floor, build_stairs, scatter_actors | | Organization | set_actor_folder, create_layer, add_actors_to_layer, list_layers | | Data | create_data_table, get_data_table, set_data_table_rows, export_data_table_csv | | UMG | create_widget_blueprint, add_widget, set_widget_property | | Effects | spawn_niagara_system, set_niagara_parameter | | Discovery | get_tool_catalog |

Repository Layout

FunplayMCP/                         # the Unreal editor plugin (pure Python)
  FunplayMCP.uplugin
  Content/Python/
    init_unreal.py                  # auto-run entry point
    funplay_mcp/                    # server, transport, registry, providers
      tools/                        # one module per tool category
stdio-wrapper/                      # zero-dependency Node.js stdioHTTP bridge
scripts/                           # validate_repo.py, package_release.py
tests/                             # Node + Python tests (run without the editor)
server.json                        # MCP registry manifest

Architecture

AI client (Claude Code / Cursor / ...)
        │  stdio (MCP JSON-RPC)
        ▼
funplay-unreal-mcp  (Node bridge, npx)
        │  HTTP + token  →  127.0.0.1:8765
        ▼
Unreal Editor plugin (Python)
        │  game-thread pump (register_slate_post_tick_callback)
        ▼
unreal API  →  Actors / Assets / Blueprints / Levels / PIE

Contributing

See [CONTRIBUTING.md](./CONTRIBUTING.md). Run python3 scripts/validate_repo.py before opening a PR.

License

MIT — see [LICENSE](./LICENSE).

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.2.0 Imported from the upstream source.