utmt-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UTMT_CLI_PATH | No | Full path to the UndertaleModCli executable. Optional if the executable is already in PATH or if the path is provided as a tool parameter. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| utmt-infoA | Get overview info for a GameMaker data file. Returns JSON with project name, GM version, isYYC flag, and resource counts for all entity types. |
| utmt-list-entitiesA | List entities of a given type from a GameMaker data file. Returns JSON array with index, name, and brief properties. Supported types: sprites, sounds, scripts, code, rooms, gameobjects, fonts, backgrounds, paths, shaders, strings, timelines, embeddedtextures, embeddedaudio, extensions, sequences, particlesystems. |
| utmt-get-entityA | Get detailed info for a single entity from a GameMaker data file. Returns JSON with all properties. Supported types: sprite, sound, script, code, room, gameobject, font, string, generalinfo. For 'string' type, use the index as the name parameter. For 'generalinfo', name parameter is ignored. |
| utmt-decompile-codeA | Decompile a code entry from a GameMaker data file back to GML source. Returns the decompiled GML text. Not available for YYC-compiled games. |
| utmt-export-entityA | Export a single entity from a GameMaker data file to disk. Supported types: sprite, sound, code, embeddedtexture. Sprites export as PNG frames, sounds as ogg/wav, code as decompiled .gml, textures as PNG. |
| utmt-searchA | Search for entities by name pattern across a GameMaker data file. Case-insensitive substring match. Returns JSON array with type, index, and name of matches. |
| utmt-get-room-assetsA | Get all assets used in a room: sprites (with dimensions and which objects use them), objects (with position and sprite), code entries (from events), and layer summary. One call replaces multiple round-trips. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool has a distinct purpose: info provides overview, list-entities enumerates by type, get-entity retrieves a single entity, search finds by name, decompile-code produces GML source, export-entity writes to disk, and get-room-assets aggregates room data. There is no meaningful overlap; even get-entity and decompile-code are clearly separated by metadata vs. source code.
All tools share the 'utmt-' prefix, and most follow a consistent verb-noun pattern (list-entities, get-entity, export-entity). The exceptions 'utmt-info' and 'utmt-search' are still concise and natural, and the overall convention is predictable and uniform.
With 7 tools, the server is well-scoped. Each tool covers a distinct operation needed for GameMaker data file analysis—from high-level info to detailed lookup, decompilation, export, and room-level asset aggregation—without redundancy.
The core workflow of listing, searching, inspecting, decompiling, and exporting is well covered. However, some entity types that can be listed (e.g., backgrounds, paths, shaders) cannot be retrieved in detail or exported, leaving minor gaps for those assets.