Skip to main content
Glama

brickbuilder-mcp

Show Claude a photo, get a buildable LEGO model back.

An MCP server that lets Claude design LEGO models brick by brick, usually from a reference picture, check that they actually hold together, and export them as LDraw .ldr files that Mecabricks and BrickLink Studio open directly.

Reference still of Helm's Deep next to the 41,864-part LEGO build

What it looks like

Every build below was made by Claude through this server from the photo on the left. Nothing was placed by hand.

Airliner cabin: reference photo and LEGO build

Bowling alley: reference photo and LEGO build

The models are real, buildable LEGO: standard parts in real colours, bricks laid in staggered courses, and a connectivity check that flags anything floating before export.

Related MCP server: clo3d-mcp

Setup

Needs Python 3.11+, uv, curl and unzip.

git clone https://github.com/ElRashoMacuin24/brickbuilder-mcp.git
cd brickbuilder-mcp
scripts/fetch_ldraw.sh   # downloads the LDraw parts library (~145 MB zip) into data/ldraw
uv sync
claude mcp add brickbuilder -s user -- uv --directory "$PWD" run brickbuilder-mcp

Restart Claude Code, then run /mcp and check that brickbuilder is listed. Other MCP clients work too: run uv --directory /path/to/brickbuilder-mcp run brickbuilder-mcp over stdio.

How to use it

1. Give Claude a picture and a goal

Paste or drag an image into Claude Code (or give a path) and say what you want. The more you say about scale, the better:

Build this scene in LEGO without the people. Make it minifig scale, so the chairs are just big enough for a minifig to sit in.

Build this house in LEGO, about 16 studs wide: ~/Pictures/house.jpg

Make a 48×48 flat mosaic of this logo: ~/Pictures/logo.png

Useful things to specify:

  • Scale: "minifig scale" (doors, seats and stairs sized for minifigures), "microscale", or a size in studs ("about 32 studs wide").

  • What to leave out: people, background, text.

  • Colours: "use only common colours" keeps it cheap to build for real.

2. Let it work, then steer

Claude plans the scale, builds bottom-up, renders previews next to your photo and fixes what doesn't match. Ask for changes in plain language:

The orange is too brown, use a redder shade. Make the tower taller and add windows. The left rack is hidden behind the bench, move it.

3. Export and open it

When you're happy, ask Claude to export. The file lands in exports/<name>.ldr.

  • Mecabricks: Workshop → File → Import → LDraw, then pick the file. You can publish it to the Mecabricks gallery from there.

  • BrickLink Studio: File → Import → Import LDraw. Studio also gives you a parts list and prices to buy the bricks. It handles very large models better than a browser tab.

If Mecabricks shows missing parts, ask Claude to re-export with legacy_ids (older part numbers such as 3023 instead of 3023b).

4. Pick it up later, on any computer

Models autosave to models/<name>.json. Say "open the bowling alley model" in a later session to keep editing. Copy models/ and exports/ to another machine to take your builds with you.

Tools

Tool

Purpose

new_model / open_model / list_models

