Skip to main content
Glama
KD5RYN

b123d-print-mcp

by KD5RYN

diagnose_failure

Diagnose why a build123d part failed to build or print: rebuilds each variant part in isolation without cache, then reports the error, likely cause, and concrete fixes such as valid fillet radii or bad faces and edges.

Instructions

The deeper look after a failed or broken build (failed results already carry a short DIAGNOSIS): builds one variant piece by piece, each on its own and without the build cache, and for each piece reports the error with its likely cause and specific fixes (where in the script, the piece, the numbers: e.g. the largest fillet radius that works on those edges), or for a piece that built, what makes it unprintable (invalid solid, zero volume, a 2D shape, not on the bed) and, for an invalid one, which faces and edges are bad, tiny edges and sliver faces left by booleans, and whether part.fix() repairs it. Then the assembly. parts: only those pieces. Stops before the time limit and names the pieces it did not get to.

Input Schema

NameRequiredDescriptionDefault
nameYes
partsNo
variantNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.12

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 it does well: it discloses that it rebuilds pieces individually without cache, may be expensive, stops before a time limit, and names pieces it did not reach. It does not clarify whether building variants mutates project state or requires specific permissions, which is a meaningful gap for a build-running tool.

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?

It is front-loaded with the triggering context, but the body is a single tangled, run-on sentence dense with parentheticals, which hurts scannability. Most content earns its place but should be broken into structured sentences or bullets.

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 diagnostic tool with three largely undocumented parameters, the description covers behavior, output expectations (error causes, fixes, invalid geometry, fix() results), and time-limit semantics; the existing output schema covers return structure. The main residual gap is parameter semantics and state-mutation clarity.

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% with three parameters. The description only partially compensates: 'parts: only those pieces' gives some meaning to the parts param, and 'one variant' hints at variant, but name is unexplained and variant/parts formats and constraints are not defined. Partial coverage for an under-documented schema.

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 scope: a deeper diagnosis that rebuilds each piece without the cache and reports errors, causes, and fixes, plus unprintability of built pieces. It distinguishes itself from the 'short DIAGNOSIS' in failed results and implicitly from siblings like check and build_part, though the run-on delivery makes the core purpose slower to grasp than it should be.

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 deeper look after a failed or broken build' clearly establishes the triggering context and notes that failed results already carry a short diagnosis, implying this is for escalation. It does not explicitly name alternatives (e.g., check, build_part) or say when not to use it, leaving some inference about cost/usage tradeoffs.

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