AI 与 MCP

给你的 AI 一台弄不坏的机床。

语言模型写出的 G 代码看起来都对。Studio 告诉你它到底对不对。内置的 MCP 服务器让 AI 助手摆好毛坯、让 Studio 的 CAM 写程序,在孪生上跑一遍,读回发生了什么——报警、碰撞、受力、颤振、零件的形状——然后再让它更快。

内置于 Studio 1.2 · 47 个工具 · MCP 协议 2024-11-05 至 2026-07-28 · stdio 与本机 HTTP

它们怎样连在一起

AI 客户端启动 TwinwrightStudio.exe --mcp,它连接你电脑上的孪生主机。主机在两次对话之间保留它的孪生:默认是一台练习机(sandbox);只有你打开窗口里那台机床的 AI 权限,它才能用你窗口里的机床。每次仿真都在装夹的隐藏副本上进行——从工件现在的样子开始,要求时也可以从新毛坯开始——比实时快。

两种接入 AI 的方式

用你已经在用的 AI 客户端,或者在 Studio 里直接和模型对话。两种方式用的是同样的工具、同样的孪生。

你的 AI 客户端,经 MCP

打开 AI 开关,点“连接”。

Studio 先把要写的内容给你看,再写进客户端的配置;或者打开客户端自己的一键安装链接。其他 MCP 客户端可以复制命令或本机网址粘贴进去。

  • Claude 桌面版、ChatGPT 桌面版(Codex 与 Work 模式):替你写好配置
  • Cursor、VS Code(GitHub Copilot)、LM Studio:打开它们的一键安装链接
  • Claude Code、Cherry Studio、Trae、Kimi Code 等:复制命令或 HTTP 网址
AI ▾ → 连接 AI 客户端。底部的提示:AI 碰不到实机,改动你窗口里的机床要你同意。
AI ▾ → 连接 AI 客户端。底部的提示:AI 碰不到实机,改动你窗口里的机床要你同意。
Studio 里的 AI 助手

自带密钥,或用本机模型。

AI 助手面板可以连 Anthropic、OpenAI、DeepSeek、通义千问(百炼)、Kimi、智谱 GLM 或任何兼容 OpenAI 的接口,也可以连你自己电脑上 LM Studio 或 Ollama 里的模型。它可以附上窗口里的程序、装夹和检查结果,并把孪生画的图直接显示在对话里。

  • 密钥用 Windows DPAPI 加密保存,只发给你选的提供方
  • 用本机模型时,什么都不离开你的电脑
  • “复制给 AI”“从 AI 粘贴”适用于任何聊天应用,不需要 MCP
AI 助手面板里的一张 result_image 结果图——出自自检,自检用一个脚本模拟模型来驱动面板。
AI 助手面板里的一张 result_image 结果图——出自自检,自检用一个脚本模拟模型来驱动面板。

AI 能做什么

四十七个工具。每个都返回一段模型能据以推理的简短摘要和带结构定义的数据,每个结果都写明来自哪台机器。

