trenchbroom-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ERICW_TOOLS_DIR | No | Directory containing ericw-tools binaries (qbsp, vis, light). If not set, tools are looked up on PATH. |
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 |
|---|---|
| map_overviewA | Summarize a .map file: entity/brush counts, bounds, format, TrenchBroom layers/groups, textures in use, and entity class histogram. |
| list_entitiesA | List entities with index, classname, targetname, origin, brush count, and bounds. Optionally filter by classname substring or a property key/value. |
| get_entityA | Full detail for one entity: all properties, brush list with per-brush bounds and face count. |
| add_entityA | Add a point entity (e.g. a light, monster, item). Writes the file; TrenchBroom-HL reloads it automatically, but asks first - and defaults to KEEPING the editor version - if the document has unsaved edits. |
| set_entity_propertiesA | Set and/or remove properties on an existing entity. Writes the file; TrenchBroom-HL reloads it automatically, but asks first - and defaults to KEEPING the editor version - if the document has unsaved edits. |
| delete_entityA | Delete an entity (and all its brushes). Refuses to delete worldspawn. Writes the file; TrenchBroom-HL reloads it automatically, but asks first - and defaults to KEEPING the editor version - if the document has unsaved edits. |
| add_brush_boxA | Add an axis-aligned box brush. Defaults to worldspawn (entity 0); pass entity_index to add to a brush entity like func_door. Matches the map's existing texture format; on an empty map inside a Shogo workspace it writes Standard, which is the only format that game's converter reads. Writes the file; TrenchBroom-HL reloads it automatically, but asks first - and defaults to KEEPING the editor version - if the document has unsaved edits. |
| delete_brushA | Delete one brush from an entity. Writes the file; TrenchBroom-HL reloads it automatically, but asks first - and defaults to KEEPING the editor version - if the document has unsaved edits. |
| translate_entityA | Move an entity by a delta: shifts all brush geometry (keeping textures locked in Valve format) and/or the origin property. Writes the file; TrenchBroom-HL reloads it automatically, but asks first - and defaults to KEEPING the editor version - if the document has unsaved edits. |
| undo_last_editA | Restore the map to its state before the most recent edit made by this server (snapshot-based; one step per call). Writes the file; TrenchBroom-HL reloads it automatically, but asks first - and defaults to KEEPING the editor version - if the document has unsaved edits. |
| list_backupsA | List snapshot backups (made automatically before every edit) for a map. |
| render_previewA | Render a 2D orthographic preview of the map as an SVG file: brush footprints (worldspawn gray, brush entities orange) and point entities (blue dots with labels). Views: top (X/Y), front (X/Z), side (Y/Z). |
| compile_mapA | Compile a .map with ericw-tools and report what the compiler said. Runs qbsp by default; pass stages for a full build. Detects leaks, which the compiler reports as a warning and still exits successfully, and returns the coordinate the leak escaped from. |
| compile_shogo_mapA | Compile a .map for Shogo: Mobile Armor Division and report what the compiler produced. This is a DIFFERENT toolchain from compile_map - Shogo uses the SDK's Processor.exe (.map -> .ed -> .dat), not ericw-tools, and the two are not interchangeable. Drives the Shogo mapping kit, so it inherits the compiler's documented traps rather than repeating them. Reports light map nodes, which is the number that says whether the world is lit or will render black. |
| launch_mapA | Launch a compiled map in a Quake engine. Copies the .bsp into the game's maps directory, starts the engine on that map, and reports anything the engine said if it refused to start. Compile the map first: the engine loads the .bsp, not the .map. |
| fgd_classesA | List entity classes defined in an FGD file (name, type, description). Use this to learn what entities a game supports. |
| fgd_classA | Full definition of one FGD entity class with inherited properties and spawnflags resolved from its base classes. |
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 17 tools
Each tool targets a distinct operation: map info, undo, preview, two separate compilers, FGD queries, entity CRUD, brush add/delete, and translation. No two tools have overlapping purposes; even compile_map and compile_shogo_map are clearly differentiated by toolchain.
Most tools follow a verb_noun pattern in snake_case (list_entities, add_entity, delete_brush, translate_entity). Two tools (fgd_classes, fgd_class) use a noun-first structure, but the pattern is still predictable and all names are lowercase with underscores, so minor deviation only.
With 17 tools, the count is slightly above the typical 3-15 range, but each tool serves a distinct need for map editing, compilation, and FGD introspection. The scope is broad but well-justified, making the count reasonable.
The tool surface covers the full lifecycle: map analysis, editing (add/update/delete entities and brushes), transformation (translate), undo/backups, preview rendering, compilation for two engines, and FGD entity lookups. No significant gaps for the stated purpose of TrenchBroom map manipulation.