[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2277":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":13,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":15,"starSnapshotCount":15,"syncStatus":13,"lastSyncTime":27,"discoverSource":28},2277,"jarvis-onshape-mcp","ReshefElisha\u002Fjarvis-onshape-mcp","ReshefElisha","Jarvis Onshape MCP — Claude Code plugin for driving real Onshape CAD. Vision-decomposition skill + truth-telling + parametric iteration + FeatureScript.",null,"Python",129,14,2,3,0,4,17,6,3.53,"Other",false,"main",[],"2026-06-12 02:00:39","# Jarvis Onshape MCP\n\nClaude Code plugin that lets Claude drive real Onshape CAD: sketches, extrudes,\nfillets, mates, parametric iteration via Variable Studios, custom FeatureScript\nfeatures. Every mutating tool returns a structured truth: what changed, what\nwarnings the regenerator raised, and hints for the next move. Multi-view PNG\nrenders come back as image content so Claude can actually see the part.\n\nIncludes a vision-decomposition skill that walks Claude through reading an\nengineering reference image *before* building. See `RESEARCH.md` for the\nbenchmark data behind that workflow.\n\n> \"felt dramatically more like writing code than anything I've tried with an LLM CAD tool.\"\n\n## What you get\n\n- **Truth-telling on every mutation.** Every tool returns `{ok, status,\n  feature_id, feature_name, error_message, changes?, hints?}`. Silent regen\n  failures are surfaced, warnings are enriched with actionable fixes.\n- **Vision.** `render_part_studio_views` and `render_assembly_views` return\n  shaded PNGs (front\u002Ftop\u002Fright\u002Fiso). `crop_image` zooms in on regions.\n  `load_local_image` caches a reference image (drawing, photo, sketch) the\n  user shares so you can crop into it the same way. `compare_to_reference`\n  renders your in-progress part and composites it directly under the\n  reference for side-by-side visual diff in a single image.\n- **Vision-decomposition skill.** `\u002Fskill vision-decompose` — when the\n  user gives you a reference image and asks you to build it, this skill\n  walks you through a structured zoom-and-describe pass *before* you start\n  building. Produces a feature tree the user can sanity-check. We measured\n  this turns \"agent skims image and builds the wrong shape\" into \"agent\n  reads image carefully, asks the user to confirm, then builds.\" See the\n  research writeup below.\n- **Drawing OCR.** `extract_drawing_dimensions` runs Tesseract on an\n  engineering drawing and returns every numeric callout (length \u002F radius \u002F\n  diameter \u002F thread \u002F angle \u002F count) grouped by kind, with pixel positions.\n  Use it on hard-to-read drawing PNGs where small dim text gets clobbered\n  by Claude's vision downsampling.\n- **Entity discovery with outward normals.** `list_entities` returns deterministic\n  face IDs, surface types, and normals so follow-up features can target geometry\n  without guessing.\n- **Per-feature geometric diffs.** After each feature, you get a `changes:`\n  block with bbox delta, part count delta, mass delta — you see the effect\n  before rendering.\n- **Parametric iteration.** First-class Variable Studios. `set_variable` is\n  upsert-by-name, so reparametrizing NEMA 17 → NEMA 23 is a few values away.\n- **FeatureScript escape hatch.** `write_featurescript_feature` lets Claude\n  write a custom feature directly (helices, swept threads, shells with\n  parameters) when the tool-per-primitive surface isn't enough. Regen errors\n  surface FS notice text.\n- **Hints rotation.** When a feature fails with a known pattern, hints point\n  at the fix (`BOOLEAN_SUBTRACT_NO_OP → oppositeDirection`,\n  `SKETCH_DIMENSION_MISSING_PARAMETER → add missing variable`, …).\n- **Assembly.** Fastened, slider, revolute, cylindrical mates; face-coordinate\n  systems; instance alignment; bounding-box interference checks.\n\n## Install\n\n```\n\u002Fplugin install github:ReshefElisha\u002Fjarvis-onshape-mcp\n```\n\nClaude Code will prompt you for:\n\n- `ONSHAPE_API_KEY` — the \"Access Key\" from the Onshape developer portal.\n- `ONSHAPE_API_SECRET` — the \"Secret Key\" shown once when you create the key pair.\n\nGet a key pair at [dev-portal.onshape.com](https:\u002F\u002Fdev-portal.onshape.com\u002F).\nBoth values are stored in the OS keychain and never written to disk in plaintext.\n\n### Requirements\n\n- [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F) on your PATH (`brew install uv` or the\n  official installer). The plugin launches its MCP server via `uv run`.\n- Claude Code desktop or CLI with plugin support.\n- An Onshape account.\n\n## Quick start\n\nOnce installed, restart Claude Code and try:\n\n> \"Create a new Onshape document, add a Part Studio, and build me a\n>  60×40×8 mm mounting plate with four ø4 mm holes 6 mm in from the corners.\"\n\nClaude will render the result, show you the bbox delta, and surface any\nregen warnings. If it takes a wrong direction on an extrude, the\n`BOOLEAN_SUBTRACT_NO_OP` hint will kick in and it'll self-correct.\n\n## Protocol guide\n\nTwo plugin skills auto-discovered by Claude Code:\n\n- `skills\u002Fonshape\u002FSKILL.md` — **CAD build skill**. Loaded into every Onshape\n  session. Covers units (bare numbers in mm), coordinate frames (Front is XZ\n  with a Y-normal sign flip), render-first and entity-first workflows,\n  iteration discipline, when to reach for `write_featurescript_feature`,\n  and the gotchas (REMOVE-on-face auto-flip, Variable Studios as separate\n  elements, deterministic ID remapping).\n\n- `skills\u002Fvision-decompose\u002FSKILL.md` — **Vision decomposition**. Use this\n  *before* building when the user shares a reference image. Walks the agent\n  through overview → cache → zoom-into-each-feature → structured spec.\n  Output is a feature tree (type, role, size, position, face) the user can\n  review before committing turns to the build. See \"Recommended workflow\"\n  below.\n\nYou can load either into any Claude session as a system prompt to get the\nsame behavior outside the plugin context.\n\n## Recommended workflow\n\nThe plugin works best as a copilot, not an autocomplete. Two modes:\n\n**Mode A — text-first design.** Describe the part in plain text (\"a 100×60×30\nmm aluminum heat sink with 1mm fins on 3mm pitch and 4 corner Ø3.5 mounting\nholes\") and let Claude build. This works well — the bottleneck is not CAD\nexecution, it's image interpretation.\n\n**Mode B — image reference.** Drop in a drawing, photo, sketch, or\ncompetition prompt and ask Claude to build it.\n\n1. Invoke the vision-decomposition skill: `\u002Fskill vision-decompose`.\n2. Claude produces a structured feature tree from the image.\n3. Review it — fix mis-reads, fill in things the image didn't make obvious.\n4. Tell Claude \"build to that spec.\" It runs the CAD pipeline against the\n   confirmed tree.\n\nMode B with a careful human review beats letting Claude attempt the whole\nthing autonomously. See `RESEARCH.md` for the experimental data behind that\nrecommendation.\n\n## Tool surface\n\nRoughly 60 tools across these groups:\n\n| Group | Highlights |\n|-------|-----------|\n| Document | `create_document`, `find_part_studios`, `get_elements` |\n| Sketch | `create_sketch` (multi-entity), plus rectangle \u002F circle \u002F line \u002F arc \u002F rounded rect primitives |\n| Feature | `create_extrude`, `create_revolve`, `create_thicken`, `create_fillet`, `create_chamfer`, `create_boolean`, `create_linear_pattern`, `create_circular_pattern` |\n| Assembly | `add_assembly_instance`, `create_fastened_mate`, `create_slider_mate`, `create_revolute_mate`, `create_cylindrical_mate`, `align_instance_to_face`, `check_assembly_interference` |\n| Introspection | `describe_part_studio`, `list_entities`, `get_body_details`, `get_bounding_box`, `get_mass_properties`, `measure`, `get_face_coordinate_system` |\n| Variables | `create_variable_studio`, `set_variable`, `get_variables` |\n| FeatureScript | `eval_featurescript`, `write_featurescript_feature` |\n| Rendering | `render_part_studio_views`, `render_assembly_views`, `crop_image`, `load_local_image`, `compare_to_reference`, `extract_drawing_dimensions` |\n| Export | `export_part_studio`, `export_assembly` (STL \u002F STEP \u002F GLTF \u002F …) |\n\nFull schemas are discoverable from Claude via `ToolSearch` — no separate\ndocs to read.\n\n## Known limitations\n\n- **Section views are blocked** at the Onshape platform level. The REST API\n  has no section-view endpoint; only the UI `Shift+X` works.\n- `create_fillet` with `variableCenter` currently hits a phantom-reference\n  bug on Onshape's side. Bare radius works.\n- `opHelix` standard-library call is flaky in some contexts; cookbook uses\n  `opFitSpline` as a workaround.\n\n## Development\n\n```\ngit clone https:\u002F\u002Fgithub.com\u002FReshefElisha\u002Fjarvis-onshape-mcp\ncd jarvis-onshape-mcp\nuv sync\nexport ONSHAPE_API_KEY=...\nexport ONSHAPE_API_SECRET=...\nuv run onshape-mcp         # launch the MCP server on stdio\nuv run pytest              # unit tests\n```\n\n## Attribution\n\nScaffolding (Onshape REST client + HMAC auth, BTMFeature-134 \u002F\nBTMParameterQuantity-147 \u002F BTMIndividualQuery-138 payload builders, and the\nfirst-pass tool-per-primitive MCP surface) was forked from\n[hedless\u002Fonshape-mcp](https:\u002F\u002Fgithub.com\u002Fhedless\u002Fonshape-mcp) — thanks to\nhedless for getting that off the ground. Everything built on top of that\n(truth-telling, vision, entity discovery, parametric Variable Studios,\nFeatureScript orchestration, per-feature geometric diffs, the hints rotation,\niterative agent harness via Claude Agent SDK, and most of the current tool\nsurface) was built here. See `NOTICE` and `git log` for the full trail.\n\n## License\n\nMIT. See `LICENSE`.\n","Jarvis Onshape MCP 是一个让 Claude 代码插件能够操作真实 Onshape CAD 的项目。其核心功能包括通过视觉分解技能、真实的反馈机制、参数化迭代以及FeatureScript支持来实现CAD设计的自动化。该项目使用Python编写，具有处理草图绘制、拉伸、倒角等CAD操作的能力，并能提供每次修改后的详细状态报告和建议，同时支持从多视角渲染模型图像以供Claude分析参考图片与实际模型之间的差异。适合于需要结合AI辅助进行复杂机械设计或希望提高CAD设计效率的场景中使用。","2026-06-11 02:49:14","CREATED_QUERY"]