dream-creo-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dream-creo-mcp Make a 100x60x20 box on the FRONT plane, then screenshot it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 并监听 |
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 的配置已经带上了这一项。
工具分组与环境变量
环境变量 | 作用 |
|
|
| 默认 |
| 插件交换目录,默认 |
| Creo 模板目录;默认根据 Creo 自带 JRE 自动找到 |
| 可选,用别的 CREOSON jsonSpecs 目录代替包内自带的 |
工具清单
建模(经 DreamFeatureApp 插件)
工具 | 说明 |
| 新建(零件,或 |
| 特征列表、尺寸、轴、包围盒、体积 |
| 两个面/边/轴/点之间的最小距离,平面或直线之间的夹角 |
| 拉伸:加材料/切除,盲孔、对称、贯穿 |
| 旋转:草图中用中心线 |
| 草绘曲线;沿曲线或边扫描恒定截面 |
| 直孔,线性或同轴放置; |
| 圆角 / 等距倒角(按 |
| 抽壳,可指定开口面 |
| 偏移或成角度基准面 |
| 绕轴或沿方向阵列 |
| 按法向、类型、所属特征查找面和边,或用 |
| 切到 front / back / top / bottom / left / right / iso(也认中文:俯视、右视、轴测……)并自动适配窗口 |
| 截图并作为图片返回;可同时切视图,默认隐藏基准 |
| 删除特征( |
| 压缩 / 恢复特征 |
| 进阶:导出特征的元素树 XML,改完再建出来(适用于不带草图的特征) |
草图语法(sketch 参数,命令用 ; 分隔,单位 mm)。推荐加 coords=model,每个点写成模型坐标 x y z,工具会投影到草图平面上,画在哪个面都一样:
命令 | 含义 |
| 新环起点 |
| 直线到 p |
| 经过点 m 的圆弧到 p(不用管顺逆时针) |
| 绕圆心 c 的圆弧到 p |
| 闭合当前环 |
| 整圆 |
| 中心线(旋转轴) |
例:绕 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。
工具 | 说明 |
| 批量改尺寸,默认改完再生一次并返回包围盒 |
| 参数增删改( |
| 压缩、恢复、重命名、删除特征,特征参数 |
| 再生、保存、单位、材料、关系式、擦除等 |
| 族表、工程图、注释、层 |
| 装配(无约束时封装放置)、导入、mapkey(需 |
| 导出 STEP/IGES/STL、PDF、3D PDF、图片 |
| 活动模型快照:尺寸、包围盒、质量属性、特征、Windchill 检出状态 |
| 列表查询 |
| 查 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 toolschamferA
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
Scored across 28 tools
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.
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.
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.
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
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Build and run AI workflows, agents, data tables and 1000+ API integrations from any MCP client.
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables 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.181-
- FlicenseNot gradedqualityCmaintenanceEnables AI clients to create, edit, and export CAD models and drawings in a locally installed FreeCAD via MCP.3-
- AlicenseNot gradedqualityBmaintenanceEnables 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.23MIT
- FlicenseNot gradedqualityAmaintenanceEnables 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.-