Skip to main content
Glama
dream-creo-mcp

dream-creo-mcp

by JaikenWong

creo_mcp_server (dream_creo_mcp)

让 AI Agent 通过 MCP 直接在 正在运行的 Creo Parametric 5 里建模和改模型。

  • 建模:新建零件/装配,拉伸、旋转、扫描、孔、圆角、倒角、抽壳、阵列、基准面……

  • 修改与查询:经 CREOSON 改尺寸、参数、特征、族表、图纸,读取模型信息,导出 STEP/PDF

  • 看结果:切换视图、截图返回给 Agent,让它自己检查

版本 1.1.1,在 Creo 5.0.0.0 + Windows 上验证。变更见 CHANGELOG。


工作原理

AI Agent (Grok / OpenCode / Claude / Cursor / Kiro / VS Code ...)
   │ stdio MCP
   ▼
dream-creo-mcp (Python)
   ├── CREOSON HTTP (localhost:9056) ──► J-Link ──► Creo 5     改尺寸/参数/导出等
   └── 请求文件 + mapkey 触发 ─────────► DreamFeatureApp ──► Creo 5   建新特征
                                          (Creo 内加载的 OTK Java 插件)

Creo 5 上用元素树建特征只对 Creo 自己加载的程序开放,外部连接(CREOSON 的方式)拿不到。所以建模由 Creo 内的 Java 插件完成,MCP 服务器经 CREOSON 的 interface/mapkey 触发它,通过 %LOCALAPPDATA%\dream_creo_mcp\ipc 交换请求和结果。


Related MCP server: FreeCAD MCP

环境要求

项

要求

系统

Windows

Creo

Creo Parametric 5.0(自带 JRE 1.8,插件运行在它上面,不用另装 Java)

CREOSON

CreosonSetup 已安装,连上 Creo 并监听 localhost:9056

Python

3.11 或更高


安装(三步)

1. 安装 Python 包

任选一种:

# pipx(推荐,独立环境)
pipx install git+https://github.com/JaikenWong/creo_mcp_server.git

# 或者普通 pip / 虚拟环境
python -m pip install git+https://github.com/JaikenWong/creo_mcp_server.git

装好后有一个命令 dream-creo-mcp。

2. 安装 Creo 插件

dream-creo-mcp install-plugin

它把插件复制到 %LOCALAPPDATA%\dream_creo_mcp\plugin\,并在那里生成 creotk.dat。然后在 Creo 里: 「工具」→「辅助应用程序」→「注册」→ 选上面那个 creotk.dat → 选中 DreamFeatureApp →「启动」。

想让插件随 Creo 自动启动:加上 Creo 的「起始位置」目录(Creo 启动时的工作目录):

dream-creo-mcp install-plugin --start-dir "C:\Users\Public\Documents"

目录里已有 creotk.dat 时会先备份成 creotk.dat.bak 再追加,不会覆盖其他应用。也可以在 config.pro 里加一行 toolkit_registry_file <creotk.dat 路径>。

升级包之后重新运行 install-plugin,再在 Creo 里停止、启动一次插件。

3. 检查

先打开 Creo 和 CREOSON,启动插件,然后:

dream-creo-mcp doctor

每一项都会显示 OK 或 FAIL,失败的项会给出修复方法。全部 OK 就可以接入 Agent 了。


接入 Agent

直接生成对应 Agent 的配置,复制粘贴即可:

dream-creo-mcp config grok        # 也可以是 opencode / claude / cursor / kiro / vscode

生成的配置里,命令就是当前安装的 Python:<python> -m dream_creo_mcp。

单次工具调用超时请设到 180 秒以上(再生、装配、导出可能较慢)。Grok 和 OpenCode 的配置已经带上了这一项。

工具分组与环境变量

环境变量

作用

DREAM_MCP_TOOLS

modeling(默认):28 个工具,说明文字少,Agent 更快;all:全部 41 个

CREOSON_URL

默认 http://localhost:9056/creoson,只接受本机回环地址

DREAM_FEATURE_IPC

插件交换目录,默认 %LOCALAPPDATA%\dream_creo_mcp\ipc(插件和服务器要一致)

DREAM_CREO_TEMPLATES

Creo 模板目录;默认根据 Creo 自带 JRE 自动找到 Common Files\templates

CREOSON_SPECS_DIR

可选,用别的 CREOSON jsonSpecs 目录代替包内自带的


工具清单

