Skip to main content
Glama

Combine Meshes (Boolean)

mesh_boolean
Idempotent

Use this when the user wants to union, subtract, or intersect two imported triangle mesh solids (STL, OBJ, or 3MF). Supports union, subtract (A minus B) and intersect. Pass each operand as { file } on the MCP server or { data } with base64 mesh bytes; formats are detected or may be specified. Returns volume in mm³, triangle count and a binary STL as data_base64; pass that payload to import_step to continue modeling. Inputs must be closed, consistently oriented 2-manifold meshes. Open, non-manifold, or invalid meshes return an error. This computes mesh geometry and does not create an editable B-rep feature tree.

Input Schema

NameRequiredDescriptionDefault
aYesFirst mesh: { file } or { data } base64, optional format stl|obj|3mf.
bYesSecond mesh: { file } or { data } base64, optional format stl|obj|3mf.
operationYes
toleranceMmNoVertex weld tolerance in mm. Default 0.000001.
maxTrianglesNoMaximum triangles per input and output. Default and maximum 100000.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the exact return payload (volume in mm³, triangle count, binary STL as data_base64), the input validity contract (closed, consistently oriented 2-manifold; open/non-manifold inputs error with a message), and the key limitation that no editable B-rep tree results. These are exactly the behaviors an agent needs and are not encoded in readOnlyHint/destructiveHint/idempotentHint.

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-loads the trigger, then operand format, return payload, and validity constraints in a logical order with no filler. It is dense and runs long, but every sentence carries actionable information, so it earns its length.

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?

For a 5-parameter tool with nested operands and an output schema, the description covers the trigger, operand encoding, output shape, downstream handoff, and failure conditions. Even though an output schema exists, restating the return payload is warranted here because it names the data_base64 handoff target.

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

Parameters4/5

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

Adds meaningful semantics over the schema: explains the { file } vs { data } base64 alternatives, format auto-detection vs specification, and clarifies subtract direction as 'A minus B'. toleranceMm and maxTriangles are left to the schema, but with 80% coverage that gap is covered, so this is above the baseline.

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 specific operation set (union/subtract/intersect) on a specific resource (imported triangle mesh solids in STL/OBJ/3MF). The closing sentence distinguishes it from B-rep feature creation, so an agent can separate it from siblings like mesh_to_features or add_feature.

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?

Opens with an explicit trigger ('Use this when the user wants to union, subtract, or intersect two imported triangle mesh solids'), which is a clear use case. It also implies the handoff path to import_step. It stops short of naming an explicit when-not or naming the sibling to use for editable B-rep modeling, so it is clear context but not full routing guidance.

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.