minecraft-structure-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MC_CLIENT_JAR | No | A Minecraft client jar, e.g. %APPDATA%/.minecraft/versions/1.20.1/1.20.1.jar. If unset, the newest version in your launcher's versions folder (or a Fabric Loom cache) is used. | |
| MCSTRUCT_WORKSPACE | No | Where .nbt files and renders go (default ~/minecraft-structures). | ~/minecraft-structures |
| MCSTRUCT_EXTRA_ASSETS | No | Mod jars or resource folders (containing assets/) whose blocks you want to render, separated by ; on Windows and : elsewhere. |
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
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| new_structureB | Create an empty structure (all positions are structure void until you place blocks). minecraft_version sets the saved DataVersion: use the OLDEST version you target (newer games upgrade it). |
| open_structureC | Open a structure .nbt file (relative paths are inside the workspace). |
| save_structureC | Save as a gzipped structure .nbt (default: /.nbt). |
| list_structuresB | Structures open in this session, and .nbt files in the workspace. |
| structure_infoC | Size, block count and the most used block states. |
| resize_structureB | Change the size (blocks outside the new size are dropped). |
| set_blocksB | Place many blocks at once: [{"x":1,"y":0,"z":2,"state":"oak_stairs[facing=east,half=bottom]"}, ...]. state "void" removes the position (left untouched when the structure is placed); "air" places air. |
| fillB | Fill a box (inclusive corners). Modes: replace = every position; hollow = shell of |
| replace_blocksA | Replace one block (name or full state) with another, in the whole structure or a box. A bare name (e.g. 'stone_bricks') matches every state of that block. |
| copy_regionC | Copy a box (from |
| set_block_nbtC | Attach block entity NBT, e.g. chest contents: {Items:[{Slot:0b,id:"minecraft:candle",Count:2b}]} (1.20.1 item format: id + Count). |
| undoC | Undo the last edit (up to 30 steps). |
| layer_textA | One horizontal layer as a character map (rows = z, columns = x) with a legend. Cheap and exact — use it to check positions; use render/render_layer to see how it looks. |
| renderC | Isometric render with the game's textures. view = the corner you look from; cut_y hides everything above that height (see inside rooms). Also saved under /renders/. |
| render_layerB | Top-down plan of one layer (with the floor below faded), grid and coordinates. |
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 15 tools
Most tools have clearly distinct roles: lifecycle (new/open/save/list/info/resize), editing (set_blocks/fill/replace_blocks/copy_region/set_block_nbt), and inspection (layer_text/render/render_layer). The only mild overlap is between set_blocks, fill (replace mode), and replace_blocks, but the descriptions clarify explicit-list vs parametric-box vs state-substitution semantics.
The dominant pattern is verb_noun or verb_structure (new_structure, open_structure, save_structure, resize_structure, set_blocks, replace_blocks, copy_region, set_block_nbt). Minor deviations exist (structure_info and layer_text are noun-first; fill, undo, render are bare verbs), but everything remains readable and predictable.
Fifteen tools sit at the top of the well-scoped range and each maps to a real operation in a structure-editing workflow. Nothing feels redundant or padded; the inspection tools in particular earn their place as separate concerns.
CRUD-style lifecycle (new/open/save/list/info/resize), editing, undo, NBT, and visualization are all covered with no dead ends. Notable gaps are structure-level transformations (rotate/mirror) and file deletion, which an agent would have to work around manually.