Skip to main content
Glama
pzfreo

build123d-mcp

mesh_section

Read-only

Slice a mesh on a chosen plane and get ordered loops, centers, and enclosed passages to identify holes or solid regions in imported STL models.

Instructions

Loops on one cross-section plane of a mesh, largest first. Returns JSON {axis, position, loop_count, enclosed_passages, loops:[{points, center, size, min, max, enclosed}]}, all in the two axes that are not axis. enclosed_passages counts loops at odd nesting depth, representing passages through material at this height. An open groove reads 0. Works on imported STL shells and solids. axis: X, Y or Z (the plane normal). position: absolute world coordinate. tolerance: tessellation tolerance. weld: point-merge distance when chaining segments. object_name: named object from show()/import_cad_file (default: current shape).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
axisNoZ
weldNo
positionNo
toleranceNo
object_nameNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.90

TDQS

A4.3/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true, and the description adds rich behavioral context: it details the exact JSON returned, explains enclosed_passages semantics (odd nesting depth), notes open grooves read 0, and specifies applicability to STL shells and solids. This goes beyond the annotation and clarifies what the tool does without contradicting it.

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?

The description is a single paragraph but tightly packed with necessary information. Every sentence adds value, and the main purpose is front-loaded. It could be split into structured bullets for readability, but it is not verbose or redundant.

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?

The tool has an output schema and the description explains the return format and semantics (enclosed_passages, loop structure). Parameters are fully described, and annotations cover read-only safety. There are no obvious gaps that would prevent an agent from calling this tool correctly.

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?

Schema description coverage is 0%, so the description must carry the parameter explanation. It does so thoroughly: axis (plane normal), position (absolute world coordinate), tolerance (tessellation tolerance), weld (point-merge distance), and object_name (named object, default current shape). This fully compensates for the lack of schema descriptions.

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 the verb ('Loops'), the resource (a mesh cross-section plane), and the specific scope (largest first). It also names the output format and distinguishes itself from siblings like cross_sections and mesh_holes by focusing on a single plane and providing loop details. This gives an agent enough to select it appropriately.

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 explains what the tool does and its constraints (works on STL shells/solids, defaults for object_name) but does not explicitly contrast with alternatives like cross_sections or mesh_holes. The usage context is implicit rather than explicit, so an agent might not know when to prefer this over a sibling without deeper analysis.

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