机床
machine_status状态、报警及其含义、是否回零、位置、刀具、毛坯;以及其他机床
machine_control回零、解锁、复位、保持、继续、停止、移动、上电、急停
machine_mdi逐行发送 MDI,每行一个应答,遇到第一处拒绝就停
licence_status版本档、有效期到哪天、包含哪些功能
machine_library窗口的机床库
装夹
setup_workpiece把毛坯放进虎钳、压在压板下、用胶带粘住或取下——也可以用你自己的 STL
setup_tool主轴上的刀,以及 M6 用的刀具表
setup_work_zero把 G54 设在毛坯的角上或中心
setup_part用来比对的设计零件(STL)
setup_copy · setup_example把装夹连同已切掉的材料复制到另一台孪生;摆好一个示例
CAM
geometry_import存一个形状——SVG、DXF、文字、公式、基本形或点列——带名字、版本、概要和预览图
program_generateCAM:从形状和工序生成程序,2.5 轴或三轴,每个切削参数都带理由,并经过一次试跑
geometry_nest在板材上排布零件,小件放进大件的孔里,带连接桥(专业版)
job_get · job_edit读出程序的 CAM 作业并修改——改数值、加删或调整工序——生成程序的下一个版本
测头与检验
probe_cycle边、角、孔、凸台、顶面或环规标定,先在孪生里试;只有你同意才设工件零点
inspect_part按设计测量成品:型腔、轮廓、孔、凸台、倒角、V 槽,按 ISO 2768 或 ISO 286 判定(专业版)
inspect_report检验记录出 CSV 和 PDF,可逐字节重出,并串在审计日志里(专业版)
setup_sheet可打印的装夹单:毛坯、夹具、刀具、零点、毛坯上方的空间、工序和时间(专业版)
程序
program_check控制器的检查模式、对照装夹的路径预览,以及 15 条静态规则
program_simulate在隐藏副本上跑完,从工件现状或新毛坯开始:用时、报警、碰撞、快移撞料、负载、颤振、零件偏差
program_run · program_load在机床本身上运行或载入(你窗口里的机床会先问你)
program_debug · program_restart跑到某一行、查看、单步;重新开始用的起始段
program_edit · program_optimize按意图改程序(进给、转速、Z 平移、安全高度),存成新版本;优化器
program_versions列出、读取、保存和对比版本
运行与结果
run_status · run_profile等待或停止长时间运行;逐行统计
result_compare与设计零件的偏差,数字形式
result_image图:工件、刀路、偏差图、最慢的行、随时间变化的曲线、两次运行对比
log_query查审计日志:谁、何时、对哪台机床、做了什么
result_export把加工后的零件导出成 STL 文件或高度图
零件库
part_save · part_list · part_get把切好的零件连同程序版本、工件零点、毛坯、装夹和量件结果存下;列出记录、读一条
part_load · part_export照原样把机床装好再做一件;导出一条记录的零件
part_update · part_delete名称、标签和备注;删除或恢复一条记录
窗口和帮助
window_show讲解时把工作区、三维视图的某一面、程序路径或“准备”面板的某一步给你看
settings读窗口的设置;你点“允许”后才改语言、地区、单位、货币或机时费率
manual_search查 Studio 的手册并据此回答
report_draft · report_list替你起草问题报告,由你看过再发;你的报告的状态和我们的回复

一次真实的会话

2026 年 10 月 9 日经 MCP 对 Studio 1.0 的真实调用。由脚本扮演 AI 客户端;工具结果来自孪生,有删节。

你
这是一个型腔程序,毛坯是压板压着的 60 × 40 × 10 mm 的 6061。加工前在 MC-1 上帮我检查一下。
助手
我在练习机上把毛坯压在压板下,主轴装上 6 mm 立铣刀,G54 设在毛坯左前上角,然后跑控制器的检查模式。
工具
setup_workpiece → {"placed": true, "material": "6061-T6", "fixture": "clamps", "mass_g": 64.8} setup_tool → {"tool": "flat 6 n3 L20", "stick_out_offset_mm": 4.5} setup_work_zero → {"g54_mpos": [-130.002, -95.002, -65.501]} program_check → {"refused": [{"line": 14, "code": 2, "text": "G1 X42 F", "error": "A number is missing or is not a valid number."}]}
助手
第 14 行的 F 后面没有数值。改好之后控制器接受了每一行,但按装夹预览,动机床之前还能看出两个问题。
工具
program_check → {"refused": [], "preview": {"issues": [ {"line": 9, "kind": "rapid_cut", "text": "Line 9: a rapid move (G0) cuts 1.00 mm into the workpiece"}, {"line": 58, "kind": "collision", "text": "Line 58: tool hit clamp 2 strap (X 80.966 Y 62.049 Z -60.501)"}]}, "static_rules": [{"line": 9, "rule": "S10", "severity": "warning"}]}
助手
为了看清后果,我在装夹的隐藏副本上把它完整跑了一遍。
工具
program_simulate → {"completed": false, "simulated_time_s": 85.64, "final_state": "Alarm", "issues": [ "1 collision(s): tool/clamp2_strap at machine position [80.97, 62.05, -60.50] mm", "5 rapid move(s) into material (28.215 mm3 cut at rapid rate)", "drive alarm(s): X following error", "lost steps X/Y/Z: 320 34 0 (1.25 um each): the drives fell behind", "chatter on 27 line(s) (10-18, 26-34, 42-50), worst at line 26: stability margin 1.88 > 1 - the cut there is 1.00 mm deep, 1.9 times the stable depth (about 0.53 mm) at S15300; cut at most 0.43 mm deep there …", "ALARM:17 - A motor drive reports a fault.", …], "run": "r1"}
助手
有两个真问题,还有一个要知道的。第一层用快移扎进毛坯,最后的 G0 X0 Y0 让刀撞上左前方的压板——驱动器报故障,机床停下。我把下刀改成 G1 Z-1 F150,停刀改成 G53 G0 Z-2,避开压板。孪生还看到颤振:这把刀在 15,300 rpm 下,每层 1 mm 大约是稳定切深的两倍。
工具
program_simulate → {"completed": true, "simulated_time_s": 88.51, "issues": [ "chatter on 27 line(s) (10-18, 26-34, 42-50), worst at line 42: stability margin 1.88 > 1 - … cut at most 0.43 mm deep there …"], "material_removed_mm3": 1776.79, "replay_hash": "964c15c53873b6b6", "run": "r2"}
助手
没有碰撞,也没有快移切削:机床时间 1 分 29 秒,去除 1777 mm³——30 × 20 × 3 mm 的型腔减去刀具圆角。颤振要等每层更薄才会消失:最多 0.43 mm。优化器只改进给,所以它省出一点时间,切深留给你定。
工具
program_optimize → {"optimized": true, "verdict": "3.22 s faster (3.6 %), no line cuts heavier than the original's heaviest", "plan": {"changes": [{"line": 19, "what": "F", "before": 600, "after": 750, "why": "a lighter cut: up to the spindle load limit"}, …], "notes": "Tool 0 still chatters (margin 1.88): … a shallower cut does."}, "saved": {"name": "pocket_v3.nc", "version": 1}}
助手
两个版本都存好了。开切之前,我建议把每层改成 0.4 mm,孪生就不再看到颤振——要我改吗?

