Craft real CAD with Claude. MCP server for Onshape.
Project description
shapecraft
Craft real CAD with Claude. Any shape. Any tool.
Status: v0.1.2-alpha — auth + reads working, writes under active repair. Live integration testing against Onshape revealed that the feature-write path silently produced solver errors in v0.1.0 / v0.1.1 (HTTP 200 but featureStatus=ERROR). v0.1.2a1 makes add_feature raise on solver rejection so failures surface immediately. Systematic feature-payload fixes land in v0.1.3. See CHANGELOG.md for the full list of known-broken tools.
shapecraft gives Claude first-class tools to drive professional parametric CAD. The MCP surface covers document/workspace management, sketch primitives + splines + constraints, every core feature (extrude/revolve/loft/fillet/chamfer/pattern/boolean/thicken), offset planes, variable tables, FeatureScript evaluation, exports to STL/STEP/GLTF, and assembly operations with 4 mate types — but most feature-write tools are currently producing solver-rejected payloads and will raise OnshapeError until v0.1.3 lands.
Install
uvx shapecraft # or: pip install shapecraft
Register with Claude Code
claude mcp add shapecraft \
-s user \
-e ONSHAPE_ACCESS_KEY=<your_key> \
-e ONSHAPE_SECRET_KEY=<your_secret> \
-- uvx shapecraft
Get your keys at dev-portal.onshape.com.
Tools (MCP surface covers ~48 operations, many currently failing at the solver — see CHANGELOG)
shapecraft_list_documentsshapecraft_create_documentshapecraft_create_part_studioshapecraft_sketch_rectangleshapecraft_sketch_spline(NEW vs hedless)shapecraft_offset_plane(NEW)shapecraft_extrudewith symmetric + reverse flags (upgraded)shapecraft_loft(NEW)
Plus build_coincident_constraint helper (sketch constraint builder — first of 7 coming in T1).
See the design spec for the full T1 → T3 roadmap.
Development
python3 -m venv venv
./venv/bin/pip install -e ".[dev]"
./venv/bin/pytest tests/unit -v
Integration tests (tests/integration/) hit live Onshape and require ONSHAPE_ACCESS_KEY/ONSHAPE_SECRET_KEY env vars.
Releasing
- Bump version in
pyproject.toml - Update
CHANGELOG.md git tag v0.1.0 && git push --tagsrelease.ymlpublishes to PyPI via trusted publishing (configure once at pypi.org)
License
MIT. See LICENSE.
Credits
Inspired by hedless/onshape-mcp (MIT per its README) — shapecraft is an independent reimplementation that covers a broader slice of the Onshape REST and FeatureScript API.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file shapecraft-0.1.2.tar.gz.
File metadata
- Download URL: shapecraft-0.1.2.tar.gz
- Upload date:
- Size: 101.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
887a6b228583b2613531df9ef0021eab90ae715758fa74e0f749afd1e294a9d3
|
|
| MD5 |
0b1e3a27a12409abcaf8e6b0dceac4f9
|
|
| BLAKE2b-256 |
3099d3c8a8ce72fc5602a71bfead14388769558672f43a13fa9cd1b50f89f4be
|
Provenance
The following attestation bundles were made for shapecraft-0.1.2.tar.gz:
Publisher:
release.yml on NewTurn2017/shapecraft
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shapecraft-0.1.2.tar.gz -
Subject digest:
887a6b228583b2613531df9ef0021eab90ae715758fa74e0f749afd1e294a9d3 - Sigstore transparency entry: 1340434673
- Sigstore integration time:
-
Permalink:
NewTurn2017/shapecraft@006775390dd531f0b5cb80f0729479ae53ae422d -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/NewTurn2017
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@006775390dd531f0b5cb80f0729479ae53ae422d -
Trigger Event:
push
-
Statement type:
File details
Details for the file shapecraft-0.1.2-py3-none-any.whl.
File metadata
- Download URL: shapecraft-0.1.2-py3-none-any.whl
- Upload date:
- Size: 39.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e3e6593adaf4b972d62187ba4e7a021bee88a96cd678291feb4f7f4c30a0c89
|
|
| MD5 |
80e00c8f09fb990dae49139901e14845
|
|
| BLAKE2b-256 |
10ba0ead077601838cba5a2862f363b779e6fbb2ea9ef6af1c19e8f7b850c822
|
Provenance
The following attestation bundles were made for shapecraft-0.1.2-py3-none-any.whl:
Publisher:
release.yml on NewTurn2017/shapecraft
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shapecraft-0.1.2-py3-none-any.whl -
Subject digest:
3e3e6593adaf4b972d62187ba4e7a021bee88a96cd678291feb4f7f4c30a0c89 - Sigstore transparency entry: 1340434679
- Sigstore integration time:
-
Permalink:
NewTurn2017/shapecraft@006775390dd531f0b5cb80f0729479ae53ae422d -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/NewTurn2017
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@006775390dd531f0b5cb80f0729479ae53ae422d -
Trigger Event:
push
-
Statement type: