unreal-engine-skills-for-claude-code-plugin README

The project's README from github.com/EpicGames/unreal-engine-skills-for-claude-code-plugin. As one markdown file: README.md.

Unreal Engine Skills for Claude Code

Control Unreal Editor directly from Claude Code via MCP. Hundreds of tools exposed via Unreal's ToolsetRegistry across 30+ toolsets: actors, blueprints, materials, Niagara, Control Rigs, Sequencer, State Trees, widgets, Gameplay Ability System, automation testing, and more.

Contents

Skills

Hooks

Prerequisites

  1. Unreal Editor with the ModelContextProtocol and AllToolsets plugins enabled (AllToolsets provides the tools; the server exposes none without it)
  2. Editor running to execute tools, with the MCP server started. Run ModelContextProtocol.StartServer, or enable bAutoStartServer through skills/unreal-mcp/references/setup.md. The optional proxy can keep the client connection open while the editor is stopped.
  3. A bash shell on PATH - required for the SessionStart hook (see Platform Support)

Platform Support

Supported: macOS, Linux, and Windows via Git Bash or WSL.

The SessionStart hook is a bash script (hooks/unreal-context.sh) invoked by hooks/hooks.json as bash ${CLAUDE_PLUGIN_ROOT}/hooks/unreal-context.sh. It requires a working bash on PATH:

Installation

This plugin is published in Anthropic's official Claude Code plugin marketplace, claude-plugins-official, which is available automatically when you start Claude Code. Browse it at claude.com/plugins or in the Discover tab of the /plugin panel.

Install for a single developer

In Claude Code:

/plugin install unreal-engine-skills-for-claude-code@claude-plugins-official

If the official marketplace is not present, add it first, then run the install command above:

/plugin marketplace add anthropics/claude-plugins-official

Install for a team

Commit this to .claude/settings.json in the project that should use the plugin. Anyone who trusts the project folder is prompted to install it automatically:

{
  "enabledPlugins": {
    "unreal-engine-skills-for-claude-code@claude-plugins-official": true
  }
}

Verification

  1. Launch Unreal Editor, then run ModelContextProtocol.StartServer in the console to start the MCP server.
  2. Check the Output Log for MCP server startup messages.
  3. In Claude Code, run /plugin. The Installed tab should list unreal-engine-skills-for-claude-code as enabled. This confirms the plugin itself (skills, hooks) is loaded.
  4. Run /mcp. Check for unreal-mcp, or unreal-mcp-proxy if you installed the proxy. A connected proxy does not prove that Unreal is reachable.
  5. Try: "List all actors in the current level".

Configuration

The default port is 8000 with URL path /mcp. If the port is in use, run ModelContextProtocol.StartServer <port> in the console with a different port number.

Note: This plugin does not ship a static .mcp.json file. Run ModelContextProtocol.GenerateClientConfig ClaudeCode in the editor console to generate it from the current server port and URL; re-run after changing either.

Optional proxy for editor recovery

If your engine build includes Engine/Plugins/Experimental/ModelContextProtocol/Extras/Proxy, you can use its unreal_mcp_proxy executable.

The proxy keeps the client-facing MCP session open while Unreal is unavailable and reconnects when Unreal starts again. It stores Unreal's native tool catalog as a temporary fallback. Cached tools do not prove that live calls can succeed. Without a cache, it exposes only unreal_mcp_status until the client fetches the recovered catalog.

See proxy setup for platform binaries and installation commands. See proxy recovery for status, cached catalogs, and connection failures.

Tool search is enabled by default: the MCP server exposes three meta-tools (list_toolsets, describe_toolset, call_tool) instead of the full tool catalog, so Claude discovers toolsets on demand, the prompt cache stays warm, and discovered tools are callable on the same turn through call_tool. Toggle with the bEnableToolSearch setting in [/Script/ModelContextProtocolEngine.ModelContextProtocolSettings]; when disabled, every tool is registered upfront (path used by the hash-mapping commandlet). The model-facing usage contract lives in skills/unreal-mcp/SKILL.md.

Security

Installing this plugin gives Claude broad, live access to the running Unreal Editor. Treat that access the same way you would treat running arbitrary code from an assistant, because in practice it is.

Localhost is not a trust boundary. The MCP server binds to localhost:8000 with origin validation. Origin validation protects against a browser tab talking to the server, but any process running as the same user on the same machine can connect. Do not run the MCP server on shared or untrusted machines, and do not expose the port outside the loopback interface.

