Skip to main content
Glama
pzfreo

build123d-mcp

shape_compare

Compare two shapes to detect geometric changes and surface deviations. Provides volume, bbox, topology deltas, and localized change regions with added/removed volumes.

Instructions

Compare two named shapes (from show()) by geometry metrics plus localized surface deviation. Keeps volume, bbox, topology, and center deltas, and adds a bounded surface diff that locates WHERE the geometry changed: max_deviation (largest real change, noise-floored so a no-op reads ~0), changed region(s) (centroid/bbox + exact added_volume/removed_volume), magnitude_method (exact_boolean = exact displacement+volumes; exact_volume_mesh_displacement = exact volumes, mesh-estimated displacement, e.g. a cut/flush-fill; mesh_estimate = boolean skipped/failed), and unchanged_elsewhere. The exact B-rep boolean is clipped to the changed region and runs subprocess-bounded, falling back to the flagged mesh estimate on large/spread edits. For editing, this is model↔input verification, not a score: confirm the changed region(s) and add/remove volumes match the request and unrelated regions stayed put. A tangential move (sliding a hole) or a sub-resolution edit on a very large part yields no region — unchanged_elsewhere then means "no change above the detection floor", not a guarantee; cross-check volume/bbox/center deltas and find_holes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
object_aYes
object_bYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

With no annotations, the description fully bears the burden and does an excellent job. It reveals noise-floored max_deviation, three magnitude_methods, subprocess-bounded boolean, fallback to mesh estimate, and the meaning of 'unchanged_elsewhere'. It also warns about detection limits and cross-checking with other tools.

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?

The description is quite long and dense, containing many technical details (noise-floored, subprocess-bounded, magnitude_method enumeration). While these are valuable, the text could be more concise and better structured, e.g., by breaking into paragraphs or bullet points. The first sentence effectively front-loads the purpose.

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?

Given the tool's complexity and the presence of an output schema, the description is very complete. It covers fallbacks, edge cases (tangential moves, sub-resolution edits), and usage guidance. It explains the meaning of outputs without needing to document the return schema, and provides sufficient context for an agent to invoke it correctly.

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% (no parameter descriptions). The description adds context that parameters are named shapes from show(), but does not specify format, constraints, or additional details. This adds some meaning beyond the schema titles but is insufficient to fully compensate for zero schema coverage.

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 description clearly states it compares two shapes by geometry metrics and surface deviation, specifying the outputs (volume, bbox, topology, center deltas, bounded surface diff). It distinguishes itself from a simple score by calling it 'model↔input verification' and implies a different use case from siblings like diff_snapshot or find_holes.

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 provides explicit guidance on when to use the tool ('For editing, this is model↔input verification') and what to check (confirm changed region(s), add/remove volumes). It also notes limitations for tangential moves and sub-resolution edits. However, it does not explicitly state when not to use it or name alternative tools.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pzfreo/build123d-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server