Minecraft Structure Lab
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STRUCTURELAB_CONNECTION | No | Absolute path to the Structure Lab connection file (generated by the mod as `<instance>/structurelab/connection.json`) when using a non-default Modrinth profile or instance. |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| lab_statusA | Get world identity, limits, connection readiness, and active job progress. |
| list_blocksC | Find up to 200 block IDs and their valid properties from the live game. |
| validate_structureA | Validate an existing compressed NBT structure against the game's registry and limits. |
| submit_structureA | Replace the active structure and automatically capture all angles. Returns a job immediately. Optional views JSON is a list of {id,label,position:[x,y,z],spawn,angles:[{id,yaw,pitch}]}. Coordinates are relative to structure origin; position is feet height, eye_height defaults to 1.62. Embedded view pads are extracted automatically. Poll job_status until complete or failed. |
| job_statusC | Read progress for this exact revision; rejects stale job IDs. |
| recapture_viewsA | Capture the placed build without replacing blocks. Returns a new revision and capture set. Optional sidecar defines the replacement set of viewpoints; omitted reuses all current views. After success, old screenshots are deleted using the normal retention policy. |
| cancel_jobC | Request cancellation of the current revision. |
| list_capturesA | List labeled screenshot metadata without returning all image bytes. |
| get_captureC | Return a real 1920x1080 Minecraft screenshot as MCP image content. |
| inspect_blocksA | Read authoritative block states at relative positions, for placement and cleanup verification. |
| generate_structureB | Generate NBT from set/fill/room operations; no Python code execution required. set: {op:'set',pos:[x,y,z],block:'minecraft:stone',properties:{}} fill: {op:'fill',start:[x,y,z],end:[x,y,z],block:'minecraft:stone'} room: {op:'room',start:[x,y,z],end:[x,y,z],wall:'oak_planks',floor:'stone',roof:'oak_planks'} A views list uses the submit_structure schema. Use the Python Structure library for typed block entities. |
| generate_example_houseC | Generate the furnished house fixture. Revision 2 removes the gold sentinel and changes bedroom carpet. |
| export_structureC | Export a verified revision as clean NBT plus a vanilla 26.2 datapack ZIP. No lab blocks survive. |
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 13 tools
Most tools target clearly distinct actions: generation, validation, submission, capture, export, and cancellation are well separated. Minor confusion is possible between lab_status and job_status since both report progress, but the descriptions clarify that one is general and the other is revision-specific.
The vast majority of tools follow a clear snake_case verb_noun pattern such as list_blocks, validate_structure, and export_structure. The two status tools, lab_status and job_status, are noun-style deviations, but the pattern is otherwise predictable and easy to navigate.
Thirteen tools is well-scoped for a Minecraft structure lab, covering registry inspection, structure generation, validation, submission, screenshot capture, export, and job control. Each tool serves a meaningful role in the workflow without redundancy or bloat.
The toolset provides strong lifecycle coverage: generate, validate, submit, recapture, inspect, export, and cancel. The main gap is the lack of an explicit delete/clear operation for the active structure, though submit_structure effectively replaces it and cancel_job handles in-progress work.