UEFN MCP服务器
控制 UEFN (Fortnite的虚幻编辑器) 克劳德代码 通过 模型上下文协议.
Claude Code MCP Server (mcp_server.py) Listener (uefn_listener.py, inside UEFN)- 28工具:参与者、资源、级别、视口、项目信息、编辑器日志和任意Python执行
- 零C++编译 --纯Python,适用于UEFN版本
- 主线安全 --全部
unreal.*通过编辑器勾选回调发送的呼叫
快速开始
0.让克劳德来做设置
打开克劳德代码并询问: *“帮助我设置UEFN MCP服务器”* --它将安装依赖项,创建配置文件,并引导您完成其余操作。
如果您更喜欢手动操作,请按照以下步骤1-5进行操作。
1.在UEFN中启用Python
- 在UEFN中打开您的项目
- 首选 项目>项目设置
- 搜索 python 并选中以下复选框 Python编辑器脚本插件
2.启动UEFN内部的监听器
使用 工具>执行Python脚本 在UEFN菜单栏中,然后选择 uefn_listener.py 文件。
A. 状态窗口 将显示:
- 侦听器状态 --行驶时为绿色,停止时为红色
- MCP服务器状态 --连接Claude Code时为绿色(每10秒心跳一次)
- 港口 --当监听器停止时可编辑
- 指标 --正常运行时间、请求计数、错误、最后一个命令、平均响应时间
- 控制 --停止/启动/重新启动按钮
您可以安全地关闭此窗口——侦听器继续在后台运行。
3.安装MCP SDK
在您的系统上(不在UEFN内部):
pip install mcp4.配置克劳德代码
创建 .mcp.json 在项目根目录中(或添加到 ~/.claude/settings.json):
{
"mcpServers": {
"uefn": {
"command": "python",
"args": ["C:/path/to/uefn-mcp-server/mcp_server.py"]
}
}
}5.重新启动克劳德代码
克劳德代码拿起 .mcp.json 在启动时。重启后,您将有28个UEFN工具可用。
试试看
询问克劳德代码:
- *“列出该级别中的所有参与者”*
- *在位置100、200、300处生成一个立方体*
- *“游戏/材料/中有哪些资产?”*
- *“移动视口摄影机以查看原点”*
自动启动(可选)
要在UEFN打开项目时自动启动侦听器,请执行以下操作:
# Copy both files to your UEFN project's Content/Python/ directory
cp uefn_listener.py /Content/Python/uefn_listener.py
cp init_unreal.py /Content/Python/init_unreal.pyUEFN自动执行 init_unreal.py 项目开放。
工具
| 类别 | 工具 |
|---|---|
| 系统 | ping, execute_python, get_log, get_editor_log, shutdown |
| 演员 | get_all_actors, get_selected_actors, spawn_actor, delete_actors, set_actor_transform, get_actor_properties, set_actor_properties, select_actors, focus_selected |
| 资产 | list_assets, get_asset_info, get_selected_assets, rename_asset, delete_asset, duplicate_asset, does_asset_exist, save_asset, search_assets |
| 项目 | get_project_info |
| 水平 | save_current_level, get_level_info |
| 视口 | get_viewport_camera, set_viewport_camera |
这 execute_python 工具是最强大的——它在编辑器内运行任意Python代码,可以完全访问 unreal 模块:
# Pre-populated variables: unreal, actor_sub, asset_sub, level_sub, tk, get_tk_root
# Assign to `result` to return a value
actors = actor_sub.get_all_level_actors()
result = [a.get_actor_label() for a in actors]Tkinter注释: 通过创建UI窗口时execute_python,使用get_tk_root()+tk.Toplevel(root)不要打电话tk.Tk()--多个实例会使编辑器崩溃。
建筑
该系统使用两个独立运行的Python进程:
| 组件 | 文件 | 在 | Python | 依赖关系中运行 |
|---|---|---|---|---|
| 监听器 | uefn_listener.py | UEFN编辑器进程 | 3.11+(嵌入式) | stdlib |
| MCP 服务器 | mcp_server.py | 外部过程 | 3.10+(系统) | mcp SDK |
为什么是两个过程?
- 全部
unreal.*调用必须发生在编辑器的主线程上(勾选回调) - MCP SDK需要pip可安装的包,这些包不能添加到UEFN的嵌入式Python中
- 每个组件都可以独立重启
看 docs/architecture.md 了解详情。
配置
自定义端口
{
"mcpServers": {
"uefn": {
"command": "python",
"args": ["path/to/mcp_server.py", "--port", "8766"]
}
}
}或者通过环境变量:
{
"mcpServers": {
"uefn": {
"command": "python",
"args": ["path/to/mcp_server.py"],
"env": { "UEFN_MCP_PORT": "8766" }
}
}
}奖励工具
在UEFN编辑器中运行以内省Python API的脚本。 运行通过 工具>执行Python脚本 在UEFN菜单栏中。
| 脚本 | 描述 |
|---|---|
tools/dump_uefn_api.py | 将所有类、枚举、结构、函数转储为JSON |
tools/generate_uefn_stub.py | 生成 .pyi IDE自动补全的类型存根(37K+种类型) |
tests/test_feasibility.py | 验证UEFN沙箱是否支持MCP的HTTP/线程 |
文档
| 文档 | 描述 |
|---|---|
| 安装指南 | 详细的安装和配置 |
| 工具参考 | 所有28个工具,包括参数、示例和响应 |
| 建筑 | 双组分系统如何在内部工作 |
| 故障排除 | 常见问题和解决方案 |
| UEFN Python功能 | API完整功能地图-30个域中的37K类型 |
需求
- 启用Python脚本的UEFN编辑器(项目设置)
- 主机系统上的Python 3.10+
pip install mcp- 克劳德代码 命令行界面
许可证
麻省理工学院
