An MCP (Model Context Protocol) server that exposes Unreal Engine .uasset file operations via the UAssetAPI library. This tool enables AI assistants and other MCP clients to read, analyze, and modify Unreal Engine asset files programmatically.
- Read Asset Structure - Parse .uasset files and access metadata
- General Information - View package details, flags, GUIDs, folder names
- Name Map - List and edit the string table used by the asset
- Custom Versions - View all custom version information
- List Imports - View all external dependencies with full details (class package, class name, outer index, etc.)
- List Exports - View all objects contained in the asset with comprehensive metadata
- Export Data - Access detailed property data for specific exports
- Name Map Editing - Add or modify entries in the name table
- Import Editing - Update import references (object names, class packages, class names, outer indices)
- Export Editing - Modify export information (object names, indices, flags)
- Save Changes - Write modified assets back to disk
- .NET 10.0 SDK or later
- Windows x64 (currently configured for win-x64)
Download the latest release from the Releases page.
# Clone the repository with submodules
git clone --recurse-submodules https://github.com/hedgehogform/MCP-UAsset-Toolkit.git
cd "MCP UAsset Toolkit"
# Build the project (Debug)
dotnet build
# Build Release
dotnet build --configuration Release
# Run the MCP server
dotnet rundotnet publish -c Release -r win-x64 --self-containedThe executable will be located in bin/Release/net10.0/win-x64/publish/
The default server URL is configured in appsettings.json:
{
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://127.0.0.1:13338"
}
}
}
}You can override this via:
- Environment variable:
ASPNETCORE_URLS=http://localhost:5000 - Command line:
dotnet run --urls "http://localhost:5000"
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"uasset-toolkit": {
"command": "dotnet",
"args": ["run", "--project", "path/to/MCP UAsset Toolkit"],
"env": {}
}
}
}Before working with any assets, set the Unreal Engine version:
set_engine_version("4.27")
Supported formats: "4.27", "5.3", "5.5", etc.
read_asset("path/to/asset.uasset")
list_exports("path/to/asset.uasset")
list_imports("path/to/asset.uasset")
get_name_map("path/to/asset.uasset")
# Edit a name in the name map
edit_name_map_entry("path/to/asset.uasset", index: 5, newName: "NewName")
# Edit an import
edit_import("path/to/asset.uasset", importIndex: 1, objectName: "NewObjectName")
# Edit export information
edit_export_info("path/to/asset.uasset", exportIndex: 1, bIsAsset: true)
# Save changes
save_asset("path/to/asset.uasset")
set_engine_version- Set the Unreal Engine version for parsing
read_asset- Parse and read basic asset structureget_general_info- Get general package informationget_full_asset_info- Get comprehensive metadata (similar to UAssetGUI Info tab)list_exports- List all exports with detailed informationlist_imports- List all imports with detailed informationget_export_data- Get detailed data for a specific exportget_name_map- Get the name map (string table)list_custom_versions- List all custom versions
edit_name_map_entry- Edit an entry in the name mapadd_name_map_entry- Add a new name to the name mapedit_import- Edit import fieldsedit_export_info- Edit export information fieldssave_asset- Save modified asset to disk
MCP UAsset Toolkit/
├── Source/
│ ├── Program.cs # ASP.NET Core host and MCP server setup
│ ├── Models/ # Data transfer objects
│ ├── Services/ # Global state management (EngineVersionService)
│ └── Tools/ # MCP tool implementations
│ ├── VersionTools.cs # Engine version management
│ ├── AssetInfoTools.cs # Asset information retrieval
│ ├── AssetDataTools.cs # Import/export/name map listing
│ └── AssetEditTools.cs # Asset editing operations
├── UAssetAPI/ # Submodule - Unreal asset parsing library
└── appsettings.json # Server configuration
The MCP server uses SSE (Server-Sent Events) transport at the /sse endpoint:
- Default URL:
http://127.0.0.1:13338/sse - Protocol: Model Context Protocol
- UAssetAPI - Core Unreal asset parsing and manipulation
- CUE4Parse v1.2.2 - Unreal Engine parsing utilities
- ModelContextProtocol.AspNetCore v0.8.0-preview.1 - MCP server framework
dotnet build
dotnet build --configuration Release
### CI/CD
This project uses GitHub Actions for automated builds and releases:
- **Build Workflow** - Automatically builds Debug and Release configurations on every push/PR to main
- **Release Workflow** - Creates GitHub releases when version tags are pushed (e.g., `v1.0.0`)
To create a new release:
```bash
git tag v1.0.0
git push origin v1.0.0quired** - Edit operations modify assets in memory. You must call `save_asset` to persist changes
## Development
### Building
```bash
dotnet build
# UAssetAPI has separate test suite
cd UAssetAPI
dotnet test UAssetAPI.Tests/UAssetAPI.Tests.csproj- Methods end with
Async - Tool classes are
public static - All tools return JSON strings with
{ success: bool, ... }format - Validate engine version and file existence in all tools
This project uses UAssetAPI. See the UAssetAPI LICENSE for details.
Contributions are welcome! Please ensure:
- All MCP tools follow the established patterns
- Proper error handling with standard error messages
- Engine version validation before asset operations
- Build succeeds without errors
- atenfyr for UAssetAPI
- Anthropic for the Model Context Protocol