建模(经 DreamFeatureApp 插件)

工具

说明

model_new / model_open / model_save / model_close

新建(零件,或 kind=asm 装配)、打开、保存、关闭;有未保存改动的模型拒绝关闭,除非 confirm=DISCARD_CHANGES

model_info

特征列表、尺寸、轴、包围盒、体积

measure

两个面/边/轴/点之间的最小距离,平面或直线之间的夹角

extrude

拉伸:加材料/切除,盲孔、对称、贯穿

revolve

旋转:草图中用中心线 CL 作轴

sketch_curve / sweep

草绘曲线;沿曲线或边扫描恒定截面

hole

直孔,线性或同轴放置;flip / both_sides 控制方向

round / chamfer

圆角 / 等距倒角(按 edge:N);tangent_chain=true 自动带上相切相连的边

shell

抽壳,可指定开口面

datum_plane

偏移或成角度基准面

pattern

绕轴或沿方向阵列

find_geometry

按法向、类型、所属特征查找面和边,或用 near=[x,y,z] 找离某点最近的,返回 surface:N / edge:N

view_set

切到 front / back / top / bottom / left / right / iso(也认中文:俯视、右视、轴测……)并自动适配窗口

preview_image

截图并作为图片返回;可同时切视图,默认隐藏基准

delete_feature / undo

删除特征(confirm=DELETE_FEATURE)/ 撤销最近一步(confirm=UNDO)

feature_suppress / feature_resume

压缩 / 恢复特征

feature_xml_export / feature_xml_create

进阶:导出特征的元素树 XML,改完再建出来(适用于不带草图的特征)

草图语法(sketch 参数,命令用 ; 分隔,单位 mm)。推荐加 coords=model,每个点写成模型坐标 x y z,工具会投影到草图平面上,画在哪个面都一样:

命令

含义

M p

新环起点

L p

直线到 p

A3 p m

经过点 m 的圆弧到 p(不用管顺逆时针)

A p c ccw|cw

绕圆心 c 的圆弧到 p

Z

闭合当前环

C c r

整圆

CL p q

中心线(旋转轴)

例:绕 Y 轴旋转出 r20×h40 的圆柱:coords=model,CL 0 0 0 0 1 0; M 0 0 0; L 20 0 0; L 20 40 0; L 0 40 0; Z

不写 coords 时是 1.0 的草图坐标:点写成 x y,FRONT 上就是模型 X/Y,其他面上的方向见结果里的 sec_location。实体特征的环必须闭合,旋转必须有且只有一条 CL,不满足时在调用 Creo 之前就会报错。

坐标系:FRONT 为 XY 面(法向 +Z),TOP 为 XZ 面(法向 +Y),RIGHT 为 YZ 面(法向 +X)。

特征尺寸自动命名:建特征时给了 feature_name,尺寸会被命名为 <名字>_DEPTH、<名字>_DIAMETER、<名字>_RADIUS、<名字>_ANGLE……草图尺寸是 <名字>_S1、_S2……结果里的 dims 列出全部尺寸,之后可以直接 dimension_edit 按名字改,比如把 BOX_DEPTH 改成 60。

结果里的检查信息:每个特征都返回 volume_change;孔、切除这类特征没有改变体积时会带 warning: no_effect,一般是打到了空处,可以用 flip=true 重试。

修改与查询(经 CREOSON)

默认分组只带 dimension_edit、list_dimensions、model_export;其余要 DREAM_MCP_TOOLS=all。

工具

说明

dimension_edit

批量改尺寸,默认改完再生一次并返回包围盒

parameter_edit

参数增删改(PTC_WM_ 系统参数默认拒绝)

feature_edit

压缩、恢复、重命名、删除特征,特征参数

file_edit

再生、保存、单位、材料、关系式、擦除等

familytable_edit / drawing_edit / note_edit / layer_edit

族表、工程图、注释、层

model_edit

装配(无约束时封装放置)、导入、mapkey(需 RUN_MAPKEY)

model_export

导出 STEP/IGES/STL、PDF、3D PDF、图片

model_snapshot

活动模型快照:尺寸、包围盒、质量属性、特征、Windchill 检出状态

list_dimensions / list_parameters / list_features

列表查询

function_help / creoson_call

查 CREOSON 函数说明 / 调任意 CREOSON 函数

返回与错误

成功时 ok: true 加上结果。失败时统一为:

