jupytercad-mcp
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.
Usage
The default transport mechanism is stdio. To start the server with stdio, use the following command:
uvx --with jupytercad-mcp jupytercad-mcpTo use the streamable-http transport, use this command instead:
uvx --with jupytercad-mcp jupytercad-mcp streamable-httpExample
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-mcpInstall the OpenAI Agents SDK. A Makefile target is provided for convenience:
make setup-examples-envIn 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-labIn JupyterLab, create a new "CAD file" and rename it to my_cad_design.jcad. This file path matches the default
JCAD_PATHin 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=Trueand run the MLflow UI:make mlflow-uiRun the example with the default instruction, "Add a box with width/height/depth 1":
make example-openai-agents-client






