Skip to main content
Glama

extrude_polygon

Extrude a closed 2D polygon from a point list by a specified height on XY, XZ, or YZ planes, with optional offset and hole cutouts, to create a 3D CAD solid.

Instructions

Extrude a closed 2D polygon (list of [a,b] points, no need to repeat the first) by height mm. plane XY: points are (x,y), extrusion along +Z. XZ: points are (x,z), extrusion along +Y. YZ: points are (y,z), extrusion along +X. offset moves the profile along the extrusion axis first. holes is an optional list of polygons cut out of the profile. Example L-bracket profile in XZ: [[0,0],[60,0],[60,5],[5,5],[5,40],[0,40]].

Input Schema

NameRequiredDescriptionDefault
docYes
nameYes
colorNo
holesNo
planeNoXY
heightYes
offsetNo
pointsYes
materialNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

No annotations, so the description carries the full burden, and it discloses genuine behavioral traits: coordinate-to-axis mapping per plane, direction of extrusion, that offset applies along the extrusion axis before the extrude, and that holes are cut out of the profile. It omits what doc/name/color/material do and what happens on self-intersecting or open polygons, which is a real gap for a 9-parameter geometry mutation.

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-loaded with the verb and units, then plane conventions, then offset/holes semantics, and it closes with a concrete L-bracket example that carries real information about ordering and closure. Dense and largely waste-free, though the plane sentence is a run-on that could be tabulated.

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?

An output schema exists, so return values needn't be explained, and the geometry semantics that determine correctness (plane, axis, offset, holes, point ordering) are all present. Missing identification of doc/name/color/material and any statement of validity constraints or failure behavior keeps it from complete.

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?

Schema coverage is 0%, so the description must compensate, and it explains 5 of 9 parameters meaningfully: points (with the no-repeat-first-point rule), height (mm), plane (enum values each spelled out with axis mapping), offset, and holes. doc, name, color, and material are not addressed anywhere, leaving roughly 45% of parameters undocumented.

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+resource: 'Extrude a closed 2D polygon' with explicit units (height mm), and it implies the difference from a sketch-based sibling like pad by accepting an inline point list. It never names a sibling (pad, pocket, revolve), so an agent still has to infer the boundary itself.

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?

Usage is only implied by the shape of the input: pass points in, get a solid body out. There is no statement of when to use this over pad/revolve/loft, no prerequisites (does a document need to be open, is a name collision a problem), and no failure cases.

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