Funplay Unreal MCP

io.github.FunplayAI由 GitHub 账号 FunplayAI 发布v0.2.0更新于 Oct 24, 2026

stdio bridge for the local Unreal Editor MCP server from FunplayAI/funplay-unreal-mcp.

已验证STDIO仅桌面开发者工具媒体与设计

概览

AI 生成的概览

Node.js stdio 桥接服务,让 AI 助手通过 Funplay MCP 插件操作正在运行的 Unreal 编辑器:Actor、关卡、蓝图、材质、资产与 Python 执行。

可以做什么
  • 在编辑器中执行任意 Python 代码和控制台命令,并搜索 API、查看类信息
  • 生成、变换、挂接和删除 Actor,添加组件,构建墙体、地板和楼梯
  • 创建与编辑蓝图、材质和材质实例,导入、重命名、保存或删除资产
  • 管理关卡、Play-In-Editor 会话、视口相机、选择、截图以及撤销/重做
  • 读写文件,构建数据表,创建 UMG 控件,生成 Niagara 特效,并读取项目、关卡和日志资源
适用场景
适用于使用 Unreal Engine 5.3–5.8 的场景:希望助手在运行中的编辑器里搭建或修改关卡、蓝图、材质和资产,或用 Python 脚本代替手动点击完成编辑器操作。
运行要求
本机需安装 Unreal 编辑器并装好 FunplayMCP 插件、启动其服务器,同时需要 Node.js 运行 npx 桥接。插件会生成按项目区分的令牌,须通过 FUNPLAY_UNREAL_MCP_TOKEN 提供;端点默认指向本地回环地址,可用 FUNPLAY_UNREAL_MCP_URL 覆盖。仅支持桌面端。
安装前请注意
令牌属于凭据,保存在项目设置文件中,不要放进共享配置。execute_python 会在编辑器中运行任意 Python,且可在单次调用中关闭安全检查,因此能读写文件、启动进程。许多工具会写入、重命名、删除或保存资产、关卡和蓝图,Play-In-Editor 也会改变编辑器状态。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Funplay Unreal MCP,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Funplay MCP for Unreal

The most advanced MCP server for the Unreal Editor.

[Unreal Engine 5.3-5.8] [MIT] [MCP compatible] [Editor only]

中文 | 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 uses Funplay MCP to build a castle in Unreal Editor]

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 (<YourProject>/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 <YourProject>/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):

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": "<token from the Funplay MCP menu>"      }    }  }}

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 UnrealFunplay MCP for Unity
Editor sidePure-Python plugin (no build)C# package
Primary executionexecute_python (embedded unreal)execute_code (in-memory C#)
TransportLocal HTTP + stdio bridgeLocal HTTP + stdio bridge
Default exposurecore profile (32 of 97)core profile
Engine versionsUE 5.3–5.8Unity 2022.3+
Client configOne-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.

CategoryTools
Executionexecute_python, run_console_command
Reflectionsearch_api, describe_class, list_enum_values, inspect_object
Actorsspawn_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
Componentsadd_component, list_components, get_component_properties, set_component_property, set_static_mesh, set_material, set_physics_properties, add_ism_instances
Assetslist_assets, find_assets, get_asset_info, duplicate_asset, rename_asset, delete_asset, save_asset, import_asset, create_folder, asset_exists, get_asset_references
Blueprintscreate_blueprint, add_blueprint_component, compile_blueprint, get_blueprint_info, spawn_blueprint
Materialscreate_material, create_material_instance, set_material_instance_parameter, get_material_info, add_material_expression, connect_material_expressions, connect_material_property, recompile_material
Levelsnew_level, load_level, save_current_level, save_all_dirty, get_level_info, list_levels
Play-In-Editorplay_in_editor, stop_play_in_editor, simulate_in_editor, get_play_state
Viewportset_viewport_camera, get_viewport_camera, focus_viewport
Screenshotstake_screenshot
Selectionget_selection, set_selection, select_none, get_selected_assets
Editor Stateget_editor_state, get_project_info, get_output_log, sync_content_browser, health_status, undo, redo
Filesread_file, write_file, list_directory, file_exists
Proceduralbuild_wall, build_floor, build_stairs, scatter_actors
Organizationset_actor_folder, create_layer, add_actors_to_layer, list_layers
Datacreate_data_table, get_data_table, set_data_table_rows, export_data_table_csv
UMGcreate_widget_blueprint, add_widget, set_widget_property
Effectsspawn_niagara_system, set_niagara_parameter
Discoveryget_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 categorystdio-wrapper/                      # zero-dependency Node.js stdio<->HTTP bridgescripts/                           # validate_repo.py, package_release.pytests/                             # 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. Run python3 scripts/validate_repo.py before opening a PR.

License

MIT — see LICENSE.

来源:README.md,提交 688c21f

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分