{"ok": false, "error": {"code": "feature_failed", "message": "...", "hint": "下一步该怎么做"}}

常见 code:invalid_arguments、feature_failed、model_not_in_session、model_in_session、unsaved_changes、confirm_required、creo_blocked(Creo 在等用户关对话框)、creoson_unreachable、plugin_not_running。

安全约定

  • 不会自动保存。只有 model_save 或 file_edit action=save 会写盘。

  • 破坏性操作必须带精确确认令牌(如 DELETE_FEATURE);选择器为空或通配 * 时需要 ALL_* 令牌。

  • CREOSON 地址只允许本机回环;sessionId 不会返回给模型。

  • 修改未检出的 Windchill 模型时,结果里会带"只存在于当前会话"的警告。


使用示例

对 Agent 说(尺寸、方向写清楚成功率最高):

在 D:\demo 新建零件 flange。用旋转做一个法兰:底盘直径 80、厚 10,中间轮毂直径 30、总高 30,Y 轴向上。中心打一个 φ10 通孔,在半径 28 处打一个 φ6 螺栓孔并绕中心轴阵列 6 个,最后给轮毂顶部外缘倒 R2 圆角。切到轴测视图截图给我看。

在 D:\demo 新建零件 box,拉伸一个 120×80×40 的长方体,顶面四条边倒角 3,然后去掉顶面抽壳,壁厚 2。

在 FRONT 面画一条路径:竖直向上 60,半径 20 圆弧转向右,再水平 40;沿它扫一个直径 10 的圆做成管子。


从源码开发

git clone https://github.com/JaikenWong/creo_mcp_server.git
cd creo_mcp_server
python -m venv .venv
.venv\Scripts\python -m pip install -e ".[test]"
.venv\Scripts\python -m pytest                       # 单元测试,不连 Creo

改插件(需要 JDK 1.8;路径不同时设 JDK_HOME、CREO_COMMON_FILES):

powershell -File feature-poc\build.ps1    # 编译并生成 src\dream_creo_mcp\plugin\dream_feature_app.jar
dream-creo-mcp install-plugin             # 然后在 Creo 里停止、启动插件

开发时在 %LOCALAPPDATA%\dream_creo_mcp\ipc\dev_classes.txt 里写一行 feature-poc\classes 的绝对路径,插件就会在每次请求时重新加载建模代码,改完重新编译直接生效,不用重启插件;删掉这个文件就回到正式版行为。feature-poc\plugin.ps1 <op> key=value 可以绕过 MCP 直接调插件。

刷新随包的 CREOSON 规格:scripts\sync_specs.ps1 -Creoson <CREOSON 源码目录>。

目录:

src/dream_creo_mcp/
  cli.py                  命令行:serve / doctor / config / install-plugin
  server.py               MCP 服务器、工具分组、错误格式
  tools.py                建模工具目录      plugin_client.py   插件交换
  tools_creoson.py        CREOSON 工具      creoson_client.py  CREOSON HTTP/会话
  confirm.py results.py specs.py schema_gen.py
  plugin/dream_feature_app.jar               预编译插件
  jsonspecs/                                 CREOSON 函数规格(MIT)
feature-poc/
  src/FeatureOps.java     建模实现(元素树)  DreamFeatureApp.java  Creo 内插件入口
  NOTES.md                Creo 5 上逐项实测的结论和坑,改建模代码前建议先读
tests/                    pytest
DESIGN.md                 CREOSON 线设计文档

已知限制

  • 只验证过 Creo 5.0.0.0。

  • 不支持镜像;装配暂不支持约束(只能封装放到原点或指定变换)。

  • 孔和方向阵列只朝一侧;体积没变说明打到了空处,用 flip=true 重做(工具说明里已写明,Agent 会照做)。

  • Creo 弹出交互对话框时调用会等到超时(返回 creo_blocked),需要到 Creo 里手动关闭。

  • CREOSON 写操作除改尺寸外只有单元测试,没有逐项实机验证。

路线图

版本

内容

1.2

沉头/螺纹孔、拔模、筋、混合、更多基准、样条草图;DXF 二维图转 3D

1.3

带约束装配、干涉检查、BOM

1.4

工程图生成与导出

2.0

更多 Creo 版本、钣金、参数化工作流

许可

MIT。随包附带的 CREOSON 函数规格(src/dream_creo_mcp/jsonspecs/)同样是 MIT 许可,版权属于 Simplified Logic, Inc.,见 jsonspecs/CREOSON-LICENSE.txt。Creo 本身不包含在内,使用时需要你自己有正版 Creo。