AI 看到的图

result_image 把孪生的结果画成图,旁边用文字写出关键数字。下面三张就来自上面那次会话。

第一次运行随时间的变化(timeline):12 s 处的快移下刀让主轴负载冲到 153 %、颤振裕度到 1.72;86 s 处刀撞上压板。
第一次运行随时间的变化(timeline):12 s 处的快移下刀让主轴负载冲到 153 %、颤振裕度到 1.72;86 s 处刀撞上压板。
改好后那次运行的工件(workpiece),按高度上色,夹在两块压板之间。
改好后那次运行的工件(workpiece),按高度上色,夹在两块压板之间。
改好后那次运行最慢的十二行,以及限制每一行的原因(profile)。
改好后那次运行最慢的十二行,以及限制每一行的原因(profile)。

设置

在 Studio 里:打开 AI 开关,然后 AI ▾ → 连接 AI 客户端,选你的客户端。要手工配置,就让客户端运行 TwinwrightStudio.exe(装在 %LOCALAPPDATA%\Programs\Twinwright Studio),参数为 --mcp:

Claude 桌面版 · claude_desktop_config.json
{
  "mcpServers": {
    "twinwright": {
      "command": "C:\\Users\\<你>\\AppData\\Local\\Programs\\Twinwright Studio\\TwinwrightStudio.exe",
      "args": ["--mcp"]
    }
  }
}
ChatGPT 桌面版 · %USERPROFILE%\.codex\config.toml
[mcp_servers.twinwright]
command = 'C:\Users\<你>\AppData\Local\Programs\Twinwright Studio\TwinwrightStudio.exe'
args = ["--mcp"]
VS Code · .vscode/mcp.json
{
  "servers": {
    "twinwright": {
      "type": "stdio",
      "command": "C:\\Users\\<你>\\AppData\\Local\\Programs\\Twinwright Studio\\TwinwrightStudio.exe",
      "args": ["--mcp"]
    }
  }
}
命令行
# Claude Code
claude mcp add twinwright -- "C:\Users\<你>\AppData\Local\Programs\Twinwright Studio\TwinwrightStudio.exe" --mcp
# 任何客户端经 HTTP,仅限本机
"C:\Users\<你>\AppData\Local\Programs\Twinwright Studio\TwinwrightStudio.exe" --mcp-http 8766 --mcp-token <你的令牌>
#   地址 http://127.0.0.1:8766/mcp,请求头 Authorization: Bearer <你的令牌>
审计日志

谁、何时、对哪台机床、做了什么。

