An MCP server for JupyterCAD that allows you to control it using LLMs/natural language. Suggestions and contributions are very welcome. The default transport mechanism is stdio. To start the server with stdio, use the following command: To use the streamable-http transport, use this command instead: An example using the OpenAI Agents SDK is available at examples/openaiagentsclient.py. To run it, f
Add this skill
npx mdskills install asmith26/jupytercad-mcpComprehensive CAD control MCP server with clear setup docs and rich tool set for 3D modeling operations
An MCP server for JupyterCAD that allows you to control it using LLMs/natural language.
https://github.com/user-attachments/assets/7edb31b2-2c80-4096-9d9c-048ae27c54e7
Suggestions and contributions are very welcome.
The default transport mechanism is stdio. To start the server with stdio, use the following command:
uvx --with jupytercad-mcp jupytercad-mcp
To use the streamable-http transport, use this command instead:
uvx --with jupytercad-mcp jupytercad-mcp streamable-http
An example using the OpenAI Agents SDK is available at examples/openai_agents_client.py. To run it, follow these steps:
Clone the repository and navigate into the directory:
git clone git@github.com:asmith26/jupytercad-mcp.git
cd jupytercad-mcp
Install the OpenAI Agents SDK. A Makefile target is provided for convenience:
make setup-examples-env
In examples/openai_agents_client.py, update line 13 to configure a MODEL (see supported models).
Run JupyterLab from the project's root directory:
make jupyter-lab
In JupyterLab, create a new "CAD file" and rename it to my_cad_design.jcad. This file path matches the default JCAD_PATH in the example, allowing you to visualise the changes made by the JupyterCAD MCP server.
(Optional) The OpenAI Agents SDK supports tracing to record events like LLM generations and tool calls. To enable it, set USE_MLFLOW_TRACING=True and run the MLflow UI:
make mlflow-ui
Run the example with the default instruction, "Add a box with width/height/depth 1":
make example-openai-agents-client
The example includes an interactive chat interface using the OpenAI Agents SDK's
REPL utility. To enable it, set USE_REPL=True.
streamable-httpTo use the streamable-http transport, first start the MCP server:
uvx --with jupytercad-mcp jupytercad-mcp streamable-http
Then, run the example with the TRANSPORT variable set to "streamable-http" in the client example.
The following tools are available:
Install via CLI
npx mdskills install asmith26/jupytercad-mcpJupytercad MCP is a free, open-source AI agent skill. An MCP server for JupyterCAD that allows you to control it using LLMs/natural language. Suggestions and contributions are very welcome. The default transport mechanism is stdio. To start the server with stdio, use the following command: To use the streamable-http transport, use this command instead: An example using the OpenAI Agents SDK is available at examples/openaiagentsclient.py. To run it, f
Install Jupytercad MCP with a single command:
npx mdskills install asmith26/jupytercad-mcpThis downloads the skill files into your project and your AI agent picks them up automatically.
Jupytercad MCP works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Gemini Cli, Amp, Roo Code, Goose. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.