Available Tools

28 tools
chamferA

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.

Equal-distance (D x D) chamfer on the listed edges (edge:N from find_geometry kind=edges).

Inputs: name (required), edges (required), distance (required), feature_name, +1 more.

datum_planeA

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.

Datum plane. mode=offset: parallel to ref at offset mm (negative = other side). mode=angle: through axis/straight edge 'thru', at angle degrees to plane 'ref'. Returns its surface id; sketch on it by feature name.

Inputs: ref (required), mode (required), name (required), thru, +3 more.

delete_featureB

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.

Delete one feature by id (from model_info). Children may fail. Requires confirm=DELETE_FEATURE.

Inputs: name (required), confirm (required), feature_id (required).

dimension_editB

本服务器只修改已经打开的 Creo,经 CREOSON 完成。CREOSON 不能草图、拉伸、打孔或圆角;新建几何用 extrude/revolve/hole/round 等建模工具。尺寸值用模型单位。工具不假定尺寸名,也不假定某次会话里的数值或包围盒。feature/list 只列可见特征,不能据此判断没有实体。除非 action 是 save,否则不会 file/save。破坏性 action 必须带精确 confirm。选择器为空或全匹配时,普通令牌不够,要对应的 ALL_* 令牌。feature/suppress 与 resume 省略 with_children 时,处理器默认 true,会连带子特征。layer/show 不会删除层。interface/export_image 的 height 和 width 在一次观察里按英寸起作用,不是像素。

set/set_text take a list (values/texts) and run one dimension/set per item in order, then regenerate each file once when regenerate is true (default true for set/set_text). A failing item stops the batch and nothing is regenerated.

Actions:

  • set: Set a dimension value

  • set_text: Set dimension text

  • copy: Copy dimension to another in the same model or another model

  • show: Display or hide a dimension in Creo

extrudeA

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.

Inputs: name (required), plane (required), sketch (required), cut, +6 more.

feature_resumeB

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.

Bring back suppressed features (ids or names); their parents are resumed too unless with_parents=false.

Inputs: name (required), features (required), with_parents.

feature_suppressA

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.

Temporarily hide features (ids or names) without deleting them; children are suppressed too unless with_children=false. Undo with feature_resume.

Inputs: name (required), features (required), with_children.

feature_xml_createA

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.

Advanced. Create a feature from element tree XML (as returned by feature_xml_export, edited). Works for features without sketches (round, chamfer, hole, shell, draft, datum, pattern...). Reference ids must exist in this model (find_geometry). Failed features are rolled back.

Inputs: xml (required), name (required).

feature_xml_exportA

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.

Advanced. Return a feature's element tree as Creo XML (the full definition: type, values, references as PRO_XML_REFERENCE_ID). Read it to learn how a user-made feature is defined, edit values or reference ids, and rebuild it with feature_xml_create. Sketches are not included in the XML.

Inputs: name (required), feature_id (required).

find_geometryA

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.

Find faces or edges to reference. kind=faces: filter by feature, face_type (plane, cylinder, cone, torus, revolved, fillet), normal (outward, planes: +x,-x,+y,-y,+z,-z). kind=edges: filter by feature, of (edges bounding surface:N), edge_type (line, arc, circle). sort by max_x/min_x/max_y/min_y/max_z/min_z/max_size/min_size; limit (default 20). near=[x,y,z] sorts by distance to that model point and returns distance (e.g. the face nearest a point you know). Returns refs with centre, normal or end points, size.

Inputs: kind (required), name (required), of, near, +6 more.

holeA

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.

Straight hole. placement=linear: on planar face/datum 'face', at dist1 from ref1 and dist2 from ref2 (planes or edges). placement=coax: along axis 'axis', starting at plane 'face'. depth_type: through_all (default), through_next, blind (needs depth). Holes drill one side of the placement plane: flip=true drills the other side, both_sides=true drills both. If volume did not change, the hole went into empty space: retry with flip=true.

Inputs: face (required), name (required), diameter (required), placement (required), +10 more.

list_dimensionsC