Studio 在你的电脑上记一份审计日志:窗口里操作员的操作、每一次 AI 工具调用(带客户端的名字)、报警、碰撞、程序的开始和结束。每条记录都带着前一条的 SHA-256 哈希,跨天相连,所以改过或删掉的记录会露出来。

  • 五档详细程度,可按类别分别设置:机床、操作、程序、装夹、AI、系统
  • 在日志窗口或用 TwinwrightStudio.exe --audit-verify 校验哈希链;可导出 CSV
  • 默认保留 180 天或最多 2 GB;API 密钥和令牌会被遮住
审计日志窗口(Ctrl+L)。底部写着:1 个文件、83 条记录,哈希链从头到尾对得上。
审计日志窗口(Ctrl+L)。底部写着:1 个文件、83 条记录,哈希链从头到尾对得上。

从设计上让 AI 只待在孪生里

没有通往硬件的路

MCP 服务器和孪生机主机只启动、驱动仿真的机床,与真实的 MC-1 没有串口或网络连接;影子模式下 AI 只能读。

不打开就不接入

窗口的 AI 开关默认关闭。关闭时,AI 客户端只能在你看不到的练习机(sandbox)上工作;练习机的结果会写明这一点,AI 不会把它当成你的机床。

你的窗口要你点头

AI 想改动你窗口里的机床时,状态头会问“同意 / 拒绝”;60 秒不答视为拒绝。要不要问,由你决定。

仿真在副本上进行

program_simulate 在装夹的隐藏副本上运行——从工件现在的样子开始,要求时也可以从新毛坯开始——所以试一个程序,永远不会改变被询问的那台机床。

机床由人来开

AI 验证过的程序只是一个文件。由人把它载入真机、设好零点、按下循环启动。

可重放的证据

每次运行结束都有一个重放指纹:同一个程序、同样的装夹,在任何电脑上指纹都相同,所以 AI 说的话可以核对。

接下来

规划中

同匠云

为只能连互联网的客户端——claude.ai、网页版 ChatGPT、Gemini、微软 Copilot——提供托管的 MCP 接入点,带登录和按用户隔离的孪生。

规划中

可交互的结果卡片

在支持 MCP Apps 的客户端里,对话中的图可以旋转、点击。

规划中

给 AI 的数控基准测试

一组由孪生自动评分的加工任务,用来比较各个模型写 G 代码、改 G 代码的能力。

FAQ

哪些 AI 客户端能用?

任何能启动本机程序的 MCP 客户端:Claude 桌面版、Claude Code、ChatGPT 桌面版(Codex 与 Work 模式)、Cursor、VS Code、LM Studio、Cherry Studio、Trae 等。claude.ai、网页版 ChatGPT 这类网页客户端只能连互联网上的服务器;计划中的同匠云会提供一个。每个版本都用自动化的 MCP 客户端经 stdio 和 HTTP 测试;一键登记按各客户端公开的配置方式实现。

AI 能看到我的文件吗?

只能看到你给它的,或工具返回的。服务器在你的电脑上运行,同匠收不到任何东西。用云端模型时,你的提问和工具结果会按该提供方的条款发给它。

要花钱吗?

MCP 服务器和 AI 助手都是 Studio 的一部分,免费。云端模型由提供方按你的密钥计费;本机模型不花钱。

一次仿真最长要多久?

一次调用在 40 秒内回答;更长的运行先回一个运行编号,由 run_status 取结果,因为有的客户端只给一次工具调用 60 秒。带材料去除的仿真通常比实时快几倍(1.0 的示例:在当前的台式电脑上 8–28 倍);深腔的螺旋下刀这类密集段落,可能短时间比实时还慢(示例 14 最慢的 5 秒约 0.6 倍)。

这是一个写 G 代码的 AI 吗?

不是。它是一条路:让任何 AI——或任何程序——请 Studio 的 CAM 从形状写出 G 代码,用机床的物理模型检验 G 代码,并凭证据改进它。可以和你的 CAM、你自己的代码或 AI 助手一起用。

AI 会操作我的真机吗?

AI 在孪生里大胆、在真机上谨慎。在 Studio 里,助手只在孪生上工作——那里它可以随便试。连着真实的 MC-1 时(影子模式,1.0 里是预览),AI 只读:读机床测得和记录的数据、做分析;它不启动程序,也不改设置。它的每次调用默认都记进审计日志。