main
Drew Owens v0.3.1: manifest, README, skill, ecosystem table, parity report c6f5a2a 1mo ago

Where swx stands in the ecosystem

swx v0.3.0 measured against the Adom Fusion 360 bridge v1.9.341 (the gold standard we mirror) and against every public SOLIDWORKS MCP server we could find · written 2026-09-03

Executive summary

  • swx is the only SOLIDWORKS implementation here with a published live-run record. Three runs against a real SOLIDWORKS Design Professional for Makers 2026 install (22-aborted, 120/9, then 125 passed / 5 failed), 19 verbs proven end to end, with measured p90 timings. One competitor (SolidPilot) also claims live validation and is credible about it; the other three are explicit that most or all of their tools are unvalidated, mock, or hobby-grade.
  • On raw modeling breadth we are behind SolidPilot — its sketch/feature/assembly/drawing surface is deeper than ours and it is the most mature project in this space by a wide margin.
  • On safety we are ahead of all five, and alone. No other project has a write gate. swx writes are deny-by-default at a single choke point, enforced independently at two layers, hardened over eight adversarial review rounds, and the posture held through every live run — three times the bridge failed CLOSED rather than touch the wrong document.
  • Our other unique strengths: BOM-first and configuration-aware design (BOM aggregates per (file, configuration) pair — nobody else models this); native GLB with no optimisation service; an action ledger plus measured per-verb timings; census-not-dismiss dialog etiquette with neverAutoAnswer classes; and real host-ecosystem integration (Adom Bridge verbs, the user's Activity Log, a shipped skill) where every competitor is a bare MCP server for Claude Desktop.
  • Our real gaps, stated plainly: no cloud/3DEXPERIENCE document access (21 Fusion verbs; a separate OAuth project of roughly the size of the Fusion bridge's APS work); assemblies-with-components, drawings and 2D exports are mock-only because the Makers edition would not let an assembly be populated; and there is no in-process scripting host — a typed JSON DSL stands in.
  • Launch was our headline "cannot", and that changed today. CoCreateInstance returns CO_E_SERVER_EXEC_FAILURE on the Connected editions, but a sanctioned launch path via the 3DEXPERIENCE shortcut chain (CATSTART.exe → SWXDesktopLauncher) was discovered 2026-09-03. Implementation is in progress and not yet live-proven.
  • Scripting has a second route now too: SOLIDWORKS RunMacro2 for .swp VBA macros, VSTA, and C# add-ins are under investigation — with the caveat that the Makers edition restricts third-party add-ins while still running macros. Four of the five competitors already lean on VBA; we do not yet.
  • Licensing is simple and decision-relevant: exactly one copyleft player — SolidPilot is AGPL-3.0 with a paid commercial option — and everything else, ours included, is MIT. We can read and learn from SolidPilot; we must not vendor its code.
  • Electronics is not a gap. 51 of the Fusion bridge's 132 verbs are Fusion Electronics, EAGLE libraries, or Autodesk-specific plumbing. SOLIDWORKS has no concept to bridge to, and no competitor attempts it either.

How to read the cells

Mark Means
✓ live Executed against a real, licensed CAD install and observed to do what it claims.
✓ Built and shipped, or claimed by the project's own README. Evidence level is stated per row.
⚠ mock Built and mock-tested only; never executed live in any form.
partial Some of the capability, materially incomplete.
✗ Absent.
n/a No concept exists to bridge to in that product.
WIP Route identified, implementation in progress, not yet proven.
? Could not be determined from the repository.

Evidence discipline: for Fusion bridge and swx, cells come from source we hold — the Fusion bridge's own describe.py catalog (133 entries, 132 real verbs) and docs/FUSION-PARITY-REPORT.md. For every competitor column, cells are read-from-README unless the row note says otherwise. Nobody in the competitor set was installed or run. Licences and star counts were verified against the GitHub API on 2026-09-03, not read off a badge.

The master table

35 capability rows × 7 implementations. Verb counts: Fusion bridge 132, swx 60, SolidPilot ~46 tools, vespo92 ~30+, bartels 122, Schildkraut ~16 tools + 100+ VBA templates, alisamsam 22.

# Capability Fusion bridge swx v0.3 SolidPilot (AGPL-3.0!) vespo92 (MIT) bartels (MIT) Schildkraut (MIT) alisamsam (MIT)
1 Session lifecycle — attach, stop, kill ✓ ✓ live attach · ⚠ mock stop/kill ✓ attach ? ✓ attach ? ✓ attach
2 Launch the CAD application (and install it) ✓ launch + silent install WIP — refused by SOLIDWORKS; 3DEXPERIENCE chain found 2026-09-03 ✓ claims COM launch ✗ ✗ needs SW already open ? ✗ needs running instance
3 Requires an in-app add-in yes (3 verbs to manage it) no — out-of-process COM no (C# COM server) no no no no
4 Open a local file · disk discovery ✓ open · ✗ discovery (cloud-native) ✓ live open · ✓ find_files ✓ open · ✗ ✓ (untested) ✓ ✓ ✓ open · ✗
5 Create a new document ✗ (docs arrive from cloud/import) ✓ live ✓ part + assembly ✓ (untested) ✓ ✓ ✓ part + assembly
6 Save / Save As with overwrite protection ✓ cloud save · ✗ overwrite guard ✓ live save_as · ✓ overwrite guard (unique) ✓ save · ✗ guard ✓ (untested) · ✗ guard ✓ · ✗ guard ✓ · ✗ guard ✓ · ✗ guard
7 Cloud document store — search, list, open, up/download ✓ 21 verbs (APS Data Management) ✗ lacking — swx_cloud_status returns the honest probe ✗ ✗ ✗ ✗ ✗
8 Cloud / vendor sign-in + OAuth ✓ 9 verbs (incl. 2FA, web sign-in) ✗ lacking ✗ ✗ ✗ ✗ ✗
9 Parametric modeling — sketch → feature ✓ (Python script in-process) ✓ live typed DSL (50×30×20 solid, p90 10.2s) ✓ live — deepest surface here partial (basic ops only) ✓ claimed ✓ via VBA templates ✓ basic
10 In-process scripting host (arbitrary code) ✓ Python eval inside Fusion adapted — typed JSON DSL, validated pre-COM; swx_com_eval escape hatch ✗ by design (deterministic compiler) ✗ ✗ ✗ ✓ execute_python in SW context
11 Macros / VBA — generate, record, execute n/a (Fusion has no VBA) WIP — RunMacro2 / VSTA / C# add-in under investigation ✗ explicitly unsupported partial (gen works, exec untested) ✓ ✓ strongest (record/export/execute + 100+ templates) ✗
12 Assemblies — insert components, mates ✓ via script ⚠ mock — AddComponent5 returned Nothing on this edition ✓ live insert + mate + diff ✗ ✓ claimed ✓ via VBA partial (create doc only)
13 Drawings — create, views, dimensions ✗ no drawing verbs partial — creation ✓ live, views/dims not built ✓ live 9 tools; 9 real drawings reconstructed ✓ (untested) ✓ claimed ✓ via VBA ✗
14 Import neutral CAD (STEP etc.) ✓ ✓ live (p90 7.8s) ✓ via 3D Interconnect ? ? ? ✗
15 Export 3D — STEP/IGES/STL/3MF/SAT/Parasolid ✓ 8 formats ✓ live 6 proven; 17 formats in table; OBJ refused by SOLIDWORKS ✓ STEP/IGES/STL ✓ (untested) ✓ ✓ ✗ none
16 Export native GLB (web 3D) ✓ but needs an optimisation service ✓ live, direct — unique ✗ ✗ ✗ ✗ ✗
17 Export 2D / document — PDF, DXF, DWG ✓ DXF/DWG · ✗ PDF ⚠ mock all three (refused for a part; untested from a drawing) ✓ PDF/DWG/DXF ✓ (untested) ✓ ✓ PDF ✗
18 BOM ✓ assembly + electronics BOM ⚠ mock — *but per (file, configuration), the richest design here* ✗ on the roadmap ✗ ✗ ✓ table insertion ✗
19 Mass / physical properties ✓ ✓ live (aluminium, 81 g agreeing) ✓ live (verified ≤1%) ✓ (untested) ✓ claimed ✓ claimed ✗
20 Design-health — interference detection, rebuild census ✗ neither partial — interference ⚠ mock (object confirmed live), rebuild_check built partial (analyze_model/verify_state; no interference) ✓ (untested) ✗ explicitly not yet ✓ via VBA ✗
21 Parameters / dimensions — read and drive ✓ read ✓ live — drove a dimension to 25 mm, model moved ✓ modify_dimension ✓ (untested) ✓ claimed ✓ equations ✗
22 Custom properties (file and per-configuration) partial (buried in the attribute model) ✓ props_get/props_set ✗ ✗ ? ✓ ✗
23 Configurations / design tables ✗ no equivalent concept ✓ configuration-aware (BOM, properties) · ✗ design tables ✗ partial (vba_configurations, untested) partial ✓ strongest (design tables + SQL) ✗
24 Pack and Go — collect a design + all references ✗ ✓ built (gated), ⚠ mock ✗ ✗ ✗ partial (batch ops) ✗
25 PDM / vault integration n/a ✗ not built ✗ ✗ ✗ ✓ only one (5 tools) ✗
26 Application preferences — read and write ✓ incl. driving the settings modal ✓ live (written, then read back) · modal driving declined by design ✗ ✗ ✗ ✗ partial (set_units)
27 Screenshots + window management ✓ ⚠ mock (delegated to ab; SKIPPED in live runs) ✗ ✗ ✗ ✗ ✗
28 Blocking-dialog handling ✓ dismisses them adapted — censuses by default; neverAutoAnswer classes never closed ✗ ✗ ✗ ✗ ✗
29 Electronics — schematic, PCB, Gerbers, CPL, design rules ✓ 15 verbs n/a n/a n/a n/a n/a n/a
30 Component libraries / 3D packages (EAGLE .lbr) ✓ 23 verbs n/a ✗ ✗ ✗ ✗ ✗
31 Vendor MCP-server proxy ✓ 6 verbs (Autodesk ships one) n/a — Dassault ships none n/a (is itself an MCP server) n/a n/a n/a n/a
32 Bridge infrastructure — self-describe, shipped docs, guided demo, uninstall ✓ all four ✓ describe/docs/uninstall · ✗ demo (deferred v0.4) partial (13 MCP resources) ✗ partial (docs audit) partial (resource registry) ✗
33 Action ledger + measured per-verb timings ✓ ledger, verb times, live feed, alerts ✓ ledger + timings recorded live ✗ (dev log only) ✗ ✗ logging only partial ("enhanced logging") ✗
34 Deny-by-default write gate ✗ no gate, no confirm/reason in its catalog ✓ live — unique. Two independent layers, 8 adversarial rounds, held in all 3 live runs ✗ ✗ partial ("adapter safety wrappers") partial (macro exec needs permission) ✗
35 Host-ecosystem integration (Adom Bridge, Activity Log, skill) ✓ native ✓ native ✗ MCP clients only ✗ ✗ ✗ ✗

(35 numbered rows; rows 29–31 are the N/A block that accounts for most of the Fusion verb-count gap.)

Per-competitor notes

SolidPilot — eyfel/mcp-server-solidworks · AGPL-3.0 + paid commercial · 265★ · C# + Python

The one to take seriously. Four-layer architecture: an AI planner emits a CAD-neutral Feature Graph IR, a deterministic Python compiler lowers it to ordered tool calls, and a single C# .NET 4.8 execution layer on one STA thread is the only code that touches COM. ~46 tools, 13 MCP resources. Its README makes verifiable-shaped claims — production parts round-tripped analyze_model → IR → rebuild_from_ir → compare_parts to a verified match on exact topology and mass properties, nine real manufacturing drawings reconstructed to ≤0.02% weight match. Deeper than us on modeling, assemblies, sheet metal and drawings. Has no BOM (on the roadmap), no configurations, no custom properties, no preferences, no screenshots, no macros (deliberately — the compiler replaces scripting), no write gate, and no ecosystem beyond Claude Desktop. Its ensure_ready claims to launch SOLIDWORKS via COM, which is plausible on a classic desktop install and would fail exactly as ours does on Connected/Makers. Evidence: README only. Not installed, not run.

vespo92/SolidworksMCP-TS — MIT · 222★ · TypeScript + winax

Second-most-starred and the most candid: labelled "Alpha / Experimental", with the README stating that "most tools have not been validated against a live SolidWorks instance" and that no real integration tests exist. Its own coverage table grades Modeling "Partially tested" and Drawing, Export, Analysis and Macro all "Untested". Broad tool surface on paper (modeling, sketch, drawing, export, analysis with check_interference and get_mass_properties, VBA generation, macro recording); no assemblies, no BOM. Last pushed 2026-05. Useful as a naming/API reference, not as evidence that anything works.

andrewbartels1/SolidworksMCP-python — MIT · 67★ · Python

122 tools per today's README (the figure was 109 earlier — it is moving; pushed 2026-09-02), across modeling, sketching, drawing, analysis, export, automation, templates and macros. Self-described "hobby/research product" and "under active construction", and it ships an explicit mock warning: "Mock adapter output is simulated and should not be treated as engineering truth." Runs in mock mode unless started with --real, and --real requires SOLIDWORKS to already be open — the same attach-only constraint we have, arrived at without comment. Explicitly does not do checkpoint-level interference validation. Highest tool count in the field, lowest evidence-per-tool.

Adam-Schildkraut/solidworks-mcp — MIT · 1★ · TypeScript · last push 2025-08

Small but oddly complementary: it is the only project with PDM tools (configure, check-in, check-out, workflow, folder structure), the only one with SQL-driven design tables for configurations, and it leans hardest on VBA — macro record/stop/export/execute plus a claimed 100+ VBA generation templates covering part features, assembly mates and interference, drawing views and tables, custom properties and batch/PDM operations. No validation statement of any kind, one star, and its README's support links point at a different org (vinnieespo/solidworks-mcp-server), so treat it as derived work of uncertain provenance. The template library is the interesting artefact here, not the server.

alisamsam/Solidworks-MCP — MIT (verified) · 108★ · Python · 22 tools

Task brief listed its licence as unknown; the GitHub API confirms MIT, 108★, last pushed 2026-03. Deliberately minimal and honest about it: connect to a running instance, part/assembly documents, six sketch primitives, extrude/cut/fillet/chamfer, list features, set units — and execute_python, which makes it the only project besides ours to offer a scripting escape hatch into a live SOLIDWORKS session. It has no export tools at all, no drawings, no assembly mates, no BOM, no properties. It is a clean starter kit, not a competitor for real work.

Licensing

This is the section with a decision in it.

SolidPilot (eyfel/mcp-server-solidworks) — AGPL-3.0, dual-licensed commercially. Verified from the repository's own licence metadata, not a badge. AGPL-3.0 is the strongest common copyleft: it extends GPL's obligations to network use, so anything we distribute that links or incorporates AGPL code must itself be released under AGPL, source included — and under the network clause, even offering it as a hosted service to users triggers the same obligation. For a bridge that ships inside Adom Bridge to customers, that is not a licence we can absorb. The author offers a paid commercial licence as the escape hatch. Conclusion: read it, learn from its architecture — the Feature Graph IR and the single-STA-thread C# COM boundary are both good ideas — and copy neither its code nor its files. Any IR-shaped work of ours must be independently written. If we ever want its code proper, that is a procurement conversation, not an engineering one.

vespo92/SolidworksMCP-TS — MIT. Verified. Permissive; we could vendor or adapt code with attribution. Given the project's own "most tools not validated" disclaimer there is little worth vendoring, but its tool naming is a fair reference.

andrewbartels1/SolidworksMCP-python — MIT. Verified. Permissive. Same caveat: mock-simulated output by default, so its value is as a map of the COM surface rather than as working code.

Adam-Schildkraut/solidworks-mcp — MIT. Verified. Permissive, and the VBA template library is the one asset in the whole survey that MIT actually makes attractive to us — if the macros route (RunMacro2) proves out, 100+ MIT-licensed VBA templates are a legitimate head start. Provenance is murky enough that we should check the templates' own headers before reusing them.

alisamsam/Solidworks-MCP — MIT. Verified (previously unknown to us).

swx — MIT (bridge.json, LICENSE). We are on the permissive side of the field with everyone except SolidPilot. Exactly one copyleft player; everything else MIT.

Additional items we can pull off

Capabilities nobody in this field has, which swx could add at low cost, roughly in order of value-per-effort:

  1. Drawing-sheet outputs — PDF + BOM tables from a .slddrw. Our DXF/DWG/PDF exports are already built and refused for a part, which is the expected behaviour; the drawing is their real story and it is untested. SolidPilot builds drawings but does not ship a BOM; Schildkraut inserts BOM tables but has no evidence. A live-proven drawing → PDF-with-BOM path would be unique in this field.
  2. Sanctioned launch via the 3DEXPERIENCE chain (CATSTART.exe → SWXDesktopLauncher, found 2026-09-03). Closes our loudest documented "cannot", and no competitor has solved launch on a Connected edition — bartels and alisamsam simply require the app to be open already.
  3. A macros bridge (RunMacro2 for .swp, then VSTA / C# add-ins). Buys back most of the in-process-scripting gap and would let us reuse an MIT template corpus. Caveat to settle first: the Makers edition restricts third-party add-ins but does run macros — which is precisely why macros, not add-ins, are the first move.
  4. Configurations as a first-class surface. We are already configuration-aware in BOM and properties; enumerating, activating and diffing configurations is a small step, and Fusion has no equivalent concept at all. Design tables (Schildkraut's SQL trick) are the stretch goal.
  5. Pack and Go, proven live. Built and gated already; it needs an assembly with references to exercise. Nobody else has it.
  6. The action ledger and measured verb timings as a product feature, not plumbing. We have p90s from real hardware (run_script 10.2s, new_document 9.2s, import 7.8s, save_as 2.7s, all far inside budget). No competitor can tell a user what an operation will cost.
  7. Wiki / molecule integration. Native GLB export already works live; the pipeline from a SOLIDWORKS part to a published molecule is ours to connect and is not even conceivable for a bare MCP server.
  8. Ship the deny-by-default posture as the marketed differentiator. It is the single strongest claim we have and it is evidenced: eight adversarial rounds, two independently-enforcing layers, and three live runs in which the bridge refused to touch the user's own open document — including one abort where it removed every file it had written. Every competitor in this survey will, on request, write to a path the user owns with no confirmation and no record.
  9. Per-component mass properties — small, and blocked only on being able to populate an assembly.

What is still unproven, and where

Nothing above changes the standing recommendation: run tools/live-smoke.py once SOLIDWORKS is back up, started from the 3DEXPERIENCE Platform. It is what converts the ⚠ mock cells in column B into ✓ live — or finds the next bug, which is what happened all three previous times. The assembly verbs (swx_bom, swx_interference, per-component mass properties) need a real multi-component assembly or a classic desktop install; the 2D exports need a real .slddrw. And no competitor cell in this table is better than read-from-README, because none of them was installed or run.