mcpField
U
unreal-engine-mcp

unreal-engine-mcp

本地服务
enginewire.dev媒体与设计993今天更新

关于 unreal-engine-mcp

EngineWire 将 MCP 客户端连接到运行中的 Unreal Editor,面向使用 Unreal Engine 5.0–5.8 的创作者和团队。单一可搜索的 `unreal` 工具通过 HTTP 或 stdio 提供 450 多项编辑器能力。

主要功能

  1. 01创建和编辑关卡、Actor、Blueprint 与 UI
  2. 02处理材质、世界、玩法和特效
  3. 03运行 Play-In-Editor、截取画面并查看日志
  4. 04通过单一 `unreal` 工具搜索和执行能力
  5. 05通过原生 HTTP 或 stdio 代理连接

适用场景

  1. 01通过 AI 客户端构建或修改关卡
  2. 02创建 Blueprint 事件图和 UMG 布局
  3. 03测试玩法并检查编辑器输出
  4. 04生成材质、景观或 Niagara 特效

MCP 相关

EngineWire 插件在 Unreal Editor 内提供 MCP 服务。客户端可通过原生 HTTP 或 `unreal-engine-mcp-server` stdio 代理使用单一 `unreal` 工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"chir24-unreal-engine": {
"command": "npx",
"args": [
"-y",
"unreal-engine-mcp-server"
],
"env": {
"UE_PROJECT_PATH": "<UE_PROJECT_PATH>",
"MCP_AUTOMATION_CAPABILITY_TOKEN": "<MCP_AUTOMATION_CAPABILITY_TOKEN>",
"UNREAL_MCP_URL": "<UNREAL_MCP_URL>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
启动命令npx -y unreal-engine-mcp-server
需要配置的环境变量
UE_PROJECT_PATHYour Unreal project folder or its .uproject file. The server reads the capability token from <project>/Saved/MCP/capability-token.
MCP_AUTOMATION_CAPABILITY_TOKEN密钥Capability token to present to the editor. Only needed when the server cannot read the project folder.
UNREAL_MCP_URLThe editor's native MCP endpoint (Project Settings > EngineWire > Native MCP Port).
LOG_LEVELLog level. Logs go to stderr.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmunreal-engine-mcp-server0.6.0

工具

1

收录的工具列表 · 更新于 1 天前

参数类型必填说明
toolstring否从搜索结果行(parentTool)或 describe 响应中复制的准确父工具名称。必须与 action 配对;切勿猜测。
limitinteger否每页的最大行数:搜索结果(默认 12)或 describe 操作行(默认 20)。默认为 12。
paramstring否要检查的某项能力的准确参数名称。与 describe、tool 和 action 一起使用;返回该参数的 schema,以及该能力需要时的 consent grant。
querystring否描述动词和对象的 2–4 个普通词语,例如 'spawn actor'、'add variable blueprint'、'save level'。与操作名称、主题、类别、领域和摘要匹配;完整句子和填充词的排名较低。
actionstring否从搜索结果行或 describe 响应中复制的准确操作名称。对于 configure,这是一个 manage_tools 操作。
cursorstring否来自先前响应 nextCursor 的不透明搜索游标。优先于 offset。
domainstring否要浏览或筛选的能力领域。不带 selector 调用 describe 可列出领域。
effectenum否按声明的行为效果筛选搜索结果。read | write | destructive
familystring否领域内的能力类别。使用 domain 调用 describe 可列出其类别。
offsetinteger否搜索结果或所描述工具的操作列表中的从零开始的偏移量。默认为 0。
paramsobject否用于 execute 或 configure 的参数:一个对象,其键必须与 describe 为此操作列出的参数名称完全一致(包括大小写)。切勿在此处包含 action 或 subAction。
consentobject否对于 policy.consent 不为 'none' 的能力,按调用授予同意。此授权仅适用于一个能力和一次调用;不会持久保存、继承或复用。请从 describe.consentGrant 读取确切的授权。仅与 execute 配合使用。
consent.capabilitystring是此授权所允许的准确规范 capability ID,由 describe 返回。
consent.acknowledgeenum是确认强度。“explicit”满足显式策略;破坏性策略要求“elevated”,且它也满足显式策略。explicit | elevated
optionsobject否仅用于 execute 的执行控制;切勿将这些内容放入 params。受支持的键:idempotencyKey、expectedCatalogRevision、expectedRevisions、timeoutMs。
options.timeoutMsinteger否此调用的截止时间,单位为毫秒。
options.idempotencyKeystring否由客户端选择的键。使用相同键和 params 重复执行时,将返回已记录的回执,而不会再次运行操作。
options.expectedRevisionsobject否要固定的实时编辑器状态修订版本,取自 ue://state/revisions 资源报告的值;如果其中任一版本已变更,则调用会以 STALE_STATE 拒绝。
options.expectedRevisions.levelinteger否
options.expectedRevisions.packageinteger否
options.expectedRevisions.selectioninteger否
options.expectedRevisions.assetRegistryinteger否
options.expectedCatalogRevisionstring否仅当目录修订版本仍等于此值时才运行;从任意搜索或描述响应中读取该值。
maxBytesinteger否搜索响应序列化后的字节上限。超出时会从末尾开始丢弃结果,直到响应符合限制。
operationenum是search 按普通词语查找功能。describe 返回某项功能的精确契约;未提供选择器时,则浏览一个层级。execute 运行一项经过验证的操作。configure 启用或禁用内部工具组。search | describe | execute | configure
capabilitystring否从搜索结果行或 describe 响应中复制的精确规范能力 ID(或已声明的别名),例如 blueprint.create。describe 和 execute 的首选选择器;切勿猜测。

详细介绍

EngineWire:让任意 AI 助手都能在 Unreal Editor 中工作

EngineWire

许可证:MIT npm 在 Fab 上获取 MCP SDK Unreal Engine 5.0-5.8 MCP Registry 文档:Wiki 项目看板 讨论区

EngineWire 可将 Claude、Cursor、VS Code 或任何其他 MCP 客户端连接到正在运行的 Unreal Editor,
并通过原生 C++ 编辑器插件让它构建关卡、Blueprint、UI、材质、特效等内容。

🧭 一个工具,超过 400 项功能  ·  ⚙️ 原生 C++ 编辑器插件  ·  🌐 HTTP 或 stdio  ·  🔐 默认仅限本地且受令牌保护  ·  🎮 Unreal Engine 5.0 – 5.8

🌐 enginewire.dev  ·  🛒 Fab  ·  🚀 快速开始  ·  📖 Wiki  ·  📦 发布版本  ·  💬 讨论区

📌 这是哪个版本? 本 README 介绍的是稳定版 0.6.0:可在 Fab 和发布页面获取的插件,以及 npm 上的 unreal-engine-mcp-server(latest)。上一版本 0.5.30 提供 23 个独立工具,而不是一个工具;若继续使用 0.5.30 插件,就需要固定使用 [email protected]。请参阅从 0.5.x 升级。

目录 · 功能介绍 · 工作原理 · 快速开始 · unreal 工具 · 配置 · 安全性 · 引擎插件 · Docker · 文档 · 开发 · 社区


功能

🏗️ 关卡和 Actor
一次调用即可生成一个或数百个 Actor,将它们放置并附加到其他对象上,查找沉入地面的对象,以及加载、流式传输和保存关卡。

🧩 蓝图和 UI
创建蓝图、变量和组件,一次批量构建完整的事件图表,并布局 UMG 控件,还可通过预览图像进行检查。

🎨 材质和世界
材质图表和实例、程序化纹理、光照、地形、植被、Niagara 效果和 PCG 图表。

🕹️ 游戏玩法
角色和动画、Gameplay Ability System、AI(Behavior Trees、State Trees、EQS)、库存、网络和 Enhanced Input。

🎬 电影和音频
Level Sequences、摄像机、Movie Render Queue 和 Take Recorder;Sound Cues 和 MetaSounds。

🧪 运行并验证
使用合成输入运行 Play-In-Editor,截取模型可查看的屏幕截图,读取日志、进行性能分析、运行 Python,并打包构建版本。

总计超过 450 项功能,由单个 MCP 工具提供。助手通过搜索普通词语来查找这些功能,因此无需记住它们的名称。完整列表请见生成的操作参考。

Unreal Editor 5.8 展示使用 MCP 构建的平台游戏关卡;状态栏显示 MCP :3000 (1)
使用 MCP 构建的平台游戏关卡,展示于 Unreal Editor 5.8 中。右下角是插件状态:MCP :3000 (1),表示原生服务正在端口 3000 上运行,且有一个客户端已连接。

工作原理

架构:AI 客户端通过端口 3000 上的 Streamable HTTP 连接到 Unreal Editor 内的 EngineWire 插件,可直接连接(Route A),也可通过 Node.js stdio 代理连接(Route B);插件在游戏线程上调用编辑器 API

EngineWire 插件在编辑器内运行,在编辑器的游戏线程上完成所有工作,并自行提供 MCP 服务。客户端可通过以下两种方式之一连接;两种方式都使用同一个工具 unreal:

🌐 Route A · 原生 HTTP🧩 Route B · stdio
路径客户端 → 插件的 Streamable HTTP 服务 http://127.0.0.1:3000/mcp客户端 → unreal-engine-mcp-server(Node.js,stdio)→ 同一个 /mcp
Node.js不需要20.19 或更高版本
能力令牌客户端在 X-MCP-Capability-Token 标头中发送从项目读取,需提供 UE_PROJECT_PATH
编辑器重启客户端需要手动重新连接会话保持不变:编辑器恢复运行前,调用会返回 NOT_CONNECTED
适用场景Claude Code、Cursor、VS Code,以及多个客户端共享一个编辑器Claude Desktop、仅能启动本地命令的客户端,以及跨编辑器重启的长会话

所有服务都监听 127.0.0.1,并且需要项目的能力令牌,除非你更改该令牌。

快速开始

快速入门页面配有截图,介绍了整个流程。你需要 Unreal Engine 5.0 到 5.8。从 Fab 安装无需其他条件;从源代码构建插件则需要包含 C++ 代码的项目(仅蓝图项目可从 Fab 安装,或使用预编译二进制文件)。

1. 添加插件

从 Fab 安装(无需编译器)。 在 Fab 上获取 EngineWire。在 Epic Games Launcher 中,打开 Unreal Engine › Library › Fab Library,找到 EngineWire,然后为你的引擎版本点击 Install to Engine。打开项目,在 Edit › Plugins 中启用 EngineWire,然后重启编辑器。Fab 版本默认关闭原生服务:在 Edit › Project Settings › Plugins › EngineWire › Native MCP 中开启 Enable Native MCP Server,然后再次重启。Fab 更新需要经过 Epic 审核,因此 Fab 版本可能晚于此处的最新版本。

从发行版安装。 从发行版页面下载最新发行版中的 EngineWire-plugin-<version>.zip,并将其中的 EngineWire 文件夹复制到你的项目中:

MyGame/Plugins/EngineWire/

或者克隆此仓库:复制 plugins/EngineWire/,或在 .uproject 中通过 "AdditionalPluginDirectories": ["C:/Path/To/Unreal_mcp/plugins"] 引用该文件夹。

打开项目,让 Unreal 重新构建插件。插件加载后,状态栏会显示 MCP :3000 (0):插件在端口 3000 上提供 MCP 服务。如果看到 “Engine modules cannot be compiled at runtime”,请先在 Visual Studio、Rider 或 Xcode 中构建一次项目。更多信息请参阅安装指南。

https://github.com/user-attachments/assets/d8b86ebc-4364-48c9-9781-de854bf3ef7d

预构建二进制文件(仅 Blueprint 项目、团队)

在装有引擎和编译器的机器上构建一次插件,然后分发 zip 文件。目标机器无需安装编译器:

node scripts/package-plugin.mjs "C:/Program Files/Epic Games/UE_5.7"

这会生成 build/EngineWire-v<version>-UE5.7-<Platform>.zip,其中 <version> 是 package.json 中的版本(当前为 0.6.0)。将其解压到 YourProject/Plugins/。二进制文件仅适用于构建时对应的引擎次版本和平台:为 5.6 构建的版本无法在 5.5、5.7 或 5.8 中加载。

### 2. 连接客户端

路线 A · 原生 HTTP(无需 Node.js)

  1. Enable Native MCP Server 默认已开启(Edit › Project Settings › Plugins › EngineWire,端口为 3000);Fab 构建版本默认关闭。如果项目中该选项处于关闭状态,则需要将其开启并重启编辑器。

    插件设置中的 Native MCP 部分,已勾选 Enable Native MCP Server
  2. 读取插件生成的能力令牌:<YourProject>/Saved/MCP/capability-token。请像对待密码一样妥善保管。

  3. 将服务添加到客户端,并在 X-MCP-Capability-Token 标头中发送令牌。Claude Code:

    claude mcp add --transport http unreal-engine http://127.0.0.1:3000/mcp --header "X-MCP-Capability-Token: <token>"
    

    或在项目的 .mcp.json(Claude Code)中从环境变量读取令牌:

    {
      "mcpServers": {
        "unreal-engine": {
          "type": "http",
          "url": "http://127.0.0.1:3000/mcp",
          "headers": { "X-MCP-Capability-Token": "${UNREAL_MCP_TOKEN}" }
        }
      }
    }
    

    Cursor(.cursor/mcp.json)使用相同的 url 和 headers,但不包含 type。VS Code、Windsurf 等客户端:请参阅连接客户端。

  4. **检查连接:**客户端连接后,状态栏中的计数会增加。

    Unreal Editor 状态栏显示 MCP :3000 (1):端口 3000 上的原生 MCP 服务,已有一个客户端连接

路线 B · stdio(Node.js 20.19+)

此程序包是一个位于同一 /mcp 前端的小型 stdio 代理。客户端直接连接 /mcp 时,每当编辑器关闭或崩溃,连接会话都会丢失,必须手动重新连接。通过代理连接时,编辑器关闭期间每次调用都会返回 NOT_CONNECTED;编辑器重新运行后,首次调用即可连接,无需重新连接。代理会保留编辑器最后一次提供的工具列表,因此即使会话在编辑器启动前就已开始,也能获取实际工具。

将以下内容添加到客户端的 MCP 配置中,例如 Claude Desktop 的 claude_desktop_config.json:

{
  "mcpServers": {
    "unreal-engine": {
      "command": "npx",
      "args": ["-y", "unreal-engine-mcp-server"],
      "env": {
        "UE_PROJECT_PATH": "C:/Path/To/YourProject"
      }
    }
  }
}

UE_PROJECT_PATH(项目文件夹或其 .uproject 文件)用于让代理查找能力令牌(MCP_AUTOMATION_CAPABILITY_TOKEN 可覆盖此设置)。UNREAL_MCP_URL 用于将代理指向其他端点(默认为 http://127.0.0.1:3000/mcp)。请搭配 0.6 插件使用;0.5.x 插件提供的是 23 个独立工具,而非 unreal 网关。

3. 试用

保持编辑器打开,让助手执行 “列出当前关卡中的 Actor”、“在原点上方 300 个单位处生成一个点光源”,或 “截取视口截图”。如果无法连接,请参阅故障排除。

unreal 工具

两种路由都只公开一个 MCP 工具 unreal,包含四种操作。系统只会加载模型即将使用的契约,而不是数百个工具架构:

操作功能
search根据 2-4 个普通词语查找功能,例如 spawn actor 或 save level。每一行都包含可直接发送的 nextCall。
describe返回某项功能的准确契约:参数、架构、示例,以及必要时所需的同意授权
execute使用经过验证的参数运行某项功能,并返回数据以及一份变更回执
configure启用或禁用内部工具组;不会触及编辑器

网关流程:使用查询进行搜索会返回带有 nextCall 的行;使用工具和操作进行 describe 会返回契约;使用参数执行,并在需要时提供同意授权,会返回数据和一份列出变更、句柄和警告的回执

一次典型的交互:

{ "operation": "search", "query": "spawn actor" }
{ "operation": "describe", "tool": "control_actor", "action": "spawn" }
{
  "operation": "execute",
  "tool": "control_actor",
  "action": "spawn",
  "params": { "classPath": "/Script/Engine.PointLight", "actorName": "KeyLight", "location": [0, 0, 300] }
}
  • 参数严格校验。 未声明的名称会被拒绝,并返回 UNDECLARED_PARAMETER 以及允许的名称列表;每个错误都包含可执行的 nextCall。
  • 删除需要同意。 所有破坏性功能,以及某些有风险的写入操作,只有在提供来自 describe 的 consentGrant,并将其作为顶层 consent 字段传回后才会运行。
  • 名称。 调用时指定 tool + action 组合或功能 ID,例如 "capability": "control_actor.spawn"。

包含真实回复的完整参考:使用网关。

从直接工具调用迁移

两种路由上的单一 unreal 工具都是永久设置;无法选择退出,也无法恢复 23 个工具的列表。仍直接调用规范工具名称的客户端(通过 tools/call 使用 name: "manage_asset"、name: "control_actor" 等)会收到有界、可复制粘贴执行的 DIRECT_TOOL_CALL_REMOVED 回执,而不是路由调用。其 nextCall 只推进一级:对于未知名称,提供 { "operation": "search" };未提供操作时,提供 { "operation": "describe", "tool": "<tool>" };调用中已指定操作时,提供 { "operation": "execute", "tool": "<tool>", "action": "<action>", "params": { ... } }。通过 unreal 运行该 nextCall,即可完成迁移。参见升级。

协议版本

两种路由都会在 initialize 时协商 MCP 协议版本:2025-11-25(最新版本)、2025-06-18 或 2025-03-26。客户端请求较旧版本时,会收到 2025-11-25 作为响应。原生路由收到不受支持的 MCP-Protocol-Version 标头时,会返回 HTTP 400。两种路由也会按请求提供 MCP 2026-07-28,无需 initialize 或会话,并会用该版本响应 server/discover。详情请见:docs/protocol.md。

`unreal` 背后的 23 个内部工具

这些工具会在网关内部路由请求;客户端不会列出它们。更多信息请参阅工具参考。

类别工具涵盖内容
核心manage_asset资产和文件夹、材质和材质图、纹理和渲染目标、数据表、结构体、枚举、源代码管理
核心manage_blueprint蓝图、组件、变量、事件图、UMG 小部件、布局、绑定、小部件动画
核心control_actor生成、变换、附加、组件、材质、标签、放置审查
核心control_editor编辑器内运行、合成输入、屏幕截图、视口摄像机、撤销、编辑器偏好设置
核心manage_level创建、加载、保存、流送、导入和导出关卡;世界设置;光照构建
核心system_control控制台命令、日志、项目设置、性能分析、构建和打包、测试、Python
核心inspect读取和写入任意 UObject 的属性、组件和类信息
核心manage_tools哪些内部工具已启用(通过 configure)
世界build_environment地形、植被、灯光和天空、水、天气、样条线、程序化地形
世界manage_level_structure子关卡、World Partition、流送、数据层、HLOD、体积
世界manage_geometryGeometry Script 网格:布尔运算、变形器、UV、碰撞、LOD、多边形笼、细分曲面、材质 ID、顶点颜色遮罩
世界manage_pcgPCG 图:创建、添加和连接节点、执行
游戏玩法animation_physics动画蓝图、混合空间、蒙太奇、骨架、Control Rig 和 IK、布娃娃、布料、载具
游戏玩法manage_character角色蓝图、移动、MetaHuman
游戏玩法manage_combat武器、投射物、命中检测
游戏玩法manage_effectNiagara 系统、发射器和模块、调试形状
游戏玩法manage_gasGameplay Ability System:能力、属性、效果
游戏玩法manage_aiAI 控制器、行为树、EQS、State Trees、Smart Objects、感知、导航
游戏玩法manage_inventory物品、战利品表、制作配方
游戏玩法manage_interaction门和其他可交互对象
实用工具manage_audio声音、音频组件、Sound Cues、MetaSounds、衰减、混音
实用工具manage_sequenceLevel Sequences、Movie Render Queue、媒体、Take Recorder、回放
实用工具manage_networking复制、RPC、会话、游戏框架类、Enhanced Input
## 配置

大多数配置只需修改一项设置:Route B 需要设置 UE_PROJECT_PATH;Route A 无需设置。所有设置均列在配置页面。

插件设置(项目设置 › 插件 › EngineWire,保存在 Config/DefaultGame.ini 中):

设置默认值
启用 Native MCP Server开通过 HTTP 在 /mcp 提供 MCP 服务(两种路由都会使用)
Native MCP Port3000编辑器进程的 MCP_NATIVE_PORT 环境变量会覆盖此设置
Listen Ports8090,8091插件的 WebSocket 监听端口;两种路由都不会使用
要求 Capability Token开两种路由都会拒绝不带令牌的客户端
允许非回环地址关两种监听器的 LAN 访问。请参阅安全。

环境变量(仅用于 Route B,在客户端的 env 块中):

变量默认值
UE_PROJECT_PATH未设置项目文件夹或 .uproject;用于查找令牌
MCP_AUTOMATION_CAPABILITY_TOKEN从令牌文件读取当代理无法读取项目文件夹时要提供的令牌
UNREAL_MCP_URLhttp://127.0.0.1:3000/mcp编辑器的 /mcp 端点
LOG_LEVELinfodebug、info、warn 或 error;日志输出到 stderr

安全

  • 默认仅限本地访问。 两种路由都只监听 127.0.0.1。LAN 访问需要启用 允许非回环地址,且原生服务只有在启用 要求 Capability Token 时才会绑定到非回环地址。
  • Capability Token。 每个项目都会生成一个令牌,保存在 <Project>/Saved/MCP/capability-token(输入 Capability Token 的值可覆盖该令牌),并通过恒定时间比较进行校验。删除该文件并重启编辑器即可轮换令牌。
  • 破坏性操作需征得同意。 删除操作和其他部分写入操作需要为每次调用授予同意,插件会自行检查。
  • 安全防护。 资源路径仅限 /Game、/Engine、/Script、/Temp 和 /Niagara,内容路径也可以位于已连接编辑器报告的挂载点下;服务器视为文件的参数(例如 filePath,以及即使命名的是资源也包括 outputPath)绝不会使用报告的挂载点;会串联命令或退出编辑器的控制台命令会被阻止;自动化无法访问插件自身的设置。

详情请参阅安全。请通过 GitHub 安全公告私下报告漏洞。

引擎插件

该桥接插件声明了对引擎插件的依赖,因此 Unreal 会在启用该桥接插件时一并启用它们。

必需(始终与桥接插件一同启用)
插件用途
Python Editor Script Plugin基于 Python 的编辑器自动化、system_control Python 执行
Editor Scripting Utilities资产和 Actor 子系统操作
Niagara视觉效果
Gameplay Abilitiesmanage_gas
Smart ObjectsAI 智能对象
可选(存在时使用,不存在时跳过)
插件用途
Level Sequence Editor、Takes、Movie Render Pipeline、Movie Pipeline Mask Render Pass、Electra Playermanage_sequence:Sequencer、Take Recorder、Movie Render Queue、媒体播放
Control Rig、RigVM、IK Rig、Animation Dataanimation_physics:Control Rig 和 IK
Chaos Vehicles、Chaos Clothanimation_physics:车辆和布料
Niagara Editormanage_effect:Niagara 创作
Behavior Tree Editor、Environment Query Editor、StateTree、Mass Gameplaymanage_ai
Geometry Scripting、Geometry Processing、Mesh Modeling Toolset、Procedural Mesh Componentmanage_geometry(Catmull-Clark、Loop 和双线性细分需要 Mesh Modeling Toolset)
PCGmanage_pcg,仅当项目本身启用 PCG 插件时才会编译进去
MetaSound、Synthesismanage_audio:MetaSound 创作
Enhanced Input、Online Subsystem、Online Subsystem Utilsmanage_networking:输入映射、会话
Interchange、Interchange OpenUSD、Data Validation、StructUtils导入/导出、验证、结构体辅助工具
Fab、BridgeFab 资产库访问(可选的 EngineWireFab 模块)

该插件支持从 5.0 到 5.8 的所有 Unreal Engine 次要版本。如果无法在你的版本上构建,请附上构建日志提交问题。

Docker

该镜像运行 stdio 代理。它必须能够访问编辑器的 127.0.0.1:3000 上的 /mcp,因此请使用主机网络(Linux),并传入令牌,因为容器无法读取你的项目文件夹:

docker build -t unreal-mcp .
docker run -i --rm --network host -e MCP_AUTOMATION_CAPABILITY_TOKEN=<token> unreal-mcp

使用 -i,不要使用 -t:TTY 会破坏 stdout 上的 MCP 流。

文档

📖 Wiki快速入门、安装、连接客户端、使用网关、配置、安全、故障排除、常见问题、升级
📋 操作参考每项功能及其影响、范围和许可要求,内容由功能记录生成
🔌 网关客户端指南网关契约,以及支持每项声明的源文件
📡 协议传输方式、版本协商、取消
🔐 安全与回执范围、许可、路径门控、幂等性、拒绝代码
🧪 测试指南测试套件以及如何添加测试用例
🧩 扩展插件添加编辑器操作:记录、处理器、路由和测试,以及插件代码规则
🗺️ 路线图开发路线图
📝 变更日志各版本的变更内容

开发

npm install
npm run build              # clean + compile TypeScript to dist/
npm run dev                # run from source with ts-node
npm run lint               # ESLint (CI fails on any warning)
npm run type-check         # tsc --noEmit, sources and tests
npm run test:unit          # Vitest unit tests (no Unreal required)
npm run test:params        # strict parameter audit
npm run registry:generate  # capability records -> generated contracts, native shards, action reference
npm run registry:check     # fail if generated artifacts drift
npm run manifest:check     # fail if the gateway manifest drifts
npm run eval:check         # search-ranking corpus
npm run version:check      # all version sources agree
npm test                   # integration suite (needs a live Unreal Editor serving /mcp)

src/tools/catalog/capabilities/records/ 中的能力记录是唯一事实来源;所有 *.generated.* 文件、插件的 MCP/Generated/ 分片和操作参考文档均由它们生成。切勿手动编辑生成的文件。如何添加能力:开发。

CI 按顺序运行:ESLint(npx eslint . --max-warnings=0)、类型检查、单元测试、registry:check、manifest:check、headers:check、严格参数审计(test:params)和 eval:check,然后运行阻断式运行时依赖审计(npm audit --omit=dev --audit-level=moderate)以及仅供参考的全树审计。Node 20.19 / 26 矩阵还会执行 build。仅当配置了 Unreal Engine 根目录时才会打包插件,因为 CI 运行器不包含引擎。发布压缩包不包含 Binaries/、Intermediate/ 和 Saved/。

社区

💬 讨论提问、分享想法和展示成果
🐞 问题Bug 报告和功能请求
🗺️ 项目看板路线图进展和优先事项

**贡献:**请保持拉取请求小而专注,并使用 Conventional Commits 标题;报告 Bug 时请附上复现步骤;遵循现有代码风格。请参阅 CONTRIBUTING.md。

许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。