L2 Modding MCP
This server provides 25 tools for modding Lineage 2 / Unreal Engine 2.5 assets, covering textures, 3D meshes, animations, sounds, maps, and package management.
Texture Operations
Inspect, extract (single or all to PNG), import/replace, and batch process textures in
.utxfiles (supports DXT1/3/5, P8, RGBA8, RGB8, G16)Batch operations: grayscale, invert, brightness, contrast, resize, blur, sharpen
Generate normal, height, AO, and specular maps from a diffuse texture
Build texture atlases and pack PBR channels (metallic/roughness/AO/height to RGBA)
Batch import a folder of PNG/BMP/TGA/JPG images into a new
.utxpackage
3D Mesh & Level Design
Generate procedural castles (configurable towers, walls, battlements, gates, keeps) and heightmap terrains (hills, mountains, plains, islands)
Export meshes to Unreal Engine
.usxpackages, OBJ, or FBXImport OBJ files for re-export to
.usxGenerate LOD0–LOD3 levels via vertex decimation and create box/cylinder collision meshes
Animations
List, inspect, and export animation sequences from
.ukxpackages to BVH format (Blender/Maya compatible)
Sounds
List and extract individual or all sounds from
.uaxpackages to WAV format
Maps
Parse
.unrlevel files to inspect brushes, static mesh actors, lights, and player starts
Package Management
Compare two packages to identify export differences
Scan directories for mesh↔texture cross-references
Optimize packages by removing dead exports
List all assets and name table entries in
.utx/.usx/.ukxfiles
Provides tools for modding Unreal Engine 2.5 assets, specifically Lineage 2, including extracting, modifying, and repackaging textures (.utx) and generating procedural 3D meshes (.usx).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@L2 Modding MCPextract all textures from armor.utx"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
L2 Modding MCP
MCP Server for Lineage 2 / Unreal Engine 2.5 asset modding — 25 tools. Extract, modify, repackage textures (.utx), generate procedural meshes (.usx), parse animations (.ukx), sounds (.uax), and maps (.unr).
Features
Textures
Extract/inspect/import textures from
.utxpackagesCodec: DXT1/DXT3/DXT5/P8/RGBA8/RGB8/G16 (decode + encode)
Batch process: grayscale, invert, brightness, contrast, resize, blur, sharpen
Batch import: folder of PNGs →
.utxin one stepNormal map, AO map, specular map generation
Texture atlas builder (grid packing)
PBR channel packer (metallic/roughness/AO/height → RGBA)
3D Meshes
Procedural castle generator (towers, walls, battlements, gate, keep, floor)
StaticMesh serializer for
.usxpackagesExport to OBJ and FBX ASCII
Import from OBJ back into the pipeline
LOD generator (vertex decimation, LOD0–LOD3)
Collision mesh generator (box, cylinder)
Procedural heightmap terrain (hills, mountains, plains, island, noise)
Animations (.ukx)
Parse AnimationSequence data (frames, bones, tracks)
Export to BVH format (Blender/Maya compatible)
Sounds (.uax)
List sound assets
Extract sounds to WAV (PCM and embedded WAV)
Maps (.unr)
Parse level data: brushes, static meshes, lights, player starts
Package Management
Package browser: scan directories for mesh↔texture cross-references
Package optimizer: remove dead exports, reduce size
Package comparator: diff two packages
Related MCP server: Unreal Engine MCP
Installation
pip install -e .Usage with opencode
Add to opencode.json:
{
"mcp": {
"l2-modding": {
"type": "local",
"command": ["python", "-m", "l2_mcp.server"],
"enabled": true
}
}
}MCP Tools (25)
Textures
Tool | Description |
| List all assets in .utx/.usx/.ukx |
| List name table entries |
| Detailed texture info (format, mips, palette) |
| Extract single texture to PNG |
| Extract all textures to directory |
| Replace texture with PNG (repacks .utx) |
| Batch transform (grayscale, invert, etc.) |
| Folder of PNGs → .utx |
| Generate normal/AO/specular map |
| Pack textures into atlas grid |
| Pack metallic/roughness/AO/height → RGBA |
Meshes & Level Design
Tool | Description |
| Generate procedural 3D castle |
| Generate stone/roof/floor/gate textures |
| Export meshes to .usx |
| Export meshes to OBJ or FBX |
| Import OBJ → mesh pipeline |
| Generate LOD0–LOD3 by decimation |
| Generate collision mesh (box/cylinder) |
| Procedural heightmap terrain |
Animations
Tool | Description |
| List animations in .ukx |
| Export animation to BVH |
Sounds
Tool | Description |
| List sounds in .uax |
| Extract sound to WAV |
| Extract all sounds to WAV |
Package Management
Tool | Description |
| Diff two packages |
| Scan L2 folder for mesh↔texture refs |
| Strip dead exports, reduce size |
| Read .unr maps (brushes, actors, lights) |
Supported Texture Formats
ID | Format | Description |
0 | P8 | 256-color paletted |
1 | RGBA8 | 32-bit RGBA |
3 | DXT1/BC1 | 4 bpp, optional 1-bit alpha |
4 | RGB8 | 24-bit RGB |
5 | DXT3/BC2 | 8 bpp, explicit alpha |
6 | DXT5/BC3 | 8 bpp, interpolated alpha |
B | G16 | 16-bit grayscale |
Project Structure
src/l2_mcp/
├── server.py # MCP server (25 tools)
└── upk/
├── reader.py # Binary reader (compact indices, GUIDs)
├── package.py # UPK parser (.utx/.usx/.ukx) + serializer
├── texture.py # DXT codec + texture decode/encode
├── writer.py # Package rebuilder / repacker
├── mesh.py # StaticMesh serializer + primitives
├── castle.py # Procedural castle generator
├── obj_io.py # OBJ/FBX export
├── obj_import.py # OBJ import
├── animation.py # .ukx parser + BVH export
├── normal_map.py # Normal/AO/specular map generator
├── batch_builder.py # Batch import + heightmap terrain
├── lod.py # LOD generator + collision mesh
├── browser.py # Package scanner + optimizer
├── atlas.py # Texture atlas + PBR packer
├── sound.py # .uax sound extractor
└── unr.py # .unr map parserLicense
MIT
Available Tools
18 toolsl2_animation_infoB
List and inspect animations in a .ukx package.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes | Absolute path to the .ukx file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the purpose without mentioning side effects, read-only nature, or performance implications. An agent is left unaware that this is likely a safe query operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence of 7 words effectively communicates the tool's purpose without any extraneous content. It is optimally concise for such a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a basic list tool, but given no output schema and no annotations, additional context (e.g., return format, read-only hint) would improve completeness. Complexities are low, so a score of 3 is reasonable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the parameter 'filepath' is clearly documented in the schema. The description reinforces its use with '.ukx package' but adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a specific verb ('list and inspect') and resource ('animations in a .ukx package'), clearly distinguishing it from sibling tools like l2_export_animation and l2_texture_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For example, it does not suggest using it before exporting animations or indicate any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_batch_import_texturesB
Import all PNG/BMP images from a directory into a new .utx package.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Output .utx path. Default 'ImportedTextures.utx'. | |
| input_dir | Yes | Directory with PNG/BMP/TGA/JPG images. | |
| package_name | No | Internal package name. Auto-generated if empty. | |
| generate_mips | No | Generate mip levels. Default true. | |
| texture_format | No | UE texture format: 3=DXT1, 5=DXT5, 6=DXT5. Default 3. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description contradicts schema by limiting formats to PNG/BMP while schema includes TGA/JPG. Also implies always creating new package without mentioning overwrite behavior or permissions. No annotations to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise, no filler. However, too brief given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing details about return value, overwrite behavior, effect on existing packages, and contradicts supported formats. Incomplete for a 5-parameter tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline 3 is appropriate. Description does not add extra meaning beyond schema; it actually misrepresents supported formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'import' and resource 'all PNG/BMP images from a directory into a new .utx package'. Distinct from singular import and extract siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use batch vs single import or extract. Does not differentiate from similar tools like l2_import_texture or l2_extract_all_textures.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_batch_processB
Apply a batch operation to all textures in a package (grayscale, invert, brightness, contrast, resize, blur, sharpen).
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Output .utx path. Auto-generated if empty. | |
| params | No | Operation parameters. brightness/contrast: factor (default 1.5), resize: scale (default 0.5), blur: radius (default 2). | |
| filepath | Yes | Absolute path to the source .utx file. | |
| operation | Yes | Operation: grayscale, invert, brightness, contrast, resize, blur, sharpen. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It does not state whether the operation modifies the original file or creates a new one, nor does it mention idempotency, authorization needs, or side effects. The output path parameter hints at a new file, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is clear and direct. While it could be slightly restructured to separate the operation list, it remains concise and front-loaded. No superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the presence of a nested parameter object, the description is somewhat incomplete. It does not explain the behavior of the tool (e.g., whether it overwrites or creates new files) or provide examples of parameter usage. However, it covers the core functionality adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds a brief list of operations but provides no new semantic meaning beyond the schema definitions. It does not explain how to use nested params effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies a batch operation to all textures in a package and lists the specific operations. This distinguishes it from sibling tools like l2_extract_texture (single texture) and l2_batch_import_textures (importing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description implies batch processing but does not specify prerequisites, limitations, or when other tools might be more appropriate. Given many sibling tools, explicit when-to-use/when-not-to-use would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_compare_packagesB
Compare two package files and report differences in exports.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath1 | Yes | Absolute path to the first .utx file. | |
| filepath2 | Yes | Absolute path to the second .utx file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states it compares and reports differences. It does not disclose whether the tool is read-only, what the output format is, or any side effects. This is insufficient for a comparison tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently states the tool's purpose. No extraneous words, and the key action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description lacks important details such as how differences are reported (e.g., diff format, summary), whether it supports comparing more than two files, and any performance considerations. It is insufficient for a comparison tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters as absolute paths to .utx files. The description does not add any extra meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares two package files and reports differences in exports, using a specific verb and resource. It distinguishes itself from sibling tools that handle animations, imports, or list packages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines provided. The description does not indicate when to use this tool over alternatives like l2_list_package for listing a single package, nor does it mention any prerequisites or contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_create_castleA
Generate a procedural 3D castle mesh for Lineage 2 (.usx). Creates towers, walls, battlements, gate, keep, and floor. Configurable dimensions.
| Name | Required | Description | Default |
|---|---|---|---|
| gate | No | Generate gate. Default true. | |
| keep | No | Generate central keep. Default true. | |
| depth | No | Castle depth (Y axis). Default 1600. | |
| width | No | Castle width (X axis). Default 2000. | |
| gate_width | No | Gate width. Default 300. | |
| keep_depth | No | Keep depth. Default 400. | |
| keep_width | No | Keep width. Default 400. | |
| battlements | No | Generate battlements. Default true. | |
| gate_height | No | Gate height. Default 400. | |
| gate_towers | No | Generate gate towers. Default true. | |
| keep_height | No | Keep height. Default 1000. | |
| wall_height | No | Wall height. Default 500. | |
| detail_level | No | Detail level 1-3. Default 2. | |
| tower_height | No | Tower height. Default 800. | |
| tower_radius | No | Tower radius. Default 200. | |
| corner_towers | No | Generate corner towers. Default true. | |
| tower_segments | No | Tower cylinder segments (8-32). Default 16. | |
| wall_thickness | No | Wall thickness. Default 80. | |
| battlement_height | No | Battlement height. Default 120. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It states the tool 'creates' a mesh but does not mention any side effects, output format, or system impact. Minimal behavioral context beyond the high-level purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with clear, essential information. No wasted words. Lists key components and underscores configurability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 19 parameters with full schema coverage and no output schema, the description provides overall purpose but lacks detail on return values, file format, or parameter relationships. Adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds only 'configurable dimensions' and lists components already in the schema. No additional semantic value beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool generates a procedural 3D castle mesh for Lineage 2 (.usx), listing specific components (towers, walls, etc.). This differentiates it from siblings like l2_gen_terrain or l2_create_usx_package.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for creating a castle mesh, and sibling tools are sufficiently distinct (animation, textures, terrain). However, no explicit when-to-use or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_create_usx_packageB
Export generated castle meshes to a .usx package file for Lineage 2.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Output .usx file path. Default 'CastleMeshes.usx' in current dir. | |
| mesh_index | No | Export specific mesh part by index (0=body, 1=keep, 2=floor). -1 for all. Default -1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does not mention whether the export is destructive, overwrites existing files, or requires specific permissions. The agent cannot infer side effects or safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 12-word sentence that is front-loaded and concise. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 optional params, no output schema), the description is adequate but lacks behavioral context. It does not explain the output or potential issues, leaving some incompleteness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds no additional meaning beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'export' and the resource 'generated castle meshes' to a specific format '.usx package file' for Lineage 2. It distinguishes from sibling tools like l2_export_obj and l2_export_animation by specifying the output format and context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like l2_export_obj or prerequisites (e.g., needing generated meshes). The agent has no context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_export_animationB
Export an animation from .ukx to BVH format (Blender/Maya compatible).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Animation name to export. Mutually exclusive with index. | |
| index | No | Animation index to export. | |
| output | No | Output .bvh path. Auto-generated if empty. | |
| filepath | Yes | Absolute path to the .ukx file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It fails to mention side effects (e.g., file creation), required permissions, whether the file is overwritten, or the return format. The verb 'Export' implies a write operation but lacks detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that immediately conveys the core purpose. No extraneous words, front-loaded with the main action, and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no output schema, and no annotations, the description is insufficient. It does not explain parameter relationships (e.g., name/index mutual exclusivity), auto-generation of output, or the BVH format context. An agent would need more detail to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds no additional parameter meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it exports an animation from .ukx to BVH format, specifying the source and target formats and compatibility with Blender/Maya. This is a specific verb+resource that distinguishes from sibling tools like l2_export_obj.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical use cases, or exclusions. The description only states the function, leaving the agent to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_export_objB
Export generated/imported meshes to OBJ or FBX format for editing in Blender/Maya.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Export format: 'obj' or 'fbx'. Default 'obj'. | |
| output | No | Output file path. Default 'castle_export.obj'. | |
| filepath | No | Optional .usx or .obj file to export from. | |
| mesh_index | No | Export specific mesh part. -1 = all. Default -1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose potential side effects (e.g., file creation, overwrite behavior) or any permissions/requirements. Exporting is implicitly a write operation but not clarified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence that efficiently communicates the core purpose without redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite good schema coverage, description lacks details on default behavior, error conditions, file path conventions, or return values. For a tool with 4 parameters and no output schema, more context is needed for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with clear descriptions. The tool description adds no extra meaning beyond what the schema already provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (Export), resource (generated/imported meshes), and target formats (OBJ/FBX), distinguishing it from sibling tools like l2_import_obj which does the opposite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. Description implies usage for exporting meshes for external editing, but does not mention alternatives or contexts where other export tools might be more appropriate (e.g., l2_export_animation for animations).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_extract_all_texturesA
Extract all textures from a package to a directory as PNG files.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes | Absolute path to the .utx file. | |
| output_dir | No | Output directory. Auto-generated if empty. | |
| class_filter | No | Filter by class name, default 'Texture'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description lacks behavioral details such as overwrite policy, file naming, performance implications, or error handling. It only states basic extraction action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler, directly communicates the core functionality. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters and no output schema, description lacks details on output behavior (naming, overwrite) and edge cases (e.g., no textures found). Adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description adds 'to a directory as PNG', but does not elaborate on parameter meanings beyond what schema provides (e.g., auto-generation of output_dir, default class_filter). Baseline 3 due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (Extract), resource (all textures from a package), and output format (PNG files to a directory). It distinguishes from siblings like l2_extract_texture (single texture) and l2_batch_import_textures (importing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives mentioned. Usage is implied for batch extraction of textures, but no guidance on when not to use (e.g., vs l2_extract_texture for single texture) or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_extract_textureB
Extract a single texture from a .utx package and save as PNG.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name of the texture to extract. | |
| index | No | Index of the texture to extract (alternative to name). | |
| output | No | Output PNG file path. Auto-generated if empty. | |
| filepath | Yes | Absolute path to the .utx file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Only states action and output format, omitting error handling, file overwrite behavior, or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with clear action, no fluff, appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite schema coverage, description lacks usage guidance and behavioral transparency. Incomplete for full context given sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% parameter description coverage; description adds no additional semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'extract', resource 'single texture from .utx', and output format 'PNG'. Distinguishes from sibling l2_extract_all_textures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like l2_extract_all_textures, or how to choose between name and index parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_generate_texturesB
Generate procedural stone/wall/roof/floor texture images for the castle.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Texture size in pixels. Default 512. | |
| output_dir | No | Output directory for PNG textures. Default 'castle_textures'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry behavioral disclosure. It mentions 'procedural' but lacks details on side effects (e.g., file creation, overwriting), permissions, determinism, or output behavior. The description is too brief for a generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with purpose, no extraneous words. It earns its place efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite only two parameters and no output schema, the description is too terse for a generation tool. It omits output format details (though implied PNG), file naming conventions, or limitations. More context is needed for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters have descriptions in the input schema (100% coverage), so the description adds no extra meaning. Baseline 3 is appropriate as the schema already documents size and output_dir.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('generate'), the resource ('procedural stone/wall/roof/floor texture images'), and the context ('for the castle'). It effectively distinguishes this tool from siblings like extraction or import tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies it is for generating new textures, but does not provide when-not-to-use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_gen_normal_mapB
Generate normal/height/AO/specular maps from a diffuse texture.
| Name | Required | Description | Default |
|---|---|---|---|
| blur | No | Pre-blur radius for normals. Default 0.5. | |
| mode | No | Map type: 'normal', 'height', 'ao', 'specular'. Default 'normal'. | |
| output | No | Output PNG path. Auto-generated if empty. | |
| radius | No | AO sampling radius. Default 4. | |
| strength | No | Normal intensity 0.0-5.0. Default 1.0. | |
| image_path | Yes | Absolute path to input texture. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only says 'generate' but does not disclose side effects (e.g., file overwriting), permissions, or any other behavioral traits beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words. Every word earns its place, conveying the purpose directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no output schema, and no annotations, the description is too minimal. It fails to explain return values, file system impact, or required context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The tool description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('generate') and resource ('maps from a diffuse texture'), listing the map types. It clearly distinguishes from sibling tools like l2_gen_terrain or l2_generate_textures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites or context provided. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_gen_terrainB
Generate procedural heightmap terrain (hills, mountains, plains, island, noise).
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Seed for reproducible generation. Default 0. | |
| size | No | Texture size (256, 512, 1024, 2048). Default 512. | |
| output | No | Output PNG path. Auto-generated if empty. | |
| terrain_type | No | Terrain: 'hills', 'mountains', 'plains', 'island', 'noise'. Default 'hills'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It only states generation of terrain but omits details like side effects, performance, or that it produces a PNG file (implied by output parameter). Minimal behavioral info beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single short sentence that efficiently conveys purpose and options (terrain types). No fluff, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so description should clarify return value. It mentions 'heightmap terrain' but does not specify that the output is a PNG file or describe the format. Context is adequate but not fully complete for a file-generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description lists terrain types but adds no extra meaning beyond the schema descriptions. It does not explain parameters like seed, size, or output beyond what schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Generate' and resource 'procedural heightmap terrain', listing specific types (hills, mountains, plains, island, noise). This effectively differentiates it from sibling tools like l2_gen_normal_map and l2_generate_textures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., l2_gen_normal_map for normal maps, l2_generate_textures for general textures). The description lacks context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_import_objA
Import an OBJ file into the mesh pipeline. Can be exported to .usx afterwards with l2_create_usx_package.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes | Absolute path to the .obj file to import. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It mentions the import and the possibility of later export, but does not reveal side effects (e.g., overwriting, temporary storage), required permissions, or error handling. This is insufficient for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no redundant words. It is front-loaded with the core purpose and succinctly links to a related tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool without an output schema or annotations, the description is fairly complete. It explains the purpose and indicates the next step. However, it lacks details on behavioral aspects and edge cases, which would be helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter is already well documented in the schema. The description adds no new meaning beyond restating 'Absolute path to the .obj file to import.' It does not provide additional context like file existence checks or expected path formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Import', the resource 'OBJ file', and the context 'into the mesh pipeline'. It distinguishes from sibling tools like l2_export_obj (which exports) and l2_create_usx_package (which is the next step).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for importing OBJ files into the mesh pipeline, with a hint about the workflow (export to .usx). However, it does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_import_textureB
Replace a texture in a .utx file with a PNG image. Generates a new package file.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name of the texture to replace. Mutually exclusive with index. | |
| index | No | Index of the texture to replace. Mutually exclusive with name. | |
| output | No | Output .utx file path. Auto-generated if empty. | |
| filepath | Yes | Absolute path to the source .utx file. | |
| image_path | Yes | Absolute path to the PNG image to import. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool replaces a texture and generates a new package file, implying a destructive action but lacking details on side effects, required permissions, or behavior when the texture is not found. With no annotations, it provides basic but incomplete transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. Front-loaded with the core action and output. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 5 parameters, the description omits what the tool returns (e.g., file path, success status) since no output schema exists. The output 'Generates a new package file' is vague; agents need to know the exact return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no significant meaning beyond the schema. The overall purpose is reinforced but no extra details on parameter usage or format are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Replace' and the resource 'texture in a .utx file', and specifies the input/output (PNG image, new package file). It distinguishes from sibling tools like extract or batch import.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like l2_batch_import_textures. No prerequisites or when-not-to-use conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_list_namesA
List all names in the package's name table. Optionally filter by substring.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional substring to filter names. | |
| filepath | Yes | Absolute path to the package file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states the operation (list names) and optional filtering, but does not disclose whether it is read-only, potential side effects, permission requirements, or error conditions. The description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two clauses, no filler, and front-loaded with the main action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with two well-documented parameters and no output schema, the description is adequate. It does not explain return values, but given the tool's simplicity and the schema coverage, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description adds 'Optionally filter by substring' which repeats the schema's filter description. It adds no new meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists names from the package's name table with optional substring filtering. It uses a specific verb ('list') and resource ('names in the package's name table'), distinguishing it from sibling tools that deal with animations, textures, or imports/exports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when listing names is needed, but provides no guidance on when to use this tool versus alternatives, no prerequisites, and no conditions for when not to use it. It is functional but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_list_packageA
List all assets in a Lineage 2 / UE2.5 package file (.utx, .usx, .ukx). Shows exports with their class, size, and offset.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes | Absolute path to the .utx, .usx, or .ukx file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that exports are shown with class, size, and offset, indicating a read-only operation. However, it does not address potential side effects, performance, or file size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant words. It front-loads the main action and key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description explains return fields (class, size, offset), which suffices for a listing tool. Missing details like default ordering or error handling are minor gaps for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter ('filepath') described as 'Absolute path to the .utx, .usx, or .ukx file.' The description mentions the same file extensions, adding minimal extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('list') and resource ('assets in a package file'), specifies file extensions (.utx, .usx, .ukx), and notes the output fields (class, size, offset). This clearly distinguishes it from sibling tools like l2_texture_info or l2_animation_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for browsing package contents but does not explicitly state when to use this tool versus alternatives. No guidance on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
l2_texture_infoA
Get detailed information about a texture in a package (format, size, mip levels, palette).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name of the texture export. Mutually exclusive with index. | |
| index | No | Index of the texture export. Mutually exclusive with name. | |
| filepath | Yes | Absolute path to the .utx file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a read-only operation (getting info) but does not explicitly state side effects, permissions, or that it does not modify the package. Adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the tool's purpose and key return info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description lists the returned information (format, size, mip levels, palette), which is sufficient for a simple info tool. Lacks mention of pagination or limits, but these are likely irrelevant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what the schema already provides (e.g., name and index are mutually exclusive, stated in schema). No extra context for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get detailed information' and the resource 'texture in a package', listing specific details (format, size, mip levels, palette). This distinguishes it from sibling tools like l2_extract_texture (extraction) and l2_import_texture (import).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving texture info but provides no explicit guidance on when to use it versus alternatives like l2_extract_texture or l2_batch_import_textures. Missing when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
18 tool updates
v1.0.0- First observed
l2_animation_info - First observed
l2_batch_import_textures - First observed
l2_batch_process - First observed
l2_compare_packages - First observed
l2_create_castle - First observed
l2_create_usx_package - First observed
l2_export_animation - First observed
l2_export_obj - First observed
l2_extract_all_textures - First observed
l2_extract_texture - First observed
l2_gen_normal_map - First observed
l2_gen_terrain - First observed
l2_generate_textures - First observed
l2_import_obj - First observed
l2_import_texture - First observed
l2_list_names - First observed
l2_list_package - First observed
l2_texture_info
TDQS
Scored across 18 tools
Each tool targets a distinct operation on L2 package assets (listing, extracting, importing, generating, comparing). No overlapping purposes; even similar tools like l2_extract_texture and l2_extract_all_textures are clearly differentiated by scope.
All tools follow the 'l2_verb_noun' pattern consistently, using snake_case. Verbs like list, compare, extract, import, generate, create are predictably placed, making the set easy to navigate.
With 18 tools covering textures, meshes, animations, packages, and procedural generation, the count fits the modding domain well. Each tool serves a clear purpose without redundancy.
The toolset covers most modding workflows: texture and package management, mesh import/export, animation export, procedural generation. Minor gaps exist (e.g., no animation import/creation, no generic package creation for non-castle assets), but core operations are well-supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides asset auto generator
Personal MCP server for humans who create. Proof of authorship, license control.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceOpen-source, engine-agnostic MCP server shared by Unity-MCP, Godot-MCP, and Unreal-MCP.9Apache 2.0
- AlicenseBqualityAmaintenanceAn MCP server that lets an AI agent drive Unreal Engine 5: create projects, import assets, build levels and Blueprints, configure replication, compile C++, run Play In Editor and package the game.1004MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server for AI-driven Blender↔Unreal Engine bridge, providing 62 tools for 3D modeling, scene validation, and asset transfer across both engines.MIT
- AlicenseAqualityBmaintenanceMCP server that enables natural language listing, unpacking, and exporting of Unreal Engine game resources via umodel, including AES-encrypted pak support.136MIT