Skip to main content
Glama
dream-creo-mcp

dream-creo-mcp

by JaikenWong

pattern

Pattern an existing Creo feature around an axis or along a plane normal, setting instance count, angle, or spacing to build symmetric geometry.

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.

Pattern an existing feature. count = total instances including the original. type=axis: around 'axis', angle degrees between instances (default 360/count). type=direction: along the normal of plane 'ref' (or a straight edge), spacing mm; flip=true goes the other way. Instances outside the part change nothing: compare volume before/after.

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>",
      "feature": "<feature>",
      "type": "<type>",
      "count": "<count>"
    },
    "name": "pattern"
  }
}

Input Schema

NameRequiredDescriptionDefault
refNoDatum name (FRONT, TOP, RIGHT, DTM1...) or an id from find_geometry/model_info: surface:N, edge:N, axis:N
axisNoDatum name (FRONT, TOP, RIGHT, DTM1...) or an id from find_geometry/model_info: surface:N, edge:N, axis:N
flipNo
nameYesPart name without .prt
typeYes
angleNo
countYes
featureYes
spacingNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.1

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does substantial work: it discloses that nothing is persisted without model_save, that each call either ends with an active feature or is rolled back, and that out-of-part instances silently change nothing so volume must be compared before/after. The remaining gap is the failure/return behavior of the call itself, which it only gestures at via model_info and preview_image.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is dense and nearly every sentence carries information, but the tool-specific purpose does not lead — the shared preamble about the plugin, units, axes, and save behavior occupies the front half. An agent must read past boilerplate to find what this specific tool does, and the pattern mechanics are packed into one long final paragraph.

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 9-parameter, mutation-heavy tool with no annotations and no output schema, the description covers modes, defaults, units, and side effects well, and points at model_info/preview_image for verification. It is short of complete only on the 'feature' identifier format and on what the call returns.

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 33%, so the description must compensate, and it largely does: it defines count as total instances including the original, ties angle to type=axis with the 360/count default, ties spacing to type=direction along the plane/edge normal, and defines flip. The 'feature' parameter is never explained (feature name vs id), leaving one required parameter's semantics to inference.

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?

The description states a specific verb and resource: "Pattern an existing feature," then qualifies it with the two modes (axis vs direction). It is clearly distinct from siblings like extrude, revolve, hole, and chamfer. It stops short of a 5 because the tool-specific purpose sentence is buried after a shared boilerplate preamble and never explicitly contrasts itself with the other feature-creation tools.

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?

It gives concrete routing guidance: "There is no mirror tool: build symmetric shapes with symmetric extrudes, revolves or patterns," and "Check results with model_info (volume, bound_box) and preview_image." It explains which parameter combination selects which mode. It does not state when a pattern is a poor choice (e.g. when instances would fall outside the part, beyond the volume-check hint).

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