内容
UAsset 工具包
[](https://github.com/hedgehogform/MCP-UAsset-Toolkit/actions/workflows/build.yml)
[](https://github.com/hedgehogform/MCP-UAsset-Toolkit/actions/workflows/release.yml)
一个 [MCP (模型上下文协议)](https://modelcontextprotocol.io) 服务器,通过 [UAssetAPI](https://github.com/atenfyr/UAssetAPI) 库,公开了虚幻引擎 .uasset 文件操作。该工具使 AI 助手和其他 MCP 客户端能够以编程方式读取、分析和修改虚幻引擎资产文件。
## 功能
### 资产信息
- **读取资产结构** - 解析 .uasset 文件并访问元数据
- **常规信息** - 查看包详细信息、标志、GUID、文件夹名称
- **名称映射** - 列出和编辑资产使用的字符串表
- **自定义版本** - 查看所有自定义版本信息
### 导入/导出管理
- **列出导入** - 查看所有外部依赖项,包含完整详细信息(类包、类名、外索引等)
- **列出导出** - 查看资产中包含的所有对象,包含综合元数据
- **导出数据** - 访问特定导出的详细属性数据
### 编辑功能
- **名称映射编辑** - 在名称表中添加或修改条目
- **导入编辑** - 更新导入引用(对象名称、类包、类名、外索引)
- **导出编辑** - 修改导出信息(对象名称、索引、标志)
- **保存更改** - 将修改后的资产写回磁盘
## 安装
### 前置条件
- .NET 10.0 SDK 或更高版本
- Windows x64(当前配置为 win-x64)
### 下载预编译二进制文件
从 [发布页面](https://github.com/hedgehogform/MCP-UAsset-Toolkit/releases) 下载最新版本。
### 从源代码构建
```bash
# 克隆仓库并包含子模块
git clone --recurse-submodules https://github.com/hedgehogform/MCP-UAsset-Toolkit.git
cd "MCP UAsset Toolkit"
# 构建项目(调试)
dotnet build
# 构建发布版本
dotnet build --configuration Release
# 运行 MCP 服务器
dotnet run
```
### 发布独立可执行文件
```bash
dotnet publish -c Release -r win-x64 --self-contained
```
可执行文件将位于 `bin/Release/net10.0/win-x64/publish/`
## 配置
### 服务器默认服务器 URL 在 `apps` 中配置:
```json
{
estrel": {
": {
"Http": {
"Url":127.0.0.1:13338"
}
}
}
}
```
您可以通过以下方式覆盖:
- **环境变量**:`ASPNETS=http://localhost:5000`
- **命令行**dotnet run --urls "http://localhost:5000 MCP 客户端配置
添加到您的 MCP 客户端配置例如,Claude Desktop```json
{
"mcpServers": {
"uasset-toolkit": "command": "dotnet",
"args": ["run", "--project", "path/to/MCP UAsset Toolkit "env": {}
}
}
}
```
## 使用
### 1. 设置引擎版本
在处理任何资产虚幻引擎版本:
```
set_engine_version("4.27")
```
支持的格式:"4.27"、"5.3"、"5.5"### 2. 读取资产信息
```
read_asset("path/to/asset.uasset")
list_exports("path/to/asset.uasset")
list_imports("path/to/asset.uget_name_map("path/to/asset.uasset")
```
### 3. 编辑资产
```
# 编辑名称映射中的名称
edit_name_map_entry("path/to/asset.uasset", index: 5, newName: "NewName")
# 编辑导入
edit_import("path/to/asset.uasset", importIndex: 1, objectName: "NewObjectName")
# 编辑导出信息
edit_export_info("path/to/asset.uasset", exportIndex: 1, bIsAsset: true)
# 保存更改
save_asset("path/to/asset.uasset")
```
## 可用的 MCP 工具
### 版本管理
- `set_engine_version` - 设置用于解析的虚幻引擎版本
### 资产读取
- `read_asset` - 解析和读取基本资产结构
- `get_general_info` - 获取常规包信息
- `get_full_asset_info` - 获取综合元数据(类似于 UAssetGUI 信息选项卡)
- `list_exports` - 列出所有导出项,包含详细信息
- `list_imports` - 列出所有导入项,包含详细信息
- `get_export_data` - 获取特定导出的详细信息
- `get_name_map` - 获取名称映射(字符串表)
- `list_custom_versions` - 列出所有自定义版本
### 资产编辑
- `edit_name_map_entry` - 编辑名称映射中的条目
- `add_name_map_entry` - 在名称映射中添加新名称
- `edit_import` - 编辑导入字段
- `edit_export_info` - 编辑导出信息字段
- `save_asset` - 将修改后的资产保存到磁盘
## 架构
```
MCP UAsset 工具包/
├── 源代码/
│ ├── Program.cs # ASP.NET Core 主机和 MCP 服务器设置 ├── 模型/ # 数据传输对象
│ ├── 服务/ # 全局状态管理(EngineVersionService)
│ └── 工具/ # MCP 工具实现
│ ├── 版本工具.cs # 引擎版本管理
│ ├── 资产信息工具.cs # 资产信息检索
│ ├── 资产数据工具.cs # 导入/导出/名称映射列表
│ └── 资产编辑工具.cs # 资产编辑操作
├── UAssetAPI/ # 子模块 - 虚幻资产解析库
└── appsettings.json # 服务器配置
```
## 传输
MCP 服务器在 `/sse` 端点使用 **SSE(服务器发送事件)** 传输:
- 默认 URL:`http://127.0.0.1:13338/sse`
- 协议:[模型上下文协议](https://modelcontextprotocol.io)
## 依赖项
- **[UAssetAPI](https://github.com/atenfyr/UAssetAPI)** - 核心虚幻资产解析和操作
- **[CUE4Parse](https://github.com/FabianFG/CUE4Parse)** v1.2.2 - 虚幻引擎解析实用程序
- **[ModelContextProtocol.AspNetCore](https://www.nuget.org/packages/ModelContextProtocol.AspNetCore)** v0.8.0-preview.1 - MCP 服务器框架
## 重要注意事项
⚠️ **备份您的资产** - 编辑前请始终备份原始 .uasset 文件
⚠️ **版本兼容性** - 在处理资产之前,请确保设置正确的引擎版本
# 构建调试配置
dotnet build
# 构建发布配置
dotnet build --configuration Release
```
### CI/CD
该项目使用 GitHub自动构建和发布:
- **构建工作流** - 每次推送/拉取请求到 main 分支时自动构建调试和发布配置
- **发布工作流** - 当版本标签被推送时创建 GitHub 发布(例如,`v1.0.0`)
要创建新版本:
```bash
git tag v1.0.0
git push origin v1.0.0
```
## 开发
### 构建
```bash
dotnet build
```
### 运行测试
```bash
# UAssetAPI 有单独的测试套件
cd UAssetAPI
dotnet test UAssetAPI.Tests/UAssetAPI.Tests.csproj
```
### 代码风格
- 方法以 `Async`
- 工具类为 `public static`
- 所有工具返回 JSON 字符串,格式为 `{ success: bool, ... }`
- 在所有工具中验证引擎版本和文件存在性
## 许可证
该项目使用 UAssetAPI。有关详细信息,请参见 [UAssetAPI 许可证](UAssetAPI/LICENSE)。
贡献
欢迎贡献!请确保:
1. 所有 MCP 工具遵循已建立的模式
2. 具有标准错误消息的适当错误处理
3. 资产操作前的引擎版本验证
4. 构建成功错误
## 致谢
- [atenfhttps://github.com/yr) 为 [UAssetAPI](https://github.com/atenfyr/UAssetAPI [Anthropic](https://www.anthropic.com) 为 [模型上下文协议](https://modelcontextprotocol.io)