本服务器只修改已经打开的 Creo,经 CREOSON 完成。CREOSON 不能草图、拉伸、打孔或圆角;新建几何用 extrude/revolve/hole/round 等建模工具。尺寸值用模型单位。工具不假定尺寸名,也不假定某次会话里的数值或包围盒。feature/list 只列可见特征,不能据此判断没有实体。除非 action 是 save,否则不会 file/save。破坏性 action 必须带精确 confirm。选择器为空或全匹配时,普通令牌不够,要对应的 ALL_* 令牌。feature/suppress 与 resume 省略 with_children 时,处理器默认 true,会连带子特征。layer/show 不会删除层。interface/export_image 的 height 和 width 在一次观察里按英寸起作用,不是像素。

Get a list of dimensions from a model. select=true clears the current Creo selection.

Inputs: file, name, names, select, +2 more.

measureC

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.

Minimum distance between a and b, each a ref (surface:N, edge:N, axis:N, datum name) or a model point [x,y,z]. Returns distance, the two closest points, and the angle (deg) when both are planes or straight lines. Use it to check a result.

Inputs: a (required), b (required), name (required).

model_closeA

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.

Erase the model from the Creo session. A model with unsaved changes is refused (unsaved_changes) unless confirm=DISCARD_CHANGES. Only close models you created in this conversation or the user named.

Inputs: name (required), confirm.

model_exportA

本服务器只修改已经打开的 Creo,经 CREOSON 完成。CREOSON 不能草图、拉伸、打孔或圆角;新建几何用 extrude/revolve/hole/round 等建模工具。尺寸值用模型单位。工具不假定尺寸名,也不假定某次会话里的数值或包围盒。feature/list 只列可见特征,不能据此判断没有实体。除非 action 是 save,否则不会 file/save。破坏性 action 必须带精确 confirm。选择器为空或全匹配时,普通令牌不够,要对应的 ALL_* 令牌。feature/suppress 与 resume 省略 with_children 时,处理器默认 true,会连带子特征。layer/show 不会删除层。interface/export_image 的 height 和 width 在一次观察里按英寸起作用,不是像素。

Write a model to disk without changing it. file = interface/export_file (type e.g. STEP, IGES, STL, VRML; dirname optional), pdf, 3dpdf, image (height/width act as inches, use about 4 x 6 at dpi 100), plot. Actions:

  • file: Export a model to a file

  • pdf: Export a model to a PDF file

  • 3dpdf: Export a model to a 3D PDF file

  • image: Export a model to an image file

  • plot: Export a model plot

model_infoC

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.

Features (id, name, type, status 0=active, dims, axes), bound_box and volume of a part.

Inputs: name (required).

model_newA

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.

Create a new empty mm model in dir and open it in its own window. kind=part (default, template mmns_part_solid, datums RIGHT/TOP/FRONT/PRT_CSYS_DEF) or kind=asm (template mmns_asm_design). Put parts into an assembly with model_edit action=assemble (file=<part.prt>, into_asm=<name.asm>); without constraints the part is placed at the assembly origin.

Inputs: dir (required), name (required), kind, overwrite.

model_openC

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.

Open an existing dir/name.prt or name.asm (kind=asm), newest version, in its own window.

Inputs: dir (required), name (required), kind.

model_saveA

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.

Save the model to dir (Creo writes name.prt.N). If dir is the folder the model came from it is a real save (method=save, modified=false); otherwise a copy is written there (method=backup) and the open model stays modified. Never uploads to Windchill.

Inputs: dir (required), name (required).

patternA

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.

Inputs: name (required), type (required), count (required), feature (required), +5 more.

preview_imageA

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.

Render the model's window to a JPEG and return it as an image (about 3 s). Optional view turns the window first. fit (default true) refits the model; datums=true shows datum planes and axes (hidden by default for a clean picture). width/height in inches at 100 dpi (default 6 x 4). Views: front looks along -Z (model XY plane), top looks down -Y, right looks along -X, iso is the Creo default 3D orientation. An unknown view name is an error listing the saved views.

Inputs: name (required), fit, view, width, +2 more.

revolveA

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 revolve, adds material or cuts (cut=true). The sketch needs exactly one centerline 'CL ...' as the axis, and the profile on one side of it. angle in degrees (default 360); symmetric=true splits the angle across the sketch plane. Example (cylinder r20 h40 around Y on FRONT): 'CL 0 0 0 1; M 0 0; L 20 0; L 20 40; L 0 40; Z'. 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.

Inputs: name (required), plane (required), sketch (required), cut, +5 more.

roundA

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.

