jupytercad-mcp 是一个用于 JupyterCAD 的 MCP(Model Context Protocol)服务器,旨在让用户通过 LLM 或自然语言来控制 JupyterCAD 的 CAD 操作。该项目由 asmith26 在 GitHub 上开源,欢迎建议和贡献。
【用途】 该项目的主要用途是将 JupyterCAD 的建模能力接入到支持 MCP 的 LLM 应用中,使 AI 能够以自然语言指令直接操作 CAD 文档,完成几何体创建、修改与布尔运算等任务。
【主要能力】 服务器提供了一组工具,覆盖 CAD 设计的常见操作:
- get_current_cad_design:读取当前 JCAD 文档内容。
- remove:从文档中移除对象。
- rename:重命名文档中的对象。
- add_annotation:为文档添加注释。
- remove_annotation:移除文档中的注释。
- add_occ_shape:向文档添加 OpenCascade TopoDS 形状。
- add_box、add_cone、add_cylinder、add_sphere、add_torus:分别添加盒子、圆锥、圆柱、球体、圆环。
- cut、fuse、intersect:在两个对象之间执行切、并、交布尔运算。
- chamfer、fillet:对对象执行倒角、圆角操作。
- set_visible:设置对象的可见性。
- set_color:设置对象的颜色。
【使用方式】 默认传输机制是 stdio,可使用相应命令启动服务器;若需使用 streamable-http 传输,则改用另一命令启动。项目在 examples/openai_agents_client.py 中提供了一个使用 OpenAI Agents SDK 的示例。运行示例的步骤包括:
- 克隆仓库并进入目录:git clone git@github.com:asmith26/jupytercad-mcp.git;cd jupytercad-mcp
- 安装 OpenAI Agents SDK,可使用提供的 Makefile 目标:make setup-examples-env
- 在 examples/openai_agents_client.py 中更新第 13 行以配置 MODEL(参见支持的模型)。
- 从项目根目录运行 JupyterLab:make jupyter-lab
- 在 JupyterLab 中创建一个新的“CAD file”,并将其重命名为 my_cad_design.jcad。该文件路径与示例中的默认 JCAD_PATH 匹配,以便可视化 JupyterCAD MCP 服务器所做的修改。
- 运行示例,默认指令为“Add a box with width/height/depth 1”:make example-openai-agents-client 示例还包含基于 OpenAI Agents SDK 的 REPL 工具的交互式聊天界面,可通过设置 USE_REPL=True 启用。若要使用 streamable-http 传输,需先启动 MCP 服务器,然后在客户端示例中将 TRANSPORT 变量设为 "streamable-http" 并运行示例。 可选地,OpenAI Agents SDK 支持追踪以记录 LLM 生成和工具调用等事件,可通过设置 USE_MLFLOW_TRACING=True 并运行 MLflow UI(make mlflow-ui)来启用。
【适用场景】 适用于希望借助 LLM 在 JupyterLab 环境中进行自然语言驱动的 CAD 建模、几何体操作和布尔运算的用户或开发者。
【限制】 资料中未明确列出具体限制或使用前提的详细说明;部分功能(如追踪、REPL)需额外配置。