umodel-mcp
Provides tools for listing, extracting, and exporting Unreal Engine game assets from .pak/.upk files, including mesh, texture, animation, and sound export to formats like glTF, PSK, PNG, and DDS.
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., "@umodel-mcpshow me what's inside this encrypted pak file"
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.
Umodel-MCP
English | 简体中文
An MCP server for umodel that lets any MCP client list, extract, and export Unreal Engine game assets through natural language.
Features
Zero-dependency extraction:
pak_list/pak_extractare pure TypeScript implementations that parse the .pak index directly and extract raw.uasset/.uexpfiles — no umodel download requiredEncrypted pak support: AES-256 index/entry encryption, including the standard mode and the bitflip variant; keys are held in session memory only
Full export pipeline: meshes, textures, animations, and sounds are exported to gltf, psk, png, dds, and other formats (requires the umodel executable)
Related MCP server: L2 Modding MCP
Requirements
Node.js 18 or later
Any MCP-capable client (Hermes, Claude Code, Cursor, PI, Codex, etc.)
Only needed for export/conversion: umodel
Installation
Standard config
{
"mcpServers": {
"umodel": {
"command": "npx",
"args": ["-y", "umodel-mcp"]
}
}
}You can also just tell your agent: "Install and register umodel-mcp, reload the MCP connection, and verify it works."
claude mcp add umodel npx -- -y umodel-mcpcodex mcp add umodel npx "-y" "umodel-mcp"git clone git@github.com:CHA1007/Umodel-MCP.git
cd Umodel-MCP
npm install
npm run buildThen register it in your MCP client config:
{
"mcpServers": {
"umodel": {
"command": "node",
"args": ["<absolute path to this repo>/dist/index.js"]
}
}
}Tools
Tool | umodel command | Description |
| — | Show the current in-memory session settings |
| — | Remember session settings (in memory only, nothing written to disk) |
| — | Auto-search for the umodel executable (fallback only, when the user does not know the path) |
|
| Verify the executable (pass |
|
| List supported games and their |
| — | Recursively scan a directory for |
|
| List objects in a package (filtering and pagination supported) |
|
| Show package info (name/export tables) |
|
| Export meshes/textures/animations/sounds (psk, gltf, png, dds…) |
|
| Copy raw package files out as-is (.upk + .uexp/.ubulk) |
| — | Show the exported directory tree (with file sizes) |
| — | Parse the .pak index directly (no umodel), AES-encrypted indexes supported, search asset paths |
| — | Extract raw .uasset/.uexp files from a .pak (encrypted paks supported) |
Command-line arguments follow the official UEViewer source (UmodelTool/Main.cpp);
each tool's parameters can be inspected via its schema in your MCP client.
Disclaimer
This project is intended only for unpacking, viewing, and exporting game assets that the user legally owns, for learning, research, backup, and other lawful purposes
Please comply with the user agreement of the game in question and the laws and regulations of your jurisdiction; the author assumes no responsibility for any copyright or agreement disputes or damages arising from the use of this project
License
MIT © CHA1007
Available Tools
13 toolspak_extractExtract files from UE .pak archivesA
Extract raw .uasset/.uexp files from UE .pak archives by parsing the index directly (AES-encrypted indexes supported, including custom bit-flipped AES). Works without umodel. The extracted loose files can then be converted with umodel_export (point it at the output directory). Output defaults to /pak under the Downloads folder.
| Name | Required | Description | Default |
|---|---|---|---|
| out | No | Output directory. Defaults to <session outputDir>/pak. | |
| json | No | Return machine-readable JSON instead of formatted text. | |
| aesKey | No | AES key (hex, 0x prefix optional) for pak index decryption. Overrides session pakAesKey. | |
| pakDir | No | Pak directory. Defaults to session gamePath. | |
| aesMode | No | Decryption mode. Overrides session pakAesMode (default standard). | |
| filters | Yes | Case-insensitive substrings to match, e.g. ['SKM_PC2'] | |
| maxFiles | No | Max files to extract (default 200) | |
| pakFilter | No | Only scan paks whose file name contains this substring |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behaviors: parsing the index directly, support for AES-encrypted indexes (including bit-flipped), and that it works without umodel. It also specifies the output default location. Absence of side-effect details like overwriting or error behavior is a minor gap, but the description is significantly more transparent than most.
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 three sentences long, front-loaded with the primary purpose, and contains no redundant or filler content. Every sentence adds value: action, mechanism, workflow, and default output.
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 tool's complexity (8 parameters, AES modes, filters, no output schema), the description covers the core use case well: extraction, AES handling, and linkage to umodel_export. It lacks information about return behavior or error handling, but this is partially compensated by the detailed schema and the workflow context provided.
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 baseline is 3. The description adds some context (e.g., default output under Downloads, AES modes) that aligns with schema parameter descriptions but does not significantly enhance per-parameter understanding beyond what the 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?
The description clearly states the action ('Extract raw .uasset/.uexp files') and the resource ('UE .pak archives'), distinguishing it from sibling tools like umodel_export (conversion) and pak_list (listing). It also notes that it works without umodel, further differentiating its role.
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 provides workflow guidance by indicating that extracted loose files can be converted with umodel_export. It also mentions AES support and bit-flipped AES, giving context on when this tool is appropriate. However, it does not explicitly exclude alternatives or mention pak_list for listing purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pak_listList files inside UE .pak archivesA
Parse UE .pak index files (AES-encrypted indexes supported, including games using custom bit-flipped AES) and list asset paths matching the filters. Works without umodel. Use this before pak_extract to locate assets (meshes/textures/animations). The pak directory should come from the user — ask which game directory to unpack first.
| Name | Required | Description | Default |
|---|---|---|---|
| json | No | Return machine-readable JSON instead of formatted text. | |
| limit | No | Max entries to return (default 200) | |
| aesKey | No | AES key (hex, 0x prefix optional) for pak index decryption. Overrides session pakAesKey. | |
| pakDir | No | Pak directory. Defaults to session gamePath. | |
| aesMode | No | Index decryption mode. Overrides session pakAesMode (default standard). | |
| filters | Yes | Case-insensitive substrings to match, e.g. ['SKM_PC2'] | |
| pakFilter | No | Only scan paks whose file name contains this substring |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses support for AES-encrypted indexes and bit-flipped AES, and notes it works without umodel. It also indicates the need to ask the user for the directory. However, it does not mention read-only nature explicitly, output format, or behavior when AES key is missing, leaving some transparency gaps.
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 three sentences long, front-loaded with the main action, and includes only relevant details. It efficiently communicates purpose, workflow, and user interaction without 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?
For a listing tool with no output schema and moderate complexity (7 params), the description provides a good overall context: what it does, when to use it, and a user interaction note. It does not explicitly mention pagination or the json option, but the schema covers those. It is slightly incomplete for a no-annotation scenario, but sufficient for an agent to select and invoke 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 description coverage is 100%, so the baseline is 3. The description adds general context about AES support but does not add specific parameter-level meaning beyond the schema's descriptions. It does not suffer from omissions, but also does not enhance parameter understanding.
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 parses UE .pak index files and lists asset paths matching filters. It distinguishes from siblings by noting it works without umodel and should be used before pak_extract for asset location.
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?
It explicitly tells when to use: 'Use this before pak_extract to locate assets'. It also provides user-interaction guidance, stating the pak directory should come from the user and to ask which game directory to unpack first. This clearly positions the tool in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
umodel_exportExport assets from a packageA
Run 'umodel -export' to convert assets (meshes, textures, animations, sounds...) to standard formats (psk/gltf/tga/png/...). Without object filters the whole package is exported. Output defaults to the Downloads folder. IMPORTANT: cooked UE4/5 games need a gameTag, otherwise umodel pops a blocking engine-version GUI dialog. ALWAYS call umodel_game_list { tags: true } FIRST and use the official tag if the game is listed (e.g. roco); the server blocks the call and reminds you if gameTag is missing.
| Name | Required | Description | Default |
|---|---|---|---|
| out | No | Output directory (-out=). Defaults to session outputDir or Downloads/umodel-export. | |
| json | No | Return machine-readable JSON instead of formatted text. | |
| lods | No | Export all mesh LOD levels (-lods) | |
| groups | No | Use group names for directories instead of class names (-groups, UE1-3) | |
| object | No | Single object name to export (positional <object>) | |
| sounds | No | Allow sound export (-sounds) | |
| uncook | No | Use original package names for output dirs (-uncook, UE3) | |
| aesKeys | No | AES keys for encrypted pak files (-aes=). Overrides session. | |
| gameTag | No | Game tag override (-game=), e.g. ue4.27 or an official tag like roco. Cooked UE4/5 games REQUIRE a tag — without it umodel pops a blocking GUI dialog. See umodel_game_list. | |
| objects | No | Additional object filters (-obj=name, repeatable) | |
| package | Yes | Package name, wildcard, or full file path | |
| scripts | No | Export UnrealScript as .uc (-uc) | |
| gamePath | No | Game installation directory (-path=). Overrides session. If unknown, ask the user first. | |
| className | No | Class of the object (positional <class>) | |
| timeoutMs | No | Override invocation timeout (ms) | |
| meshFormat | No | Mesh export format (default psk) | |
| thirdParty | No | Allow 3rd-party asset export: ScaleForm/FaceFX (-3rdparty) | |
| noOverwrite | No | Do not overwrite existing files (-nooverwrite) | |
| textureFormat | No | Texture format (default tga; dds keeps original compression) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses important behaviors: whole package export by default, output defaults to Downloads, blocking GUI dialog if gameTag missing, and server-side validation. This goes beyond the schema and alerts the agent to mandatory prerequisites, though it doesn't detail error responses or output structure.
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?
Three sentences cover the essential command, default behavior, and a critical warning. No filler; each sentence earns its place and the most important instruction 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?
For a 19-parameter tool with no annotations or output schema, the description covers the most critical operational details (default output, gameTag requirement, whole-package behavior). It omits return value structure but remains sufficient for selection and 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 has 100% parameter descriptions, but the description adds contextual meaning: object filters control whether the whole package is exported, and gameTag is critical for cooked games. This clarifies the semantics of key parameters beyond their 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?
The description clearly states the tool converts assets from a package to standard formats, with a specific command example ('umodel -export'). It distinguishes from sibling listing tools by focusing on export/convert behavior, not listing.
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?
It explicitly instructs to call umodel_game_list { tags: true } first for cooked UE4/5 games and warns that the server blocks the call if gameTag is missing. This provides clear when-to-use guidance and a prerequisite that affects tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
umodel_find_exeAuto-locate umodel executableA
Search common locations (Downloads/Desktop/Documents/Program Files/PATH...) for umodel executables (umodel.exe, umodel_64.exe, or custom builds like umodel_acl_*.exe). ONLY use this as a fallback when the user does not know the umodel path or provided an invalid one — always ask the user for the path first. With verify=true the newest candidate is tested via -version and remembered. IMPORTANT: different umodel builds/versions support different games (e.g. umodel_acl variants). If more than one candidate is found the remembered exe stays UNCONFIRMED and per-game tools refuse to run until you show the candidate list to the user, ask which version to use for the target game, and confirm it via umodel_session_set { umodelExe }. Never pick a version yourself.
| Name | Required | Description | Default |
|---|---|---|---|
| dirs | No | Extra directories to search deeply (e.g. a folder the user vaguely remembers). | |
| json | No | Return machine-readable JSON instead of formatted text. | |
| verify | No | Run -version on the newest candidate and remember it if it works. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden of behavioral disclosure. It explains the verification process with verify=true, the 'remembered' exe behavior, and the unconfirmed state when multiple candidates exist. It also warns about version/game compatibility, giving the agent important side-effect and safety context beyond the tool's simple search 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?
The description is longer than average, but every sentence contributes important caveats (fallback usage, confirmation workflow, version compatibility). It is front-loaded with the core purpose ('Search common locations...') and then logically proceeds to usage guidance and warnings. Slightly dense but justified by the safety-critical selection logic.
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, the description does not fully describe return format, but it implies the candidate list and unconfirmed status enough for the agent to understand the workflow. It provides complete context about when to use, verify behavior, and the required user confirmation step. It lacks explicit failure behavior when no executable is found, but that is a minor gap.
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 each parameter already has a description, so baseline is 3. The description adds meaning beyond the schema by explaining that verify=true causes the newest candidate to be 'tested via -version and remembered,' and it reinforces how 'dirs' fits with the search behavior. This is meaningful value added over the schema alone.
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 and resource ('Search common locations... for umodel executables') and lists concrete executable names. It clearly distinguishes this tool from sibling tools like umodel_version or pak_list by focusing on locating executables rather than operating on game data.
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?
Provides explicit when-to-use guidance: 'ONLY use this as a fallback when the user does not know the umodel path or provided an invalid one — always ask the user for the path first.' It also defines exclusion behavior for multiple candidates: show the list, ask the user, and never pick a version yourself. This directly tells the agent when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
umodel_game_listList supported gamesA
List games supported by umodel. With tags=true shows the short tags usable with -game=/gameTag. Check this BEFORE any list/export/save call: if the user's game appears (e.g. Roco Kingdom: World -> roco), remember it via umodel_session_set { gameTag } so later calls don't pop the blocking engine-version GUI dialog.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | true: show -taglist (short tags); false (default): -gamelist |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full weight. It discloses that not setting the gameTag causes a blocking engine-version GUI dialog later, and describes the tag format with an example (Roco Kingdom: World -> roco). This is valuable behavioral context beyond simply 'list games'.
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, no fluff. The first sentence states the core purpose, the second adds the parameter option and a critical workflow warning. 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?
This simple one-parameter tool is fully covered: purpose, parameter behavior, usage timing, a behavioral warning, and an example of output format. No output schema is needed, and the guidance is complete for an agent to use it 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?
The schema already covers the 'tags' parameter with a description of true/false behavior, so the baseline is 3. The description adds practical meaning by explaining that tags are 'usable with -game=/gameTag' and giving a concrete example, which goes 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 clearly states 'List games supported by umodel' with a specific verb and resource. It distinguishes itself from sibling list tools like umodel_list_objects by focusing on the game list, and further specifies the optional tags behavior.
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 gives explicit timing guidance: 'Check this BEFORE any list/export/save call'. It also explains the downstream workflow: remember the gameTag via umodel_session_set to avoid the blocking dialog, which is a clear when-to-use instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
umodel_list_objectsList contents of a packageC
Run 'umodel -list ' to list objects contained in a package.
| Name | Required | Description | Default |
|---|---|---|---|
| json | No | Return machine-readable JSON instead of formatted text. | |
| skip | No | Number of (filtered) lines to skip (pagination). | |
| limit | No | Max (filtered) lines to return (pagination). | |
| filter | No | Case-insensitive substring filter applied to output lines. | |
| aesKeys | No | AES keys for encrypted pak files (-aes=). Overrides session. | |
| gameTag | No | Game tag override (-game=), e.g. ue4.27 or an official tag like roco. Cooked UE4/5 games REQUIRE a tag — without it umodel pops a blocking GUI dialog. See umodel_game_list. | |
| package | Yes | Package name (with or without extension), wildcard, or full file path | |
| gamePath | No | Game installation directory (-path=). Overrides session. If unknown, ask the user first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'list objects' without mentioning the read-only nature, output format, or the requirement for gameTag with cooked games (though the schema description hints at this). This is insufficient.
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 front-loads the command syntax and purpose. Every word is necessary, 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 8 parameters and no output schema, the one-line description is inadequate. It fails to mention filtering, pagination, encryption, or what the return value looks like, leaving significant gaps for the 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% with detailed descriptions for all 8 parameters, so the baseline is 3. The description adds no extra parameter semantics, but the schema already provides rich meaning.
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 lists objects in a package and provides the exact command syntax. It differentiates from sibling tools like umodel_list_packages by specifying the resource (objects vs packages), though it doesn't explicitly name alternatives.
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 given on when to use this tool versus alternatives like pak_list or umodel_package_info. It simply says to run the command, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
umodel_list_outputShow exported files directory treeA
List the folder structure and files produced by umodel_export/umodel_save, with sizes. Use this after an export to see what was unpacked.
| Name | Required | Description | Default |
|---|---|---|---|
| maxDepth | No | Max folder depth to expand (default 8) | |
| directory | No | Directory to inspect. Defaults to session outputDir. | |
| maxEntries | No | Max entries to show (default 400) |
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 discloses that it lists files with sizes from export/save outputs, implying a read-only inspection. It doesn't mention side effects, but for a listing operation this is adequate.
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 concise sentences, each providing value: the first states what it lists, the second gives usage timing. No redundancy or filler.
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 list tool with 3 optional params and no output schema, the description provides purpose and usage context. It doesn't deeply describe return format, but mentions 'with sizes' as a hint. Schema covers parameters, making it 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?
The input schema has 100% coverage of parameter descriptions, so the baseline is 3. The description doesn't add parameter-specific details beyond the schema, but it indirectly hints at output characteristics (sizes) that relate to maxEntries/depth.
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 lists folder structure and files from umodel_export/umodel_save with sizes, using a specific verb and resource. It distinguishes itself from sibling list tools by tying to export/save outputs.
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?
Explicitly provides when-to-use context: 'Use this after an export to see what was unpacked.' It doesn't mention alternatives or when-not-to-use, but the context is clear against siblings like umodel_list_objects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
umodel_list_packagesFind package files in a game directoryA
Recursively scan a directory for Unreal package files (.pak/.upk/.uasset/.ut2/...) so you know what to pass to other tools. The directory should come from the user — ask which game directory to unpack before scanning.
| Name | Required | Description | Default |
|---|---|---|---|
| json | No | Return machine-readable JSON instead of formatted text. | |
| limit | No | Max number of files to return (default 500) | |
| directory | No | Directory to scan. Defaults to session gamePath. | |
| extensions | No | Extensions to look for (without dot). Default: pak,upk,u,ut2,ut3,uasset,umap,xxx,ukx |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It discloses that scanning is recursive, what file types are targeted, and that the tool is meant for discovery ('so you know what to pass'), implying a non-destructive operation. It doesn't detail edge cases like symlink handling or empty results, but for a file-listing tool this is reasonably 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 two sentences with no filler. The first sentence packs the action, target, extensions, and purpose; the second gives a clear user-interaction instruction. Information is front-loaded and every part 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 the tool has 4 parameters, no annotations, and no output schema, the description covers the essential aspects: what it does, why it's used, and the interaction requirement. It doesn't mention return format or explicitly contrast with siblings, but the purpose is clear enough for an agent to select and invoke it 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%, so the baseline is 3. The description adds a bit of value by giving concrete extension examples and emphasizing that the directory should come from the user, but it doesn't deepen parameter semantics 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?
The description states a specific action ('Recursively scan a directory') with a clear resource ('Unreal package files') and example extensions. It also explains the downstream purpose ('so you know what to pass to other tools'), which distinguishes it from sibling tools like umodel_list_objects (lists objects inside packages) and pak_list (lists contents of archives).
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 explicitly instructs the agent to ask the user for the game directory before scanning, providing a clear prerequisite. It also frames the tool as a discovery/feed step for other tools, which implies when to use it (before export/extract operations). However, it doesn't explicitly mention alternatives or negations, so it's not a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
umodel_package_infoShow package infoB
Run 'umodel -pkginfo ' to display package summary (name table, export table).
| Name | Required | Description | Default |
|---|---|---|---|
| json | No | Return machine-readable JSON instead of formatted text. | |
| aesKeys | No | AES keys for encrypted pak files (-aes=). Overrides session. | |
| gameTag | No | Game tag override (-game=), e.g. ue4.27 or an official tag like roco. Cooked UE4/5 games REQUIRE a tag — without it umodel pops a blocking GUI dialog. See umodel_game_list. | |
| package | Yes | Package name, wildcard, or full file path | |
| gamePath | No | Game installation directory (-path=). Overrides session. If unknown, ask the user first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only says to run an external command. It does not mention that the tool wraps an executable, may require a game tag to avoid a blocking GUI dialog, or what happens on failure. The description adds no transparency beyond the command itself.
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 front-loads the command and core output. Every word earns its place, with no extraneous detail.
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 and no annotations, the description should explain return values and behavioral context. It only mentions 'name table, export table' but does not describe output format, error handling, or the critical game tag requirement that the schema highlights. The tool is more complex than the description conveys.
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 baseline is 3. The description only references the <package> placeholder and adds no meaning beyond the schema. It does not clarify parameter interactions or the JSON option, but the schema already covers those adequately.
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 runs 'umodel -pkginfo <package>' to display a package summary including name table and export table. This specific verb+resource combination distinguishes it from sibling tools like umodel_list_packages or umodel_list_objects.
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: use this to show package info. However, it does not explicitly mention when to use this tool versus alternatives or state any exclusions, so guidance is minimal but not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
umodel_saveSave raw packagesA
Run 'umodel -save' to copy raw package files (.upk/.uasset + .uexp/.ubulk) out of a game directory, e.g. to unpack a cooked game without converting. Output defaults to the Downloads folder.
| Name | Required | Description | Default |
|---|---|---|---|
| out | No | Output directory (-out=). Defaults to session outputDir or Downloads/umodel-export. | |
| json | No | Return machine-readable JSON instead of formatted text. | |
| aesKeys | No | AES keys for encrypted pak files (-aes=). Overrides session. | |
| gameTag | No | Game tag override (-game=), e.g. ue4.27 or an official tag like roco. Cooked UE4/5 games REQUIRE a tag — without it umodel pops a blocking GUI dialog. See umodel_game_list. | |
| package | Yes | Package name, wildcard, or full file path | |
| gamePath | No | Game installation directory (-path=). Overrides session. If unknown, ask the user first. | |
| timeoutMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the copy operation and default output location (Downloads folder), which is helpful, but does not mention whether existing files are overwritten, whether directories are created, or any side effects. It adds some context but not rich behavioral 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?
The description is two sentences, front-loaded with the command and purpose, and contains no filler. Every clause adds useful information about what the tool does and its default behavior.
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 annotations and output schema, the description covers the core purpose and output location, while the schema handles parameter details. It does not explain the return format or mention the need for a game tag (though the schema does), but for a simple copy operation 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?
The schema already provides descriptions for 6 of 7 parameters (86% coverage), so the bar is low for additional meaning. The description adds a simplified note about the default output (Downloads folder), which largely mirrors the schema's more detailed 'session outputDir or Downloads/umodel-export'. No substantial new parameter semantics 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 names the exact command ('umodel -save'), states the specific action (copy raw package files), and lists the file types (.upk/.uasset + .uexp/.ubulk). It clearly distinguishes this from siblings like umodel_export by emphasizing 'without converting'.
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 provides a concrete use case ('to unpack a cooked game without converting') and implies that conversion tools are alternatives. It doesn't explicitly name a sibling tool as the alternative, but the 'without converting' phrase offers clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
umodel_session_getShow current session settingsA
Show the in-memory session settings (umodel exe, game directory, output directory, AES keys). No config file is used; settings live only for this server session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a key behavioral trait ('in-memory' and 'no config file'), which helps the agent understand persistence. However, it does not explicitly state whether the operation is read-only, what the return value looks like, or any error conditions.
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 concise sentences that front-load the main purpose and then add a crucial caveat about persistence. No redundant wording; every word adds value.
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 getter with no parameters and no output schema, the description is fairly complete. It explains the in-memory nature and lists the contained settings. It could have briefly mentioned the output format (e.g., a summary or mapping), but the tool's simplicity makes this acceptable.
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?
The tool has zero parameters, so the description needs to explain no inputs. The description correctly focuses on what the tool outputs rather than inputs, matching the baseline for parameterless tools.
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 clear verb ('Show') and a specific resource ('in-memory session settings') and enumerates the contained items (umodel exe, game directory, output directory, AES keys). This unambiguously distinguishes it from sibling tools like umodel_session_set or umodel_game_list.
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 its use for inspecting current session state without persistence, but it does not explicitly state when to prefer it over alternatives or mention the counterpart umodel_session_set. It provides context but relies on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
umodel_session_setRemember session settingsA
Store settings in the in-memory session (nothing is written to disk). NOTE: most values (gamePath/gameTag/aesKeys/pakAesKey/pakAesMode) are auto-remembered whenever you pass them to any tool, so you rarely need this tool — use it only to set values ahead of time, clear them (empty string), or configure pure settings: umodelExe (user-confirmed), outputDir, pakAesMode. IMPORTANT: umodelExe and gamePath must come from the user — ask the user for the umodel executable path and the game/pak directory before setting them; never guess. Only fall back to umodel_find_exe when the user does not know the path or the given path is wrong. Pass an empty string to clear a field. outputDir defaults to the Downloads folder when unset.
| Name | Required | Description | Default |
|---|---|---|---|
| aesKeys | No | AES keys (-aes=) | |
| gameTag | No | Default game tag (-game=) | |
| gamePath | No | Game / pak directory (ask the user first) | |
| outputDir | No | Export output directory (-out=). Default: Downloads/umodel-export | |
| pakAesKey | No | AES key (hex, 0x prefix optional) for pak index decryption | |
| umodelExe | No | Path to the umodel executable the USER confirmed as the right version for the target game (ask first). Setting this marks the exe as confirmed; auto-discovery alone leaves it unconfirmed. | |
| pakAesMode | No | Pak AES mode: standard, or bitflip for games with custom bit-flipped AES. Pass "" to clear. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses persistence (in-memory only), auto-remember behavior, clearing via empty string, the outputDir default, and the requirement that umodelExe and gamePath must come from the user. This is far beyond what the schema shows.
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 dense but every clause adds value: main purpose, auto-remember note, user-confirmation requirement, fallback guidance, clearing semantics, and default. It is structured with clear signposts ('NOTE', 'IMPORTANT') and no filler.
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 7-parameter state-mutation tool with no annotations and no output schema, the description covers all necessary decisions: when to invoke, how to clear, defaults, user-confirmation, and alternatives. It leaves little room for mis-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?
Though schema coverage is 100%, the description adds operational meaning: it groups parameters by whether they are auto-remembered or need explicit setting, explains that empty strings clear values, and documents the Downloads default for outputDir. This helps the agent decide what to pass.
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 opens with 'Store settings in the in-memory session' and clarifies nothing is written to disk, giving a specific verb and resource. It also distinguishes this tool from auto-remembered values and sibling tools like umodel_find_exe, making its scope unambiguous.
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?
It explicitly states 'use it only to set values ahead of time, clear them (empty string), or configure pure settings' and identifies when not to use it ('most values are auto-remembered'). It also names the alternative fallback, umodel_find_exe, with a clear condition for using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
umodel_versionVerify umodel executableA
Run 'umodel -version' to verify the executable works. Pass exe to test a new path; if it works it is remembered in the session.
| Name | Required | Description | Default |
|---|---|---|---|
| exe | No | Executable path to test (and remember if it works). Defaults to session. |
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 discloses the command execution and the session memory side effect, but does not detail output format or error behavior. Key behavior is 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?
Two sentences, direct, front-loaded with the command. No unnecessary words.
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, the description explains the primary action, the parameter behavior, and the side effect. It would benefit from stating what it returns, but the core context is 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?
The schema already documents the exe parameter with 100% coverage. The description reiterates the same information without adding significant new meaning, so it meets the baseline for 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?
The description clearly states the tool runs 'umodel -version' to verify the executable works, with a specific verb and resource. It distinguishes itself from sibling tools like umodel_find_exe by focusing on version verification.
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?
It provides clear context that exe is optional and used to test a new path, with a side effect of remembering if it works. It implies use before other umodel operations, but does not explicitly mention alternatives or when not to use.
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. Dates show when Glama detected each change.
13 tool updates
v0.3.0- First observed
pak_extract - First observed
pak_list - First observed
umodel_export - First observed
umodel_find_exe - First observed
umodel_game_list - First observed
umodel_list_objects - First observed
umodel_list_output - First observed
umodel_list_packages - First observed
umodel_package_info - First observed
umodel_save - First observed
umodel_session_get - First observed
umodel_session_set - First observed
umodel_version
TDQS
Each tool targets a distinct action: session management, exe discovery, directory scanning, pak parsing, export/save, and listing outputs/objects. Even similar list tools are differentiated by input type (directory, pak index, package, output folder). Descriptions clearly specify each tool's unique role.
All tools share a umodel_ or pak_ prefix, providing a clear family relationship, but the verb-noun structure is inconsistent: some are verb-first (umodel_list_objects, umodel_export), some noun-first (umodel_game_list, umodel_package_info), and some use noun-verb pairs (umodel_session_get/set). While readable, there is no uniform naming pattern.
13 tools is well-scoped for an asset extraction workflow. Each tool earns its place, covering exe management, session settings, scanning, listing, exporting, saving, and pak operations without redundancy.
The tool set covers the full pipeline from finding the umodel executable and setting session config to scanning directories, listing packages/paks, exporting/saving assets, and verifying output. Necessary helpers like game tag lookup and version checking are included, leaving no significant gaps for the domain.
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
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server for Unreal Engine that uses Unreal Python Remote Execution20137115MIT
- AlicenseAqualityBmaintenanceMCP server for Lineage 2 / Unreal Engine 2.5 asset modding, enabling texture extraction, modification, repackaging, and procedural mesh generation.18MIT
- 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
- FlicenseAqualityBmaintenanceMCP server that enables AI assistants to inspect and build Fortnite maps by driving a running Unreal Editor for Fortnite instance via Python, exposing tools for spawning actors, browsing content, and executing editor operations.111-
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/CHA1007/Umodel-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server