Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
new_modelB

Start a new empty model (replaces the open one; models autosave).

open_modelB

Open a previously saved model by name.

list_modelsB

List saved models.

list_partsA

List the curated parts (brick, plate, tile, slope, round, misc) with their size, or search the whole LDraw library by words in the part title (e.g. 'window 1 x 2'). Size is studs along x x studs along z at rot 0, and height in plates.

list_colorsB

List LDraw colours (code, name, hex). Solid colours only unless include_special.

add_partsA

Place one or more parts. Parts that collide or are invalid are skipped and reported; the rest are placed. Returns the new part ids.

remove_partsB

Remove parts by id and/or every part touching an inclusive grid region.

fill_layersA

Build volume from colour maps, automatically packed into bricks/plates/tiles.

layers: bottom-to-top list of layers; each layer is a list of equal-length rows seen from ABOVE, first row = back, last row = front. Each character is a cell of 1 stud; '.' = empty. legend maps characters to colours, e.g. {"R": "Red", "W": 15}. Each layer is one brick (3 plates) or one plate tall depending on kind; layer i sits at y + i*height. (x, z) is the front-left corner of the map.

upright=True: each layer is instead a front-facing wall picture (first row = top, last row = bottom), one course per row, at depth z + layer index. Handy for mosaics and facades.

Cells already occupied are skipped. Seams are staggered between courses.

image_to_gridB

Downsample a picture into rows of colour letters using LEGO colours, ready for fill_layers. crop = [left, top, right, bottom] fractions (0-1) to focus on the subject. cell sets the cell's aspect ratio when height is omitted: 'stud' for top-down maps, 'brick' or 'plate' for upright walls. Transparent pixels become '.'.

build_mosaicB

Build a picture directly as a mosaic in the current model. upright: a wall facing the front, 1 stud deep (kind=plate gives fine vertical detail, kind=brick is sturdier). flat: lying on the ground, one plate thick, image top = back.

undoB

Undo the last building action.

describe_modelB

Summarise the model: bounds, part counts, and top-down colour maps of plate levels (first row = back, last = front; uppercase letters = colours in the legend). Maps are shown for levels, or every level when all_levels is set.

check_modelA

Check structure: floating groups (not connected to anything touching the ground) and loose groups (standing on the ground but not attached to the main body).

render_modelB

Render a preview sheet. views: any of front, back, left, right, top, iso_front_left, iso_front_right, iso_back_left, iso_back_right, or 'azimuth,elevation' in degrees. Default: iso_front_left, iso_back_right, front, top. reference_image adds the source picture as the first panel for side-by-side comparison. Parts are simplified (round parts and non-catalog parts show as boxes).

export_ldrA

Write the model as an LDraw .ldr file (one build step per level). Import it in Mecabricks via Workshop > File > Import. If some parts come in missing, re-export with legacy_ids=True (uses e.g. 3023 instead of 3023b).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 15 tools

Disambiguation5/5

Each tool targets a clearly distinct action and resource: model lifecycle (open/list/new), part/color discovery, placement/removal, procedural fills, image conversion, structural checks, description, rendering, and export. The only potential overlap between fill_layers and build_mosaic is resolved by their descriptions, which distinguish volume construction from direct picture mosaics.

Naming Consistency4/5

Most names follow a predictable snake_case verb_noun pattern (open_model, list_parts, add_parts, remove_parts, check_model, render_model, export_ldr). Minor deviations include undo (single verb) and image_to_grid (noun-to-noun), but overall the set is readable and consistent.

Tool Count5/5

Fifteen tools is well-scoped for a LEGO modeling server, covering discovery, construction, validation, rendering, and export without obvious redundancy. Each tool appears to earn its place in the generation workflow.

Completeness4/5

The surface covers model creation, part placement/removal, color lookup, procedural fills, image-to-grid conversion, structural checking, rendering, and LDraw export. Minor gaps exist: no direct move/rotate/edit operation for existing parts, no delete_model, and no redo, but agents can work around these by removing and re-adding parts or starting a new model.

Maintenance

ActivityMaintained
ResponsivenessNo issues