ProgrammaticToolset.execute_tool_script executes arbitrary Python inside the editor process. That script has full access to every toolset API, the project on disk, the asset database, and editor-privileged functions. Treat every invocation as a privileged operation that can mutate, move, or delete project content, and expect it to succeed without a second confirmation when approvals are disabled.

--dangerously-skip-permissions removes the per-tool approval gate. In that mode Claude can drive the editor and run Python through execute_tool_script with no further consent. A bad prompt in that mode can reach into the project and modify a large amount of state before you notice. Prefer not to run Claude Code with --dangerously-skip-permissions while this plugin is loaded; if you do, keep the blast radius small (narrow prompts, read-heavy tasks, a throwaway sandbox project).

Source-control hygiene. MCP tools edit live UObject state and can mutate, move, or delete VCS-tracked assets in a single call. Save and commit (or shelve) before any long MCP-driven session so the working copy is recoverable if Claude produces an unexpected result. Review the diff before submitting.

What's Available

All tools are auto-discovered by Claude Code via MCP. No manual configuration needed. Tools cover the full editor surface across these domains:

unreal-engine-skills-for-claude-code-plugin (EpicGames/unreal-engine-skills-for-claude-code-plugin)

Searching Database…

这是什么?这是一个 Claude Code 插件,让 Claude 通过 Model Context Protocol(MCP)直接控制 Unreal Engine 编辑器,在 30 多个工具集中开放数百个编辑器工具,涵盖 actor、蓝图、材质、Niagara VFX、Sequencer 和 Gameplay Ability System 等。
这是独立应用,还是 Claude Code 的插件?它是一个 Claude Code 插件,包含一个“unreal-mcp”技能和一个 SessionStart 钩子;实际的编辑器控制通过 Unreal 自带的 ModelContextProtocol 和 AllToolsets 编辑器插件完成,这个 Claude Code 插件与它们连接。
怎么安装并开始使用它?从 Anthropic 官方的 claude-plugins-official 市场安装(个人开发者通过 /plugin 面板,团队则把它提交到 .claude/settings.json),然后在 Unreal Editor 中启用 ModelContextProtocol 和 AllToolsets 插件,并运行 ModelContextProtocol.StartServer。
在它生效之前,Unreal 里需要先运行什么?你需要打开 Unreal Editor 并启用 ModelContextProtocol 和 AllToolsets 插件,通过 ModelContextProtocol.StartServer 启动 MCP 服务器,并且 PATH 中要有 bash shell(Windows 上为 Git Bash 或 WSL),SessionStart 钩子才能运行。
让 Claude 这样操控编辑器安全吗?不谨慎就不安全:MCP 服务器只绑定 localhost,但任何本地进程仍可连接,而且 ProgrammaticToolset.executetoolscript 会在编辑器内以完整的项目访问权限运行任意 Python,因此一个糟糕的提示词(尤其是在 --dangerously-skip-permissions 下)可能在你察觉之前就修改或删除资产。
SessionStart 钩子在 Windows 上也能用吗?可以用,但只有原生 PowerShell 不够——基于 bash 的钩子在 Windows 上需要 Git for Windows(Git Bash)或 WSL;macOS 和 Linux 则开箱即用。
这些开放的工具在编辑器里实际能做什么?它们覆盖编辑器的全部功能面:生成/编辑 actor、蓝图图表、材质、网格/纹理、Control Rig 和 State Tree 动画、Sequencer、Niagara VFX、UMG 控件、gameplay 标签和 GAS、自动化测试,以及批量 Python 脚本。
可选的代理是做什么用的?它保持面向客户端的 MCP 会话不断开,并缓存 Unreal 的工具目录,这样即使编辑器临时停止或重启,Claude Code 的连接也能维持。
插件会一次性开放每一个工具吗?不会,默认开启“tool search”:只开放三个元工具(listtoolsets、describetoolset、calltool),Claude 按需发现具体的工具集,从而让提示词缓存保持有效;可以通过 bEnableToolSearch 设置禁用。
SessionStart 钩子实际上改变了什么?它在会话开始时注入一段简短说明,告诉 Claude 这个仓库是 Unreal Engine 项目,因此它默认遵循 UE 惯例(C++/UObject、Slate、UHT),并优先使用 unreal-mcp 技能。
Creator
EpicGames
Size
0.1 MB
Stars
970
Updated
CommitSep 17
Age
4mo
Commits · 90 Days