Head to head · Cad edit · October 2026 research run
Onshape vs Zoo
Zoo scores 58.7 (C) on agent readiness against Onshape's 55.7 (C), and leads in 5 of 7 scored categories. Onshape leads on reliability. Both do cad edit.
Best CAD, simulation and fabrication APIs for AI agents · All 15 cad comparisons
Which one, for what
Onshape C
Best for Agents that read or change existing cloud CAD documents, run configurations, pull BOMs and drawings, or write FeatureScript for a team already on Onshape.
Ahead on
- Reliability, 60 against 55
Also in its favour
- A hosted endpoint, with nothing to install
Watch for
Every API key request must be signed with HMAC-SHA256 over the method, nonce, date, content type, path and query, and 307 redirects need a fresh signature
Zoo C
Best for Agents that need to produce or iterate editable mechanical geometry as code and export STEP, with a hosted engine and no desktop.
Ahead on
- Payments & pricing, 35 against 22
- Maintenance & community, 90 against 79
- Transparency & trust, 69 against 60
Also in its favour
- Runs on your own machine
Watch for
No rate limits, 429 handling or idempotency keys documented for the REST API or the websocket
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Payments & pricing Zoo +13
Onshape 22
No x402, MPP or L402 (0). Plan prices are public per user per year, with no per-call price; extra API calls are sold by sales at an unpublished rate (10). The Free plan costs nothing for non-commercial use with public documents and a Professional trial needs no card; whether the Free plan asks for a card was not stated (12 of 20). A person signs up in a browser and creates the key or OAuth app (0). 0 + 10 + 12 + 0 = 22.
Zoo 35
No x402, MPP or L402 (0). The per-second rate ($0.0083) and plan allowances are public in the pricing JSON the site loads and on the blog, with the FAQ stating rounding and free GETs (20). The Free plan carries $10 of usage a month with no plan fee; whether sign-up asks for a card was not established, and pay-as-you-go needs a payment method (15 of 20). A person signs in with SSO in a browser and mints the token; service accounts come only after an organisation exists (0). 0 + 20 + 15 + 0 = 35.
Maintenance & community Zoo +11
Onshape 79
Read for a closed service. API release notes rel-1.223 dated 30 October 2026 (30). Six dated releases from 17 July to 30 October, three weeks apart (20). A public changelog, forum.onshape.com and api-support@onshape.com; response times were not tested (12 of 15). No Onshape-owned server in the official MCP registry, where the only match is io.github.gpambrozio/onshape; the official Go client was pushed on 31 October 2026 and the TypeScript clients in June and September 2025 (12 of 15). The Go client is generated and its CI was not read; the multi-language onshape-clients repository is archived (5 of 10). 30 + 20 + 12 + 12 + 5 = 79.
Zoo 90
Read for a hosted service with open-source clients. zoo-mcp v0.33.0 on 30 October 2026, the CLI v0.2.209 on 28 October and kittycad 1.8.0 on 15 October (30). Nine zoo-mcp tags from 24 to 30 October alone, with CLI and SDK releases through October (20). Commits land daily across the KittyCAD organisation, with a Discord and a community forum; issue response times were not read because GitHub's issue pages refused us (15 of 25). io.github.KittyCAD/zoo-mcp is in the official MCP registry under a GitHub-verified namespace, though at version 0.10.0 of 27 January 2026 (15). pytest across Python 3.11 to 3.14, ruff, ty, a security workflow and Dependabot, with the scheduled run on main passing on 3 November (10). 30 + 20 + 15 + 15 + 10 = 90.
Transparency & trust Zoo +9
Onshape 60
Closed service with clear terms of 15 July 2020 naming PTC Inc. and Massachusetts law (15). The privacy policy has moved to ptc.com, which our reader could not fetch; the data disclosures page names subprocessors (AWS, Salesforce, SendGrid, Zendesk, Vanilla Forums, Crownpeak, Thought Industries, Stripe, Zuora) without retention periods, and neither the terms nor the disclosures say whether customer content trains AI (12 of 30). Deprecations are marked in dated release notes and flagged with an x-deprecated header, but no notice period is stated (12 of 20). Subprocessors are named and the status page lists hosting regions by continent; no formal data location statement was read (14 of 20). 15 + 12 + 12 + 14 = 53.
Zoo 69
The API is closed, with terms last updated 15 April 2026 under California law; the MCP server, CLI, SDKs and Design Studio are MIT (22 of 30). The terms licence inputs and outputs for model training with an opt-out only where the tier allows it, the pricing JSON states the behaviour per plan, and the security page says team and enterprise data is excluded by default; the privacy policy of 9 September 2026 is silent on training and gives no retention periods, and the enterprise page says Zoo trains on customer CAD data without naming the opt-out (15 of 30). No deprecation policy; billing changes were announced on the blog with dates (6 of 20). The trust centre names OpenAI, Cockroach Labs, Google Cloud and AWS as subprocessors, the security page names a US Regulated region, and the privacy policy says data may be processed anywhere in the world (14 of 20). 22 + 15 + 6 + 14 = 57.
Reliability Onshape +5
Onshape 60
Read with the hosted lines on cad.onshape.com. Atlassian Statuspage at status.onshape.com with regional CAD service components and history feeds (20). The feed holds 18 incidents from 15 August to 30 October 2026, all degraded performance, delayed imports and exports or partial signup blocks, the longest 2 hours 42 minutes of export degradation on 15 September and imports, exports and notifications not working for 1 hour 42 minutes on 11 September; no full outage of the CAD service (18 of 30). Annual API call quotas are published per plan with numbers, while per-endpoint rate limits are said to vary by endpoint with no figure (8 of 15). 429 is documented without a header or backoff timing, 402 marks a spent quota, and no idempotency guidance was found (6 of 15). The terms promise commercially reasonable efforts and no SLA (0). The REST API is generally available; the FeatureScript MCP Server is an early-access Labs feature (8 of 10). 20 + 18 + 8 + 6 + 0 + 8 = 60.
Zoo 55
Read with the hosted lines on api.zoo.dev. A Better Stack status page at status.zoo.dev lists public and internal components with uptime figures (20). Its incident pages show no incidents for September, October and November 2026; the June to August archive didn't render for our reader, so about three weeks of the 90-day window are unread (25 of 30). No rate limit with a number was found in the OpenAPI document, the API docs, the FAQ or the MCP source (0). No Retry-After or backoff guidance and no idempotency keys; the document says only that cancellation is idempotent (3 of 15). No SLA on any plan, and the terms disclaim uninterrupted service (0). The REST API and Zookeeper are not labelled beta, while POST /ml/kcl/completions carries the beta tag and zoo-mcp declares the Beta classifier (7 of 10). 20 + 25 + 0 + 3 + 0 + 7 = 55.
Score by category
| Category | Weight this run | Onshape | Zoo | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 60 | 55 | Onshape +5 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 63 | 65 | Zoo +2 |
| Agent ergonomics | 13%16.2 | 46 | 44 | Onshape +2 |
| Security & auth | 14%17.5 | 63 | 67 | Zoo +4 |
| Payments & pricing | 10%12.5 | 22 | 35 | Zoo +13 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 79 | 90 | Zoo +11 |
| Transparency & trust | 7%8.8 | 60 | 69 | Zoo +9 |
| Negative events | ≤15 | 0 | 0 | |
| Total | C 55.7/100 | C 58.7/100 |
Facts side by side
| Fact | Onshape | Zoo |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | PTC | Zoo Corporation |
| Hosted endpoint | https://fs-mcp.labs.onshape.app/mcp | no (local only) |
| Transports | Streamable HTTP | stdio, Streamable HTTP |
| Auth | OAuth or key | OAuth or key |
| Pricing | Freemium | Freemium |
| x402 | no | no |
| Tools exposed | 0 | 42 |
| Read-only variant documented | no | yes |
| llms.txt | no | no |
| MCP registry | not listed | io.github.KittyCAD/zoo-mcp |
| Last release | 2026-10-30 | 2026-10-30 |
| Terms last updated | no date given | 2026-04-15 |
| Privacy policy last updated | couldn't be read | 2026-09-09 |
| Customer content may train models | not found in the text | yes, with an opt-out |
| Terms restrict automated access | yes | yes |
| Terms restrict benchmarking | yes | yes |
| Terms or service can change without notice | yes | not found in the text |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 13 stars | 11 stars |
Verdicts
Onshape
Scoped API keys, OAuth 2.0 and versioned release notes every three weeks give an agent a stable REST surface over documents, parts, assemblies and drawings, and the Labs MCP server writes FeatureScript. Each request needs an HMAC signature and nonce, annual call quotas end in 402, per-endpoint limits are unpublished, and robots.txt closes the OpenAPI explorer's host to readers.
Zoo
A public OpenAPI document, SDKs in four languages, a 42-tool MCP server and a $10 monthly allowance let an agent generate KCL geometry and export STEP without a contract. No rate limits, retry guidance or scoped tokens are documented, the MCP server has no read-only subset, and the Free plan's data trains Zoo's models with no opt-out.
Before you call either
Onshape
- Sign every API key request with a Date header within 5 minutes, a unique 16-character On-Nonce and
Authorization: On <AccessKey>:HmacSHA256:<signature>; prefer OAuth 2.0 bearer tokens and refresh on 401 - Count calls against the plan's annual quota (2,500 per user on Free) and treat 402 as quota exhausted, not a payment request; 4xx and 5xx responses do not count
- Put the API version in the path (api/v17) and pin it, since unversioned calls use v0 and unknown versions fall back to the newest
- On 429 back off and reduce redundant calls; no Retry-After or numeric limit is published, and imports and exports were the component most often delayed in the 90-day record
- For FeatureScript work, subscribe to the FeatureScript MCP Server in the App Store first, then
claude mcp add --transport http onshape https://fs-mcp.labs.onshape.app/mcpand authorise in the browser; use/mcpto re-authenticate
Zoo
- Send
{"type":"ping"}every 5 seconds on the Zookeeper websocket and expect only KCL back; run the KCL through evaluate_kcl, the CLI or zoo-kcl to get STEP or STL - Budget usage in seconds, since every billable call rounds up to the next second at $0.0083, and the monthly allowance resets at the account anniversary without rollover
- Use one modeling session per zoo-mcp process, start it with start_modeling_session and stop it when done; get_modeling_sessions recovers the id after a reconnect
- Put the token in ZOO_API_TOKEN, never in a URL; there are no read-only tokens, so use a service account on a Team plan when the owner wants separate credentials
- Paginate list endpoints with
limit,page_tokenandsort_by; nothing documents a rate limit, so back off on any 429 or 5xx yourself
Questions
Which is better for AI agents, Onshape or Zoo?
Zoo scores 58.7 (C) on agent readiness against Onshape's 55.7 (C), and leads in 5 of 7 scored categories. Onshape leads on reliability.
Do Onshape and Zoo need an API key?
Both take an API key or an OAuth sign-in.
Can an agent call Onshape and Zoo without installing anything?
Onshape has a hosted endpoint at https://fs-mcp.labs.onshape.app/mcp. Zoo runs on your own machine, with no hosted endpoint listed.
Other comparisons with Onshape or Zoo
Machine-readable
- This page as Markdown
/compare/onshape-vs-zoo.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/onshape.json·/api/v1/tools/zoo.json - From a terminal
anchor compare onshape zoo(the CLI) - Over MCP
compare_tools {"a": "onshape", "b": "zoo"}at/mcp, no key