Skip to main content
Glama

Umodel-MCP

License: MIT GitHub

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_extract are pure TypeScript implementations that parse the .pak index directly and extract raw .uasset/.uexp files — no umodel download required

  • Encrypted 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-mcp
codex mcp add umodel npx "-y" "umodel-mcp"
git clone git@github.com:CHA1007/Umodel-MCP.git
cd Umodel-MCP
npm install
npm run build

Then 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

umodel_session_get

Show the current in-memory session settings

umodel_session_set

Remember session settings (in memory only, nothing written to disk)

umodel_find_exe

Auto-search for the umodel executable (fallback only, when the user does not know the path)

umodel_version

-version

Verify the executable (pass exe to test and remember a new path)

umodel_game_list

-gamelist / -taglist

List supported games and their -game= tags

umodel_list_packages

Recursively scan a directory for .pak/.upk/.uasset/.ut2 package files

umodel_list_objects

-list

List objects in a package (filtering and pagination supported)

umodel_package_info

-pkginfo

Show package info (name/export tables)

umodel_export

-export

Export meshes/textures/animations/sounds (psk, gltf, png, dds…)

umodel_save

-save

Copy raw package files out as-is (.upk + .uexp/.ubulk)

umodel_list_output

Show the exported directory tree (with file sizes)

pak_list

Parse the .pak index directly (no umodel), AES-encrypted indexes supported, search asset paths

pak_extract

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 tools
pak_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
outNoOutput directory. Defaults to <session outputDir>/pak.
jsonNoReturn machine-readable JSON instead of formatted text.
aesKeyNoAES key (hex, 0x prefix optional) for pak index decryption. Overrides session pakAesKey.
pakDirNoPak directory. Defaults to session gamePath.
aesModeNoDecryption mode. Overrides session pakAesMode (default standard).
filtersYesCase-insensitive substrings to match, e.g. ['SKM_PC2']
maxFilesNoMax files to extract (default 200)
pakFilterNoOnly scan paks whose file name contains this substring

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonNoReturn machine-readable JSON instead of formatted text.
limitNoMax entries to return (default 200)
aesKeyNoAES key (hex, 0x prefix optional) for pak index decryption. Overrides session pakAesKey.
pakDirNoPak directory. Defaults to session gamePath.
aesModeNoIndex decryption mode. Overrides session pakAesMode (default standard).
filtersYesCase-insensitive substrings to match, e.g. ['SKM_PC2']
pakFilterNoOnly scan paks whose file name contains this substring

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
outNoOutput directory (-out=). Defaults to session outputDir or Downloads/umodel-export.
jsonNoReturn machine-readable JSON instead of formatted text.
lodsNoExport all mesh LOD levels (-lods)
groupsNoUse group names for directories instead of class names (-groups, UE1-3)
objectNoSingle object name to export (positional <object>)
soundsNoAllow sound export (-sounds)
uncookNoUse original package names for output dirs (-uncook, UE3)
aesKeysNoAES keys for encrypted pak files (-aes=). Overrides session.
gameTagNoGame 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.
objectsNoAdditional object filters (-obj=name, repeatable)
packageYesPackage name, wildcard, or full file path
scriptsNoExport UnrealScript as .uc (-uc)
gamePathNoGame installation directory (-path=). Overrides session. If unknown, ask the user first.
classNameNoClass of the object (positional <class>)
timeoutMsNoOverride invocation timeout (ms)
meshFormatNoMesh export format (default psk)
thirdPartyNoAllow 3rd-party asset export: ScaleForm/FaceFX (-3rdparty)
noOverwriteNoDo not overwrite existing files (-nooverwrite)
textureFormatNoTexture format (default tga; dds keeps original compression)

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dirsNoExtra directories to search deeply (e.g. a folder the user vaguely remembers).
jsonNoReturn machine-readable JSON instead of formatted text.
verifyNoRun -version on the newest candidate and remember it if it works.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNotrue: show -taglist (short tags); false (default): -gamelist

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonNoReturn machine-readable JSON instead of formatted text.
skipNoNumber of (filtered) lines to skip (pagination).
limitNoMax (filtered) lines to return (pagination).
filterNoCase-insensitive substring filter applied to output lines.
aesKeysNoAES keys for encrypted pak files (-aes=). Overrides session.
gameTagNoGame 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.
packageYesPackage name (with or without extension), wildcard, or full file path
gamePathNoGame installation directory (-path=). Overrides session. If unknown, ask the user first.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxDepthNoMax folder depth to expand (default 8)
directoryNoDirectory to inspect. Defaults to session outputDir.
maxEntriesNoMax entries to show (default 400)

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonNoReturn machine-readable JSON instead of formatted text.
limitNoMax number of files to return (default 500)
directoryNoDirectory to scan. Defaults to session gamePath.
extensionsNoExtensions to look for (without dot). Default: pak,upk,u,ut2,ut3,uasset,umap,xxx,ukx

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonNoReturn machine-readable JSON instead of formatted text.
aesKeysNoAES keys for encrypted pak files (-aes=). Overrides session.
gameTagNoGame 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.
packageYesPackage name, wildcard, or full file path
gamePathNoGame installation directory (-path=). Overrides session. If unknown, ask the user first.

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
outNoOutput directory (-out=). Defaults to session outputDir or Downloads/umodel-export.
jsonNoReturn machine-readable JSON instead of formatted text.
aesKeysNoAES keys for encrypted pak files (-aes=). Overrides session.
gameTagNoGame 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.
packageYesPackage name, wildcard, or full file path
gamePathNoGame installation directory (-path=). Overrides session. If unknown, ask the user first.
timeoutMsNo

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
aesKeysNoAES keys (-aes=)
gameTagNoDefault game tag (-game=)
gamePathNoGame / pak directory (ask the user first)
outputDirNoExport output directory (-out=). Default: Downloads/umodel-export
pakAesKeyNoAES key (hex, 0x prefix optional) for pak index decryption
umodelExeNoPath 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.
pakAesModeNoPak AES mode: standard, or bitflip for games with custom bit-flipped AES. Pass "" to clear.

TDQS

A5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
exeNoExecutable path to test (and remember if it works). Defaults to session.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 13 tool updatesv0.3.0
    • First observedpak_extract
    • First observedpak_list
    • First observedumodel_export
    • First observedumodel_find_exe
    • First observedumodel_game_list
    • First observedumodel_list_objects
    • First observedumodel_list_output
    • First observedumodel_list_packages
    • First observedumodel_package_info
    • First observedumodel_save
    • First observedumodel_session_get
    • First observedumodel_session_set
    • First observedumodel_version

TDQS

A3.9/5.0
Disambiguation5/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

Appeared in Searches

Latest Blog Posts

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