unreal-angelscript-mcp
v0.1.3
Published
MCP server for UnrealEngine-Angelscript diagnostics and connection checks.
Maintainers
Readme
ASMCP
ASMCP 是一个本地 stdio MCP server,用于连接 Hazelight UnrealEngine-Angelscript 项目的 Unreal Editor。
它使用和 vscode-unreal-angelscript 插件相同的 TCP 端口协议,默认连接:
127.0.0.1:27099功能
as_ping:检查是否能连接到 Unreal AngelScript socket。as_compile:连接 Unreal,请求 debug database,并可通过更新.as文件时间戳触发 UE 自动编译/重载脚本。as_compile_log:监听 Unreal 推送的Diagnostics消息,返回 AngelScript 编译诊断日志。as_compile_and_log:先触发编译,再等待一段时间并读取编译诊断日志。as_last_compile_log:返回上一次as_compile_log或as_compile_and_log收集到的日志。
重要限制
vscode-unreal-angelscript 使用的协议里没有发现专用的 CompileAngelscriptNow 或类似“立刻编译 AS”的命令。
原 VS Code 插件的工作方式是:
- 用户保存或修改
.as文件。 - Unreal Editor 监听到文件变化。
- Unreal 自动编译并重载 AngelScript。
- Unreal 把编译错误、警告、信息通过
Diagnostics消息推送给 VS Code。
ASMCP 采用同样思路:如果你传入 .as 文件或 Script 目录,它会更新文件时间戳,让 Unreal 的 AngelScript 文件监听器触发自动编译。默认触发方式是 auto:优先重写相同内容以触发更强的文件变更事件,如果文件不可写则退回到更新时间戳。你也可以显式传入 "triggerMode": "touch" 或 "triggerMode": "rewrite"。
VS Code Copilot MCP 配置
推荐用 npx 启动,不需要固定本机源码路径。
VS Code 用户级 MCP 配置文件通常位于:
%APPDATA%\Code\User\mcp.json配置示例:
{
"servers": {
"ASMCP": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"unreal-angelscript-mcp"
],
"env": {
"AS_UNREAL_HOST": "127.0.0.1",
"AS_UNREAL_PORT": "27099",
"AS_TIMEOUT_MS": "5000"
}
}
},
"inputs": []
}修改后在 VS Code 中执行:
Developer: Reload Windowopencode MCP 配置
如果要在 opencode 中使用,可以加入到 ~/.config/opencode/opencode.json 或项目 opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ASMCP": {
"type": "local",
"enabled": true,
"command": ["npx", "-y", "unreal-angelscript-mcp"],
"env": {
"AS_UNREAL_HOST": "127.0.0.1",
"AS_UNREAL_PORT": "27099",
"AS_TIMEOUT_MS": "5000"
}
}
}
}修改 opencode 配置后需要重启 opencode。
使用示例
as_compile_and_log 的返回值包含顶层状态字段:
status: "failed":收到 Diagnostics,且包含错误。status: "completed_with_diagnostics":收到 Diagnostics,且没有错误。status: "unknown_no_diagnostics_received":超时前没有收到 Diagnostics;这不等于编译成功,只表示 UE 没有推送诊断或文件监听没有触发。ok: true:仅在收到 Diagnostics 且没有错误时为 true。
检查 Unreal 是否连接:
{}触发单个 AS 文件编译并查询日志:
{
"file": "D:/Project/Script/Foo.as",
"triggerMode": "auto",
"waitMs": 1000,
"timeoutMs": 8000
}通过 Script 目录触发编译:
{
"scriptRoot": "D:/Project/Script",
"maxFiles": 1,
"triggerMode": "auto",
"waitMs": 1000,
"timeoutMs": 8000
}Unreal 端要求
Unreal Editor 必须正在运行,并且 AngelScript debug/language socket 端口要和 ASMCP 配置一致。
默认端口:
27099如果项目使用启动参数,可以设置:
-asdebugport=27099