Skip to main content
Glama
KD5RYN

b123d-print-mcp

by KD5RYN

set_params

Change default dimension values in a build123d script in place while preserving all other file content, optionally update a variant, rebuild, and report resulting size or volume changes.

Instructions

Change Dims values in the script in place, leaving every other character of the file as it was: values {"FIELD": new value, ...} replaces each field's default (only literal defaults: a default computed by an expression such as hole_comp(file) is refused with the reason; so are unknown fields, derived @property values and values of the wrong type). variant: change (or add) that variant's override in VARIANTS instead of the default. rebuild (default true): build before and after (the build cache makes "before" quick) and report what changed per piece: size and volume; parts: only those pieces. Saved like write_part (size limit, must compile). If the new build fails, the result has the diagnosis and the call to undo it.

Input Schema

NameRequiredDescriptionDefault
nameYes
partsNo
valuesYes
rebuildNo
variantNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.12

TDQS

A3.9/5.0
Behavior5/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 so well: it discloses refusals (expression-computed defaults, unknown fields, derived @property values, wrong types), the variant override path, default rebuild plus build-cache behavior, the size limit and compile requirement inherited from write_part, and that a failed build returns a diagnosis with an undo call.

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 and the minimal-diff guarantee, then constraints, then variant and rebuild behavior. Dense but every clause adds information; the nested parentheticals make the middle heavier than ideal but not wasteful.

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 mutation tool with an output schema, the description covers safety constraints, failure handling, and call semantics sufficiently. The remaining gap is the role of `name` and the exact meaning of `parts`, which the schema does not supply either.

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. It explains values (field→new value map, literal defaults only), variant (override location), and rebuild (default true, build before and after) — but never explains `name` and mentions `parts` only obliquely via 'per piece'/'only those pieces'. Three of five parameters are covered.

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 opens with a precise verb and resource: change Dims values in the script in place, with a minimal-diff guarantee. That distinguishes it from write_part (whole-file write), params (read) and build_part (build only). 'Dims' is domain jargon, but the operation itself is 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?

It implies usage through contrast — use variant to change an override instead of the default, and rebuild=false to skip building — but never states when to pick set_params over params, write_part, or edit-and-rebuild via build_part. The agent must infer the routing.

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