Models autosave to models/*.json

list_parts, list_colors

Curated catalog, full LDraw library search, colour codes

add_parts, remove_parts, undo

Place parts on the stud grid, with collision checks

fill_layers

Colour layer maps packed automatically into bricks/plates/tiles in running bond

image_to_grid, build_mosaic

Quantize pictures to LEGO colours; build mosaics

describe_model, check_model

Per-level maps, part counts, floating/loose-part detection

render_model

Preview sheet (iso/front/top/etc.), optionally beside the reference picture

export_ldr

LDraw file, one build step per level; legacy_ids for older part numbers

Grid

  • x: studs to the right; z: studs toward the back (z=0 is the front); y: plates up (brick = 3).

  • A part's position is the min corner of its body after rotation.

  • rot 0/90/180/270 (or front/right/back/left). A slope's sloped face points that way. At rot 0 a 2x4 brick is 4 studs long in x.

Notes

  • Any LDraw part can be placed. Parts outside the curated catalog are handled as their bounding box for collisions, connectivity and previews. The exported file always uses the real part.

  • Previews are simplified geometry: round parts and arches show as boxes.

Very large builds

The Hornburg up close

Placing tens of thousands of parts one tool call at a time doesn't scale, so for Helm's Deep (192 × 160 studs, 41,864 parts) Claude wrote a generator instead. scripts/helms_deep/ contains it:

  • gen.py designs the scene as a colour voxel grid (terrain, walls, stairs, towers) and hollows it into a supported shell.

  • slopes.py adds 45° slopes along the rock ledges.

  • pack.py packs everything into staggered bricks and plates, then repairs any floating groups.

uv run python scripts/helms_deep/gen.py
uv run python scripts/helms_deep/slopes.py
uv run python scripts/helms_deep/pack.py

Then ask Claude to open_model helms_deep and export it.

Showcase renders and video

scripts/showcase/ has a GPU renderer (OpenGL via moderngl) for nicer images than the built-in previews, plus the scripts that made the pictures on this page:

uv run --with moderngl python scripts/showcase/glrender.py helms_deep out.png   # one image
uv run --with moderngl python scripts/showcase/compare.py                       # photo vs build
uv run --with moderngl python scripts/showcase/video.py                         # 9:16 build video

compare.py and video.py read reference photos from scripts/showcase/refs/. That folder isn't in the repo, so put your own photos there. video.py needs ffmpeg.

Safety

The server runs locally over stdio and makes no network requests (only scripts/fetch_ldraw.sh downloads, from library.ldraw.org). Tool inputs are treated as untrusted:

  • Part ids must be plain LDraw names; library lookups can't leave data/ldraw.

  • Image tools only open picture files (.png, .jpg, …) and refuse decompression bombs.

  • export_ldr only writes .ldr / .mpd files; models are saved under models/ with sanitised names.

  • Render size, grid size and parts per call are capped so one call can't exhaust memory.

It does read picture paths and write .ldr files wherever the MCP client asks, with your user's permissions, so review tool calls as you would any other file access.

Credits and licence

Code: MIT (see LICENSE). Parts geometry comes from the LDraw parts library, which is downloaded separately and is licensed CC BY 2.0 by its authors; it is not included in this repository.

The reference stills shown next to the builds are from The Phoenician Scheme (2025), The Big Lebowski (1998) and The Lord of the Rings: The Two Towers (2002). They are shown small, for comparison only, and remain the property of their owners.

LEGO® is a trademark of the LEGO Group, which does not sponsor or endorse this project.

Available Tools

15 tools
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
partsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose the most important behavioral trait: partial-failure semantics (colliding or invalid parts are skipped and reported, the rest still place). That is genuinely non-obvious and valuable. It stops short of stating idempotency, whether a failed batch is retryable, or permission requirements, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the core action front-loaded and the failure/return behavior following. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-format detail is largely covered (the description still notes new part ids). The main gap is usage context relative to siblings and any prerequisite/safety expectations for a mutation tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The top-level 'parts' parameter has no schema description, but the nested PartSpec fields (part, color, y, rot) are documented in the schema. The description adds only the cardinality hint 'one or more', which is marginal beyond what the schema provides, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Place one or more parts') with batch scope made explicit. It is immediately distinguishable from siblings like list_parts, remove_parts, and check_model without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says nothing about when to reach for this tool versus alternatives. There is no mention of check_model for pre-validation, undo for reversal, or new_model/open_model as prerequisites, leaving the agent to infer placement context entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
zNo
cropNo
kindNoplate
widthYes
heightNo
image_pathYes
max_colorsNo
orientationNoupright

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does add non-obvious geometry semantics: orientation orientation and the plate/brick tradeoff. But it says nothing about whether the tool clears existing bricks, whether it requires an open/current model, how large a mosaic can be, or what happens on failure — significant gaps for a mutating build operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences that front-load the purpose and then the orientation/kind semantics; nothing is wasted. The telegraphic 'image top = back' phrasing is compact but slightly cryptic without further context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. But for a 10-parameter mutation tool with zero annotation coverage and only two of ten parameters addressed, the definition is not complete enough to call confidently — placement, cropping, sizing, and limit behavior all remain opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and 10 parameters are present, so the description must compensate. It does explain 'kind' and 'orientation' meaningfully, but x, y, z, crop, width, height, image_path, and max_colors receive no explanation at all — notably crop's expected format and max_colors' quantization behavior are left entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Build a picture directly as a mosaic in the current model'), which is concrete and actionable. It does not name or contrast with the closest sibling, image_to_grid, so an agent must infer the difference between building a mosaic directly and converting an image to a grid.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly guides when to pick each orientation and kind value ('plate gives fine vertical detail, brick is sturdier'), which is useful selection guidance. However there is no explicit when-to-use-this-vs-alternatives statement, no mention of prerequisites such as needing an open model or how it relates to image_to_grid, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. 'Check' strongly implies a read-only analysis, and the output schema covers return values, but the description does not explicitly state side effects, permissions, or that the model is not modified. It does add useful domain definitions of floating and loose groups.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence, with parenthetical definitions that earn their place by clarifying the two structural failure modes. There is no redundant or wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-argument check tool with an output schema, the description explains what structural conditions are detected, which is the core semantic need. It omits usage timing and whether it targets the currently loaded model, but the output schema covers return details and the tool is otherwise simple.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no parameter semantics to document. Per the baseline rule for a 0-parameter tool, a 4 is appropriate because the schema cannot be enriched further from the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Check') and resource ('structure'), then defines the two diagnostics: floating groups and loose groups. It is clearly not a generic model operation, though it does not explicitly differentiate itself from siblings like describe_model or render_model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, prerequisites, or alternatives are provided. The description only defines the categories it checks; it never states when an agent should call this tool versus inspecting the model another way.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelsNo
all_levelsNo
list_all_partsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses rendering conventions (first row = back, uppercase letters = legend colours) and the levels/all_levels switching behaviour, and 'Summarise' implies a non-mutating read. But it never states this is read-only, what happens with an empty or invalid level list, or whether output is text or image.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with what the summary contains before the parameter semantics. The parenthetical footnote on row ordering is dense but earns its place; nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return shape need not be restated, yet the description attempts it anyway. The real gap is `list_all_parts`, which is undocumented everywhere, plus the absence of any read-only/mutation disclosure for a tool with zero annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and there are three parameters, so the description must compensate. It explains `levels` and `all_levels` adequately but says nothing about `list_all_parts`, leaving one of three parameters undocumented in both schema and prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Summarise) and resource (the model) and enumerates the outputs: bounds, part counts, colour maps. It does not, however, distinguish itself from siblings that also surface model contents (list_parts, list_colors, render_model), so the agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a conditional for one parameter (maps shown for `levels`, or every level when all_levels is set), which implies usage, but never says when to reach for this tool versus list_parts, list_colors or render_model. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
legacy_idsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses output granularity (one build step per level) and a real failure mode plus its cause/fix (missing parts -> legacy_ids=True). However, it never says where the file lands when path is null, whether an existing file is overwritten, or what the call returns on success/failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the primary action and format, followed by workflow and a conditional tip. Every sentence adds something; the only mild excess is the UI navigation path, which is nonetheless actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and an output schema exists, so return values need not be restated. Still, with 0% schema description coverage and a null-defaulting path parameter, an agent lacks what it needs to predict where the file is written or whether it clobbers an existing file.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for both parameters. It does explain legacy_ids well with a concrete example (3023 instead of 3023b), but path is left completely unexplained despite defaulting to null, leaving half the parameters opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: write the model as an LDraw .ldr file, with the added detail that it is one build step per level. That is enough to separate it from adjacent siblings like render_model, image_to_grid, or describe_model. It does not name any sibling explicitly, so it lands just short of the top mark.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It supplies concrete downstream workflow (import via Mecabricks Workshop > File > Import) and a conditional remedy: if parts come in missing, re-export with legacy_ids=True. That is real use guidance rather than a bare 'call this to export'. It does not state when not to use it, but no sibling export tool exists to route away from.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
zNo
kindNobrick
layersYes
legendYes
uprightNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does well: it discloses auto-packing, skipping already occupied cells, staggered seams, per-layer height depending on kind, and coordinate placement. It still omits mutation/reversibility details, permission needs, and failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and then structured into compact paragraphs covering layers, legend, placement, and upright mode. Despite its length, the detail is necessary for a nested map-based tool and every sentence contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 7-parameter tool with nested arrays/objects, no annotations, and no schema descriptions, the description is strong and covers the essential map format and placement behavior. It misses some parameter edge semantics and explicit model-context behavior, but the output schema covers return-value details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the layers matrix orientation, legend mapping with examples, x/z as front-left corner, y as layer offset, kind height behavior, and upright mode. Gaps remain for 'tile' in kind and integer legend values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource: 'Build volume from colour maps, automatically packed into bricks/plates/tiles.' This distinguishes the tool from generic part addition or mosaic conversion. It does not name siblings, but the resource and packing behavior make the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives use context only for the upright mode ('Handy for mosaics and facades'), implying when that variant is useful. It never states when to use fill_layers over alternatives such as build_mosaic, image_to_grid, or add_parts, so routing guidance is incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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 '.'.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellNostud
cropNo
widthYes
heightNo
paletteNo
image_pathYes
max_colorsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It usefully discloses the output representation (rows of letters, transparent -> '.') and the crop coordinate convention, but says nothing about palette quantisation behaviour, max_colors clamping, or whether the result is returned vs written to a file.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, front-loaded with the core action, then the two highest-value parameter notes. No filler, though the cell/height sentence is densely packed and slightly awkward.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no prose, and the description supplies workflow context. With 7 parameters, zero schema descriptions, and no annotations, however, an agent still lacks guidance on palette, max_colors, and sizing interplay, leaving real gaps for a transform tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 7 parameters, so the description must compensate. It explains crop's format and cell's enum meaning, but leaves width, height, palette, max_colors, and image_path entirely undocumented in both places, covering well under half the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource ('downsample a picture into rows of colour letters') and names the downstream consumer, fill_layers, which lets an agent place it in a workflow. It does not distinguish itself from build_mosaic, a sibling that plausibly covers a overlapping end-to-end path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'ready for fill_layers' implies a pipeline position, and the crop/cell notes hint at intended uses (top-down maps vs upright walls). But there is no explicit when-to-use or when-not, and no mention of build_mosaic as an alternative for the same job.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_colorsB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
include_specialNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden, and it does disclose a real behavioral trait: results are filtered to solid colours unless include_special is set. It says nothing about result cardinality, ordering, or whether 'special' colours are a separate code space, leaving gaps for a zero-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short fragments, front-loaded with the resource and return fields. Nothing is padded, though the telegraphic style leaves gaps that a few more words could have closed at low cost.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the default-filter behavior is covered. However, with no annotations and an unexplained 'search' parameter, the definition is adequate but not complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must document both parameters. It explains include_special's effect well, but the 'search' parameter is never mentioned or clarified (matching on code vs name? substring vs exact?), leaving half the parameters undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (LDraw colours) and even names the returned fields (code, name, hex), which lets an agent distinguish it from list_models/list_parts at a glance. It stops short of explicitly contrasting with those siblings, so it is clear rather than exceptional.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The include_special clause implies the default context (solid colours) and when to override it, which is useful implicit guidance. There is no explicit statement of when to reach for this tool versus the other list_* siblings or any prerequisite/exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsB

List saved models.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It implies a read-only enumeration but says nothing about ordering, scope (all models vs. working directory), pagination, or what 'saved' excludes, all of which matter for an enumeration tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single four-word sentence is front-loaded and waste-free, but it is terse to the point of under-specification rather than efficient conciseness. Nothing is padded, yet nothing beyond the bare minimum is stated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema means return values need no explanation, and with zero parameters the surface area is small. Still, with no annotations an agent gets no confirmation of read-only safety or the scope of 'saved' models, leaving the description just barely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the description introduces none, so there is no parameter semantics to misrepresent. Baseline 4 applies for a no-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (saved models), which is enough to distinguish it from siblings like list_parts and list_colors by resource type. However, it doesn't clarify what 'saved' means versus unsaved/in-memory models, which matters given siblings like new_model and open_model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus open_model, check_model, or describe_model, nor any prerequisite or context. The agent must infer usage purely from the verb 'List'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
categoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It adds useful domain context (size measured in studs along x/z and height in plates) for a low-risk read tool, but says nothing about ordering, pagination, limits, or what a category match returns beyond the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary listing behavior before the search alternative, and the size-unit clarification is genuinely useful. Minor density but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values needn't be described, and both zero-required parameters are addressed. The description is complete enough to call the tool correctly; only ordering/pagination behavior is left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does reasonably: it spells out the valid category values (brick, plate, tile, slope, round, misc) and explains that search matches words in the part title, with an example. It could more explicitly tie 'category' to the curated set, but the mapping is clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list/search) and resource (curated parts / LDraw library), enumerates the categories covered, and clearly names the two modes so it is distinguishable from list_models and list_colors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when each mode applies: bare listing of curated categories vs. searching the whole library by title words, with a concrete example ('window 1 x 2'). It gives clear context but no explicit exclusions or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

new_modelB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it does disclose two important traits: it replaces the open model (destructive side effect) and models autosave (so existing work is persisted rather than silently lost). It stops short of describing reversibility (undo exists as a sibling) or any confirmation/error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no wasted words; the destructive effect is placed immediately after the action. It is arguably terse to the point of omitting needed parameter context, but as structure it is clean.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers the key side effect and autosave behavior. The gap is parameter semantics plus any note on recoverability (undo is a sibling), which leaves the agent under-informed for a no-annotation mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and two parameters exist (required 'name', optional 'description'), yet the description says nothing about either. It does not explain what the name is used for or whether description has any constraint, leaving both undocumented in both schema and prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('start a new empty model') and distinguishes itself from open_model by emphasizing 'empty' and 'new'. However, it never names the sibling it contrasts with, so differentiation is implicit rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical clarifies the effect on the currently open model, which implicitly tells the agent when this is appropriate versus open_model, but there is no explicit when-to-use or when-not-to-use guidance relative to any sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_modelB

Open a previously saved model by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not describe whether opening replaces the current model, what happens if the name is not found, or any permissions or side effects. The description adds almost no behavioral context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It states the action and required identifier immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. For a simple one-parameter tool, the description is minimally adequate to call it, but it leaves gaps around behavior, error cases, and parameter format that an agent might need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the single parameter is only documented in the schema as 'Name' with type string. The description adds 'by name' and ties the name to a previously saved model, but it does not specify format, case sensitivity, or any constraints. This is minimal compensation for the complete lack of schema-level parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Open') and resource ('previously saved model') with the scope 'by name.' It distinguishes the tool from obvious siblings like new_model and list_models, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'previously saved model' implies this tool is for reopening existing models rather than creating new ones, which gives some context. However, it does not explicitly state when to use this tool versus alternatives or list any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_partsB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNo
regionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full behavioral burden for a destructive operation. It does not say whether removal is reversible, that an 'undo' sibling exists, what happens when both ids and region are supplied (union vs intersection), or how an empty argument list is handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero filler, and the key scoping words ('by id and/or') are placed early. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but for a destructive tool with zero annotations and a 0%-described schema the description should cover reversibility, the undo path, and the combined-parameter semantics. Those omissions are significant for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the Region sub-object's coordinate fields carry no descriptions, so the description does real work: it establishes that 'region' is a grid region and that its bounds are inclusive, and that parts *touching* the region (not just contained in it) are removed. It stops short of defining the overlap predicate precisely or clarifying the union semantics of the two parameters together.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (remove) and resource (parts) and states the two selection modes, so the agent knows exactly what the tool does. It does not explicitly contrast itself with siblings like add_parts, but there is little risk of confusion since no other sibling deletes geometry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'by id and/or ... region' implies the two mutually usable invocation modes, which is more than nothing. However, it gives no guidance on when to prefer this over alternatives such as 'undo', no prerequisites, and no warning about calling it with neither selector.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo
viewsNo
reference_imageNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full responsibility. It usefully discloses two non-obvious behaviors: parts are simplified (round and non-catalog parts render as boxes) and reference_image prepends the source picture as the first panel. However, it says nothing about whether output is an image, a file path, or a side effect, which is important for a render tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then dense but relevant detail about views and reference_image. Slightly run-on with the inline angle list, but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should clarify the return form, and it does not say whether rendering produces an image file, a path, or an inline preview. Combined with the undocumented 'size' parameter, the definition is adequate for calling but incomplete for predicting the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It does well for two of three parameters: views enumerates the valid named angles and the 'azimuth,elevation' degrees form, and reference_image's effect is explained. The 'size' parameter is never addressed, leaving a gap at this coverage level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Render a preview sheet'), which is clear enough to distinguish it from the other model/part manipulation siblings. It does not name an alternative rendering/inspection tool, nor contrast with describe_model or check_model, so sibling differentiation is only implied by the noun 'preview sheet'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description documents default views but never states when to reach for this tool versus describe_model or check_model, nor any preconditions (e.g., a model must be open). Usage is only implied by the 'preview' framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

undoB

Undo the last building action.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It implies a mutation and a single-step scope via 'the last,' but does not disclose whether undo is itself reversible, whether repeated calls walk back further, how deep the undo history goes, or how failures are surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is efficient, though its brevity borders on under-specification for a state-mutating operation rather than being wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and there are no parameters to cover. What remains missing for a zero-annotation mutation tool is undo breadth, stack behavior, and the no-op/error case, leaving the definition just barely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. No parameter information is missing because none exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Undo') and scopes it to 'the last building action,' which tells an agent this is a single-step reversal, not a general history reset. It does not, however, distinguish itself from siblings like remove_parts or new_model, nor clarify which of the many building operations it can reverse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus other corrective tools (e.g., remove_parts), no mention of prerequisites, and no statement about what happens when there is nothing to undo. The agent must infer all usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 15 tool updatesv0.1.0
    • First observedadd_parts
    • First observedbuild_mosaic
    • First observedcheck_model
    • First observeddescribe_model
    • First observedexport_ldr
    • First observedfill_layers
    • First observedimage_to_grid
    • First observedlist_colors
    • First observedlist_models
    • First observedlist_parts
    • First observednew_model
    • First observedopen_model
    • First observedremove_parts
    • First observedrender_model
    • First observedundo

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude AI to directly interact with and control Blender for rapid, natural language-based 3D modeling. Supports parametric design and relational design through direct Blender integration.
    -
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI-assisted garment design by letting Claude (or any MCP host) drive CLO3D — import projects, dress avatars, assign fabrics, simulate cloth, render, and export, all from a chat.
    14
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to create 3D-printable CAD models using build123d, with tools for modeling, modification, analysis, and publishing to platforms like Thingiverse and GitHub.
    13
    Creative Commons Attribution Non Commercial No Derivatives 4.0 International
  • A
    license
    A
    quality
    C
    maintenance
    Enables Claude to control AutoCAD—draw, edit, query, layers, blocks, annotations, screenshots, plot to PDF—using plain language.
    8
    2
    MIT