
ChiR24 Unreal Mcp Server
ai.smithery由 smithery.ai 發布官方發布者v0.4.4更新於 Oct 24, 2026
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
發布方自己的服務:222wcnm Bilistalkermcp
概覽
讓 AI 助理操控正在執行的 Unreal Editor,建置關卡、藍圖、材質、UI、特效與玩法系統。
- 可以做什麼
- 只提供一個 unreal 工具,包含 search、describe、execute 與 configure 四種操作,背後有近 400 項能力,路由到 23 個內部工具。助理可以生成與放置 Actor、建立藍圖與 UMG 元件、撰寫材質與 Niagara 特效、建置地形與 PCG 圖表、設定 AI、動畫、音訊與過場動畫,還能以合成輸入執行 Play-In-Editor、擷取視埠截圖、讀取日誌、執行 Python 以及封裝建置。破壞性能力需要每次呼叫提供同意授權。
- 適用情境
- 適合在 Unreal Engine 5.0–5.8 中工作、希望助理自動完成重複性編輯器操作、快速搭建關卡或藍圖原型,或以程式化方式檢查與修改專案的使用者。主要面向支援 C++ 的專案,純藍圖專案也可以使用預先編譯的插件二進位檔。
- 執行需求
- 需要正在執行的 Unreal Editor 並安裝 MCP Automation Bridge 插件。路線 A 使用插件內建的 HTTP 伺服器(127.0.0.1:3000),不需要 Node.js;路線 B 透過 stdio 使用 npm 套件 unreal-engine-mcp-server@beta,需要 Node.js 20.19 或更新版本以及 UE_PROJECT_PATH。兩者都需要專案的 capability token,透過 X-MCP-Capability-Token 標頭傳送或從專案權杖檔案讀取。Docker 以 host 網路執行 stdio 伺服器。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 ChiR24 Unreal Mcp Server,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
交給代理程式安裝
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/ai.smithery%2FChiR24-unreal_mcp_server/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。其他 MCP 客戶端
把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"chir24-unreal": {
"type": "http",
"url": "https://server.smithery.ai/@ChiR24/unreal_mcp_server/mcp"
}
}
}README
[EngineWire: let any AI assistant work inside the Unreal Editor]
EngineWire
[License: MIT] [npm] [Get it on Fab] [MCP SDK] [Unreal Engine 5.0-5.8] [MCP Registry] [Documentation: wiki] [Project Board] [Discussions]
EngineWire connects Claude, Cursor, VS Code or any other MCP client to a running Unreal Editor,
and let it build levels, Blueprints, UI, materials, effects and more, through a native C++ editor plugin.
🧭 One tool, over 400 capabilities · ⚙️ Native C++ editor plugin · 🌐 HTTP or stdio · 🔐 Local and token-protected by default · 🎮 Unreal Engine 5.0 – 5.8
🌐 enginewire.dev · 🛒 Fab · 🚀 Quick Start · 📖 Wiki · 📦 Releases · 💬 Discussions
📌 Which version is this? This README describes 0.6.0, the stable release: the plugin on Fab and on the Releases page, and npm
unreal-engine-mcp-server(latest). The previous release, 0.5.30, exposes 23 separate tools instead of one; staying on a 0.5.30 plugin means pinning[email protected]. See Upgrading from 0.5.x.
Contents · What it does · How it works · Quick start · The unreal tool · Configuration · Security · Engine plugins · Docker · Documentation · Development · Community
What it does
Over 450 capabilities in all, behind a single MCP tool. The assistant finds them by searching in plain words, so nobody has to learn their names. The full list is the generated Action Reference.
[Unreal Editor 5.8 showing a platformer level built with the MCP; the status bar reads MCP :3000 (1)]
A platformer level built with the MCP, in Unreal Editor 5.8. Bottom right: the plugin's status, MCP :3000 (1), meaning the native server is running on port 3000 with one client connected.
How it works
The EngineWire plugin runs inside the editor and does all the work, on the editor's game thread, and serves MCP itself. Clients reach it in one of two ways, and both get the same single tool, unreal:
Everything listens on 127.0.0.1 and requires the project's capability token unless you change it.
Quick start
The Quick Start page walks through this with screenshots. You need Unreal Engine 5.0 to 5.8. Installing from Fab needs nothing else; building the plugin from source needs a project with C++ code (a Blueprint-only project can install from Fab or use prebuilt binaries).
1. Add the plugin
From Fab (no compiler needed). Get EngineWire on Fab. In the Epic Games Launcher, open Unreal Engine › Library › Fab Library, find EngineWire and click Install to Engine for your engine version. Open your project, enable EngineWire in Edit › Plugins and restart the editor. The Fab build ships with the native server off: turn on Enable Native MCP Server in Edit › Project Settings › Plugins › EngineWire › Native MCP and restart once more. Fab updates follow Epic's review, so the Fab build can trail the newest release here.
From a release. Download EngineWire-plugin-<version>.zip from the newest release on the Releases page, and copy the EngineWire folder it contains into your project:
Or use a clone of this repository: copy plugins/EngineWire/, or reference the folder from your .uproject with "AdditionalPluginDirectories": ["C:/Path/To/Unreal_mcp/plugins"].
Open the project and let Unreal rebuild the plugin. When it's loaded, the status bar shows MCP :3000 (0): the plugin serves MCP on port 3000. If you see "Engine modules cannot be compiled at runtime", build the project once in Visual Studio, Rider or Xcode. More in Installation.
https://github.com/user-attachments/assets/d8b86ebc-4364-48c9-9781-de854bf3ef7d
Prebuilt binaries (Blueprint-only projects, teams)
Build the plugin once on a machine with the engine and a compiler, then hand out the zip. No compiler is needed on the target machine:
This writes build/EngineWire-v<version>-UE5.7-<Platform>.zip, where <version> is the package.json version (currently 0.6.0). Unzip it into YourProject/Plugins/. Binaries only work with the engine minor and platform they were built for: a 5.6 build won't load in 5.5, 5.7 or 5.8.
2. Connect your client
Route A · Native HTTP (no Node.js)
-
Enable Native MCP Server is on by default (Edit › Project Settings › Plugins › EngineWire, port
[The Native MCP section of the plugin settings, with Enable Native MCP Server ticked]3000); the Fab build ships with it off. A project where it is off needs it on and an editor restart. -
Read the capability token the plugin generated:
<YourProject>/Saved/MCP/capability-token. Treat it like a password. -
Add the server to your client and send the token in the
X-MCP-Capability-Tokenheader. Claude Code:Or in a project
.mcp.json(Claude Code), reading the token from an environment variable:Cursor (
.cursor/mcp.json) takes the sameurlandheaderswithouttype. VS Code, Windsurf and others: Connecting Clients. -
Check it: when the client connects, the count in the status bar goes up.
[Unreal Editor status bar showing MCP :3000 (1): the native MCP server on port 3000 with one client connected]
Route B · stdio (Node.js 20.19+)
The package is a small stdio proxy in front of the same /mcp. A client connected straight to /mcp loses its session whenever the editor closes or crashes, and has to reconnect by hand. Through the proxy, every call answers NOT_CONNECTED while the editor is down, and the first call after it is back reaches it, with no reconnect. It keeps the editor's last tool list, so a session that starts before the editor still gets the real tool.
Add this to your client's MCP configuration, for example Claude Desktop's claude_desktop_config.json:
Or let the package write it: npx unreal-engine-mcp-server init claude --project C:/Path/To/YourProject shows the entry for Claude Code's .mcp.json (also cursor, vscode, gemini and codex), keeping the file's other servers, and --write saves it. npx unreal-engine-mcp-server doctor checks Node, the token (never shown), the editor's answer and that both sides run the same version.
UE_PROJECT_PATH (the project folder or its .uproject) is how the proxy finds the capability token (MCP_AUTOMATION_CAPABILITY_TOKEN overrides it). UNREAL_MCP_URL points it at another endpoint (default http://127.0.0.1:3000/mcp). Pair it with a 0.6 plugin; a 0.5.x plugin serves its 23 separate tools instead of the unreal gateway.
3. Try it
With the editor open, ask your assistant to "list the actors in the current level", "spawn a point light 300 units above the origin", or "take a screenshot of the viewport". If it doesn't connect, see Troubleshooting.
The unreal tool
Both routes expose exactly one MCP tool, unreal, with four operations. Only the contract the model is about to use gets loaded, instead of hundreds of tool schemas:
A typical exchange:
- Parameters are strict. An undeclared name is refused with
UNDECLARED_PARAMETERand the list of allowed names; every error carries an executablenextCall. - Deletes need consent. Every destructive capability, plus some risky writes, only runs with the
consentGrantfromdescribe, passed back as a top-levelconsentfield. - Names. A call names the
tool+actionpair or a capability id, such as"capability": "control_actor.spawn".
Full reference with real replies: Using the Gateway.
Migrating from direct tool calls
The single unreal tool is permanent on both routes; there is no opt-out and no 23-tool listing to restore. A client that still calls a canonical tool name directly (tools/call with name: "manage_asset", name: "control_actor", …) receives a bounded, copy-paste-executable DIRECT_TOOL_CALL_REMOVED receipt instead of a routed call. Its nextCall drills exactly one level: { "operation": "search" } for an unknown name, { "operation": "describe", "tool": "<tool>" } when no action was given, or { "operation": "execute", "tool": "<tool>", "action": "<action>", "params": { ... } } when the call already named an action. Run that nextCall through unreal to finish the migration. See Upgrading.
Protocol versions
Both routes negotiate the MCP protocol version at initialize: 2025-11-25 (latest), 2025-06-18 or 2025-03-26. A client asking for an older version is answered with 2025-11-25. An unsupported MCP-Protocol-Version header on the native route gets HTTP 400. Both also serve MCP 2026-07-28 per request, with no initialize or session, and answer server/discover with it. Details: docs/protocol.md.
The 23 internal tools behind unreal
These route requests inside the gateway; clients never list them. More in the Tools Reference.
Configuration
Most setups touch one setting: UE_PROJECT_PATH for Route B; Route A needs none. Everything is listed on the Configuration page.
Plugin settings (Project Settings › Plugins › EngineWire, saved in Config/DefaultGame.ini):
Environment variables (Route B only, in the client's env block):
Security
- Local by default. Both routes listen on
127.0.0.1only. The native server never binds off-loopback: it has no TLS, so reach it from another machine through an SSH tunnel (ssh -L 3000:127.0.0.1:3000) or a TLS proxy. The WebSocket bridge binds a LAN address only with Allow Non Loopback, Require Capability Token and Enable Tls all on. The proxy sends the token to another machine only withUNREAL_MCP_ALLOW_REMOTE_TOKEN=1. - Capability token. Generated per project at
<Project>/Saved/MCP/capability-token(a value typed into Capability Token overrides it) and compared in constant time. Delete the file and restart the editor to rotate it. - Consent for destructive work. Deletes and some other writes need a per-call consent grant, which the plugin checks itself.
- Guard rails. Asset paths are limited to
/Game,/Engine,/Script,/Tempand/Niagara, and a content path may also sit under a mount the connected editor reports; arguments the server treats as files (such asfilePath, andoutputPatheven where it names an asset) never use the reported mounts; console commands that chain or quit the editor are blocked; the plugin's own settings are out of reach of automation.
Details: Security. Please report vulnerabilities privately through GitHub security advisories.
Engine plugins
The bridge declares its engine-plugin dependencies, so Unreal enables them together with it.
Required (always enabled with the bridge)
Optional (used when present, skipped when not)
The plugin targets every Unreal Engine minor from 5.0 to 5.8. If it fails to build on yours, please open an issue with the build log.
Docker
The image runs the stdio proxy. It has to reach the editor's /mcp on 127.0.0.1:3000, so use host networking (Linux), and pass the token because the container can't read your project folder:
Use -i without -t: a TTY corrupts the MCP stream on stdout.
Documentation
Development
The capability records in src/tools/catalog/capabilities/records/ are the single source of truth; every *.generated.* file, the plugin's MCP/Generated/ shards and the action reference are generated from them. Never hand-edit generated files. How to add a capability: Development.
CI runs, in order: ESLint (npx eslint . --max-warnings=0), type-check, unit tests, registry:check, manifest:check, headers:check, the strict parameter audit (test:params) and eval:check, then a blocking runtime dependency audit (npm audit --omit=dev --audit-level=moderate) and an informational full-tree audit. A Node 20.19 / 26 matrix adds build. Plugin packaging runs only when an Unreal Engine root is configured, because CI runners don't ship an engine. Release archives exclude Binaries/, Intermediate/ and Saved/.
Community
Contributing: keep pull requests small and focused, with a Conventional Commits title; include reproduction steps for bugs; follow the existing code style. See CONTRIBUTING.md.
License
MIT. See LICENSE.
來源:README.md,提交 1f64129
工具
0版本歷史
1- v0.4.4最新Sep 16, 2026
評分
已滿足適用檢查項的 85%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通必需25 分
- 已宣告認證方式必需10 分
- 已列出工具必需15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
其他 Smithery 整合

222wcnm Bilistalkermcp
ai.smithery官方發布者
Bilibili 創作者分析伺服器,讓助理查詢指定使用者的個人資料、影片、動態、專欄、字幕、追蹤清單與留言。

Zwldarren Akshare One Mcp
ai.smithery官方發布者
遠端 MCP 伺服器,讓助理以唯讀方式取得中國股市資料:歷史與即時行情、新聞和財務報表。

Zhaoganghao Hellomcp
ai.smithery官方發布者
一個小型遠端 MCP 伺服器,讓助理依名字向人問候,並介紹「Hello, World」的由來。

Zeta Chain Cli
ai.smithery官方發布者
一個遠端 MCP 伺服器,讓助理為任意姓名或受眾產生友善、可自訂的問候語。

Yuna0x0 Hackmd Mcp
ai.smithery官方發布者
一個連接 HackMD API 的 MCP 伺服器,讓助理讀取、建立、更新和刪除 HackMD 筆記並管理團隊。