Skip to main content
Glama

Block Out Assembly from Parts List

blockout_assembly
Idempotent

Use this when you have a list of parts with bounding boxes and positions (from a layout, spreadsheet, another tool or a sketch) and need an evaluable placeholder assembly script. Pass parts as { name, bboxMm:[x,y,z], positionMm:[x,y,z], rotationDeg?, anchors? } in mm; positionMm locates the bbox lower corner and anchors are named points in assembly coordinates. Optional connections [{ from, to }] reference anchors as "part.anchor" (including built-ins origin, bbox_center, bbox_x_min..bbox_z_max) and become fastened mates that express connectivity intent only; no wire or route geometry is generated. Returns the script (corner-anchored box solids with named connectors) plus warnings. It reads no files and cuts nothing; refine the solids with add_part/add_feature afterwards.

Input Schema

NameRequiredDescriptionDefault
nameNoAssembly name, default "blockout".
partsYes
connectionsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that it reads no files, cuts nothing, generates no wire or route geometry, that connections are intent-only fastened mates, and that output is a script plus warnings. These constraints (idempotentHint/destructiveHint already cover safety) are exactly the behavioral context an agent needs before trusting the result as a placeholder.

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?

Densely packed but front-loaded with the 'Use this when' trigger, then data shape, then connections, then return/limitations. Every clause carries information, though the single paragraph is heavy enough that a reader must parse carefully.

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

Completeness5/5

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

Covers the input shape, the units (mm), coordinate conventions, connection semantics, side effects (none), and even summarizes the return despite a full output schema existing. Nothing an agent needs to call this correctly is missing.

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

Parameters5/5

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

With only 33% schema coverage, the description compensates fully: it spells out the parts object shape, that positionMm locates the bbox lower corner in assembly coordinates, what anchors are, and that connections reference 'part.anchor' including built-in anchors (origin, bbox_center, bbox_x_min..bbox_z_max). That built-in anchor vocabulary is information available nowhere else.

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 concrete verb+resource ('need an evaluable placeholder assembly script' from a parts list with bounding boxes and positions) and clearly distinguishes itself from refinement siblings by naming add_part/add_feature as the follow-up path. An agent can tell this is the batch blockout generator, not a single-part authoring tool.

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?

'Use this when you have a list of parts with bounding boxes and positions (from a layout, spreadsheet, another tool or a sketch)' gives an explicit trigger condition and even names typical upstream sources. It also routes onward to add_part/add_feature for refinement, though it doesn't state an explicit when-not-to-use case.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.