Skip to main content
Glama
dream-creo-mcp

dream-creo-mcp

by JaikenWong

extrude

Create or edit sketched features in a running Creo session to add material or cut geometry using blind, symmetric, or through-all depths from a plane sketch.

Instructions

Creates/edits geometry in the running Creo 5 through the DreamFeatureApp plugin. There is no mirror tool: build symmetric shapes with symmetric extrudes, revolves or patterns. Units are mm and degrees. Parts are addressed by name (lowercase, no .prt). Model axes: FRONT is the XY plane (normal +Z), TOP is XZ (normal +Y), RIGHT is YZ (normal +X). Each feature call either ends with an active feature or is rolled back. Nothing is saved unless model_save is called. Check results with model_info (volume, bound_box) and preview_image.

Sketched extrude, adds material or cuts (cut=true). depth_type: blind (needs depth), symmetric (needs depth, split on both sides), through_all. flip=true reverses the blind side. Sketch on plane (any planar datum or face ref); orient_ref is chosen automatically. Sketch path, commands separated by ';'. Recommended: coords=model, then every point is 'x y z' in model coordinates (mm) and is projected onto the sketch plane, so it works the same on any plane. Commands (p = point): 'M p' start a loop; 'L p' line to; 'A3 p m' arc to p passing through m; 'A p c ccw|cw' arc to p around centre c; 'Z' close the loop; 'C c r' circle; 'CL p q' centerline (revolve axis). Example coords=model on FRONT: 'M -50 -25 0; L 50 -25 0; L 50 25 0; L -50 25 0; Z'. Default coords=sketch (1.0): points are 'x y' in the sketch frame (on FRONT = model X, Y; on other planes see sec_location in the result). Solid features need closed loops; open loops and a revolve without exactly one CL are rejected before Creo is called.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "name": "<name>",
      "plane": "<plane>",
      "sketch": "<sketch>"
    },
    "name": "extrude"
  }
}

Input Schema

NameRequiredDescriptionDefault
cutNo
flipNo
nameYesPart name without .prt
depthNo
planeYesDatum name (FRONT, TOP, RIGHT, DTM1...) or an id from find_geometry/model_info: surface:N, edge:N, axis:N
coordsNoPoint format of sketch: model = 'x y z' model coordinates (recommended)
sketchYes
depth_typeNo
orient_refNoDatum name (FRONT, TOP, RIGHT, DTM1...) or an id from find_geometry/model_info: surface:N, edge:N, axis:N
feature_nameNoOptional feature name

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.1

TDQS

A4.3/5.0
Behavior4/5

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

No annotations exist, so the description carries the full load and does it well: units (mm/degrees), part naming rules, axis/plane mapping, the transactional behavior that 'each feature call either ends with an active feature or is rolled back', persistence rules, and the fact that invalid loops are 'rejected before Creo is called'. Missing is what the tool actually returns on success (only a passing reference to 'sec_location in the result').

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?

Long but front-loaded: purpose, global constraints (units, planes, rollback, saving), then extrude parameters, then sketch syntax. Nearly every sentence carries operational detail, though the paragraph is dense enough that an agent must read it all rather than skim a summary line.

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?

For a 10-parameter, no-annotation, no-output-schema modeling tool this covers an unusual amount: coordinate conventions, sketch grammar, validation failure modes, rollback and save semantics, and recommended follow-ups (model_info, preview_image). What remains thin is the return payload and how depth interacts with by-default depth_type when omitted.

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 only 50%, but the description more than compensates for the important gaps: it defines depth_type blind/symmetric/through_all semantics, what flip does, what cut does, and the coords=sketch vs coords=model distinction with a full sketch command grammar (M/L/A3/A/Z/C/CL) and a worked example. The odd statement that 'orient_ref is chosen automatically' muddies a parameter the caller can apparently still supply.

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?

Opens with a specific verb+resource ('Creates/edits geometry in the running Creo 5 through the DreamFeatureApp plugin') and immediately narrows to 'Sketched extrude, adds material or cuts (cut=true)'. That distinguishes it from the revolve, sweep and hole siblings without needing their schemas.

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 real routing guidance: 'There is no mirror tool: build symmetric shapes with symmetric extrudes, revolves or patterns', plus 'Nothing is saved unless model_save is called' and 'Check results with model_info (volume, bound_box) and preview_image'. It never explicitly says when an extrude is the wrong choice versus revolve/sweep, so it stops short of full when/when-not coverage.

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