Constant-radius round on the listed edges (edge:N ids from find_geometry kind=edges). List every edge to round, or pass tangent_chain=true to add every edge joined to them with the same tangent (a full circle is two arcs in Creo: rounding one half alone fails).

Inputs: name (required), edges (required), radius (required), feature_name, +1 more.

shellA

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.

Hollow the part with wall thickness. remove = faces to open (surface:N, e.g. the top face from find_geometry normal=+y); without remove the part becomes a closed hollow body. outside=true grows the wall outward instead of inward.

Inputs: name (required), thickness (required), remove, outside, +1 more.

sketch_curveA

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 datum curve on a plane, open or closed (no material). Use it as a sweep trajectory by its feature_name. Example path on FRONT: 'M 0 0; L 0 60; A 20 80 20 60 cw; L 60 80'. 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.

Inputs: name (required), plane (required), sketch (required), feature_name (required), +2 more.

sweepA

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.

Constant-section sweep along a trajectory: the feature_name of a sketch_curve, or a list of edge:N joined end to end. The section sketch is drawn in the frame at the trajectory start, origin = start point (e.g. 'C 0 0 5' for a 10 mm pipe). cut=true removes material. Uses the same sketch commands as extrude.

Inputs: name (required), sketch (required), trajectory (required), cut, +2 more.

undoA

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.

Undo the last modelling step: deletes the newest feature (or the whole pattern if the newest feature is a pattern member). Template datums are never removed. Requires confirm=UNDO.

Inputs: name (required), confirm (required).

view_setB

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.

Turn the model's Creo window to a standard view and refit it (no image). Views: front looks along -Z (model XY plane), top looks down -Y, right looks along -X, iso is the Creo default 3D orientation. An unknown view name is an error listing the saved views.

Inputs: name (required), view (required), fit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 28 tools

    Disambiguation4/5

    The geometry tools (extrude, revolve, sweep, hole, round, chamfer, shell, pattern, datum_plane, sketch_curve) each target a clearly distinct modelling operation, and the lifecycle tools (new/open/save/close/info) map to distinct verbs. The weakest spots are inspection tools—model_info, list_dimensions and measure all return quantitative facts about the same model—and preview_image vs. view_set vs. model_export image, which require reading the trailing text to separate. Long, near-identical boilerplate preambles on most tools also bury the discriminating sentence, making selection slower than it should be.

    Naming Consistency3/5

    There is a recognizable noun_verb family (model_new, model_open, model_save, model_close, model_info, model_export, dimension_edit, feature_suppress, feature_resume, feature_xml_export, view_set) but it is mixed with bare nouns (extrude, revolve, hole, round, chamfer, shell, sweep, pattern, undo, measure) and verb_noun forms (list_dimensions, find_geometry, delete_feature). The pattern is readable but not predictable, so an agent cannot reliably guess a name from an intent.

    Tool Count3/5

    28 tools is on the heavy side, but CAD modelling legitimately spans many feature types, and each geometry tool covers a distinct kernel operation rather than duplicating another. The count is inflated somewhat by the multi-action multiplexed tools (model_export, dimension_edit) plus advanced XML escape hatches, which keeps it just over the comfortable range.

    Completeness4/5

    The set covers the full part-modelling lifecycle: create/open/save/close, core solid features, patterns, datums, editing (dimension_edit, delete_feature, suppress/resume, undo), inspection (model_info, measure, find_geometry, preview_image) and export/import via XML. Gaps are acknowledged but real: there is no mirror tool, no assembly mating constraints, and model_new's description points at a 'model_edit action=assemble' tool that does not exist in this surface, a dead end for assembly building.

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      A
      quality
      D
      maintenance
      Enables an AI agent to drive a live FreeCAD desktop session, allowing it to create and edit geometry, capture views, and export models through MCP tools.
      18
      1
      -
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables AI clients to create, edit, and export CAD models and drawings in a locally installed FreeCAD via MCP.
      3
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI clients to create, query, and modify native parametric features in an open Creo Parametric 10 session through the official C/C++ Toolkit, covering sketches, extrudes, revolves, holes, datum features, dimension and parameter edits, feature-tree inspection, and save/export operations.
      23
      MIT
    • F
      license
      Not graded
      quality
      A
      maintenance
      Enables AI assistants like Claude for Desktop or Cursor to control supported CAD applications through MCP, supporting drawing, layer and entity management, block operations, data export, and file/session control via natural language or unified tool calls.
      -