Sauerbraten MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| client | No | Absolute path to the patched Sauerbraten client executable (--client). For source builds this should be passed explicitly; otherwise the server checks SAUER_MCP_CLIENT, then sauer_client on PATH, then the Debian installation path. | |
| socket | Yes | Absolute path to the private Unix socket printed by the launcher (--socket). The server attaches to the running game through this socket. | |
| SAUER_MCP_CLIENT | No | Environment variable used as a fallback for the patched Sauerbraten client executable when --client is not provided. |
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": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| editor_stateA | Read current map/session/revision, camera and editor capabilities. Read before mutations. |
| operation_statusA | Look up a mutation UUID; unknown means do not blindly repeat it. |
| map_newB | Create a native map (bottom half solid). Scale 10..16; refuses unsaved changes. |
| map_openB | Validate and open a catalog map or saved artifact; refuses an unsaved map. |
| map_catalogB | List trusted local maps. Use opaque map_id values with map_open. |
| region_readC | Read octree leaves in half-open world bounds, without subdividing geometry. |
| geometry_fillC | Replace an aligned selection with solid or empty cubes. count is in cells, grid in world units. |
| geometry_face_setB | Set four absolute face-axis depths (0..8 in grid/8 units) on each exact nonempty leaf. Face=selection.orient; order (R,C)=00,10,01,11; X uses Y/Z, Y uses Z/X, Z uses X/Y. Atomic and undoable; invalid/zero-volume shapes rejected. |
| geometry_vertex_setB | Set one logical corner (XYZ bits) to absolute local XYZ coordinates 0..8 in grid/8 units on each exact nonempty leaf. Neighbors/coincident corners are not moved implicitly. Atomic and undoable; invalid shapes rejected. |
| texture_catalogB | List texture references. Preserve map_epoch and vslot_generation when applying. |
| mapmodel_catalogB | List mapmodel registry references for entity_create/update. |
| texture_applyC | Set exactly one orientation (0..5) or all six faces of an aligned selection. |
| material_applyC | Apply a built-in volume/clip material to an aligned selection. |
| entity_listC | List entities and generation-bound references, optionally in world bounds. |
| entity_createA | Create light/playerstart/mapmodel at explicit coordinates with five attrs; no camera/drop fixups. |
| entity_updateC | Replace position/attrs of a referenced entity. Attached entities are unsupported. |
| entity_deleteC | Delete a referenced entity as one undoable step. |
| history_undoB | Undo the top shared manual/MCP history step; read state afterwards. |
| history_redoC | Redo the top shared manual/MCP history step; read state afterwards. |
| camera_setB | Set edit camera coordinates, yaw/pitch and FOV; returns a view_revision for capture. |
| view_captureC | Capture the requested map/view revision as PNG image content. |
| map_save_asC | Validate reload and publish an immutable map snapshot; returns revision_saved and conditional clean_ack. |
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 22 tools
Each tool targets a distinct resource+action: entities (create/update/delete/list), geometry (fill/face_set/vertex_set), textures (catalog/apply), maps (new/open/save_as/catalog), and history (undo/redo). Minor possible confusion between material_apply vs texture_apply and between the three *_catalog tools, but descriptions clearly scope them to different domains. The three geometry mutation tools are clearly separated by the type of shape manipulation.
Dominant pattern is noun_verb (entity_create, geometry_fill, texture_apply, map_open), applied consistently across domains. A few outliers like editor_state, operation_status, and map_save_as are noun_noun or verb-phrase forms rather than the strict verb at end, but still readable and predictable.
22 tools is above the ideal 3-15 band but justified by a rich 3D map editor spanning entities, geometry, textures, maps, camera, and history. Each domain contributes a small, purposeful cluster rather than redundant tools, so the count feels earned though slightly heavy.
Covers a strong lifecycle: map new/open/save/catalog, entity CRUD+list, geometry mutation, texture catalog/apply, material apply, camera, history undo/redo, operation_status, and region_read for readback. Minor gaps exist (no material catalog listing, no explicit entity get-by-ref beyond entity_list), but agents can work around these.