1. Conduid
  2. Browser
  3. asmith26/jupytercad-mcp
MCP server · Browser

asmith26/jupytercad-mcp

An MCP server for JupyterCAD that allows you to control it using LLMs/natural language.

Unclaimed Apache-2.0 last commit a year ago devtoolsjupyterlabjupytercadmcpcomputer-aided-designcad
59Fair

Scored 1 hours ago · breakdown

About asmith26/jupytercad-mcp

asmith26/jupytercad-mcp is an MCP server published by asmith26 in the Browser category: an MCP server for JupyterCAD that allows you to control it using LLMs/natural language.

The repository has 21 stars and 4 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/asmith26/jupytercad-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (18)

add_annotationAdd an annotation to the document.

Parameters not published.

add_boxAdd a box to the document.

Parameters not published.

add_coneAdd a cone to the document.

Parameters not published.

add_cylinderAdd a cylinder to the document.

Parameters not published.

add_occ_shapeAdd an OpenCascade TopoDS shape to the document.

Parameters not published.

add_sphereAdd a sphere to the document.

Parameters not published.

add_torusAdd a torus to the document.

Parameters not published.

chamferApply a chamfer operation on an object.

Parameters not published.

cutApply a cut boolean operation between two objects.

Parameters not published.

filletApply a fillet operation on an object.

Parameters not published.

Show all 18 tools
fuseApply a union boolean operation between two objects.

Parameters not published.

get_current_cad_designReads the current content of the JCAD document.

Parameters not published.

intersectApply an intersection boolean operation between two objects.

Parameters not published.

removeRemove an object from the document.

Parameters not published.

remove_annotationRemove an annotation from the document.

Parameters not published.

renameRename an object in the document.

Parameters not published.

set_colorSets the color of an object.

Parameters not published.

set_visibleSets the visibility of an object.

Parameters not published.

Ask AI

✦

Ask AI about asmith26/jupytercad-mcp

Powered by Claude · Grounded in docs

I know everything about asmith26/jupytercad-mcp. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 1 hours ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v0.1.1Release v0.1.1 · 7 Oct 2025
v0.1.1a4Release v0.1.1a4 · 7 Oct 2025
v0.1.1a3Release v0.1.1a3 · 7 Oct 2025
v0.1.1a2Release v0.1.1a2 · 6 Oct 2025
v0.1.1a1Release v0.1.1a1 · 6 Oct 2025

README

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-mcp

To use the streamable-http transport, use this command instead:

uvx --with jupytercad-mcp jupytercad-mcp streamable-http

Example

An example using the OpenAI Agents SDK is available at examples/openai_agents_client.py. To run it, follow these steps:

  1. Clone the repository and navigate into the directory:

    git clone git@github.com:asmith26/jupytercad-mcp.git
    cd jupytercad-mcp
    
  2. Install the OpenAI Agents SDK. A Makefile target is provided for convenience:

    make setup-examples-env
    
  3. In examples/openai_agents_client.py, update line 13 to configure a MODEL (see supported models).

  4. Run JupyterLab from the project's root directory:

    make jupyter-lab
    
  5. 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.

  6. (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
    
  7. Run the example with the default instruction, "Add a box with width/height/depth 1":

    make example-openai-agents-client
    

Interactive Chat Interface

The example includes an interactive chat interface using the OpenAI Agents SDK's REPL utility. To enable it, set USE_REPL=True.

streamable-http

To 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.

Tools

The following tools are available:

  • get_current_cad_design: Reads the current content of the JCAD document.
  • remove: Remove an object from the document.
  • rename: Rename an object in the document.
  • add_annotation: Add an annotation to the document.
  • remove_annotation: Remove an annotation from the document.
  • add_occ_shape: Add an OpenCascade TopoDS shape to the document.
  • add_box: Add a box to the document.
  • add_cone: Add a cone to the document.
  • add_cylinder: Add a cylinder to the document.
  • add_sphere: Add a sphere to the document.
  • add_torus: Add a torus to the document.
  • cut: Apply a cut boolean operation between two objects.
  • fuse: Apply a union boolean operation between two objects.
  • intersect: Apply an intersection boolean operation between two objects.
  • chamfer: Apply a chamfer operation on an object.
  • fillet: Apply a fillet operation on an object.
  • set_visible: Sets the visibility of an object.
  • set_color: Sets the color of an object.

README fetched from the repository 1 hours ago. The original is authoritative.

Questions

About asmith26/jupytercad-mcp

How do I install asmith26/jupytercad-mcp?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is asmith26/jupytercad-mcp safe to use with an AI agent?

Its trust score is 59 out of 100 (fair). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is asmith26/jupytercad-mcp still maintained?

The last commit was a year ago and 1 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.