Skip to main content
Glama

extrude_profile

Create a solid 3D model by extruding a closed 2D polygon along X, Y, or Z, with optional holes and position offset. Use it for soles, panels, signs, floor plans, or outline-based parts.

Instructions

Make a solid by extruding a closed 2D polygon, centred on its depth. plane XZ: points are [x, z] and the depth runs along Y (front outline); YZ: [y, z], depth along X (side outline); XY: [x, y], depth along Z (top). at shifts the result in the world. holes is a list of polygons in the same coordinates (or the holes of trace_outline as they are): each is cut through the solid with the checks of boolean; a flawed cut is kept and listed in warnings. Good for soles, panels, signs, floor plans, outline-based parts.

Input Schema

NameRequiredDescriptionDefault
atNo
nameYes
depthYes
holesNo
planeNoXZ
pointsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare a non-read-only, non-destructive, closed-world operation, but the description adds genuinely new behavior: the solid is centred on its depth, holes are cut with boolean checks, and a flawed cut is kept rather than aborting the operation and is surfaced in `warnings`. That failure-handling contract is exactly the kind of trait annotations cannot express.

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 core action, then dense but non-redundant detail on plane conventions, offset, holes and use cases. Every clause carries information; it is slightly long but nothing reads as filler.

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 non-destructive creation tool with no output schema, the description supplies what is missing: geometry conventions, offset semantics, hole behavior and the fact that problems are reported in `warnings` rather than raised. An agent has enough to invoke it correctly on the first attempt.

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 carries the full burden and does so: it defines the coordinate ordering of `points` for each `plane` enum value and the resulting axis of `depth`, explains that `at` shifts the result in world space, and specifies `holes` as same-coordinate polygons or trace_outline's `holes`. Only `name` goes unexplained, which is trivial.

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 verb+resource with scope: 'Make a solid by extruding a closed 2D polygon'. The mention of a closed 2D outline cleanly separates it from face-based sibling extrude_faces and from lathe/sweep/loft, so an agent can route without opening a schema.

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?

Gives concrete when-to-use context ('soles, panels, signs, floor plans, outline-based parts') and links to trace_outline as the source of `holes`. It does not, however, name an alternative for when an existing mesh face should be extruded instead (extrude_faces), so no explicit exclusions are given.

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