{
  "data": {
    "a": {
      "slug": "ntop",
      "name": "nTop",
      "vendor": "nTopology Inc.",
      "vendorUrl": "https://www.ntop.com",
      "kind": "sdk",
      "category": "cad",
      "summary": "nTop is nTopology's computational design software for implicit geometry, lattices and simulation-driven parts. nTop Automate runs a notebook headlessly from the ntopcl command line with JSON in and out under a paid licence; a beta Python package reads implicit bodies.",
      "url": "https://www.anchorterminal.com/tools/ntop",
      "markdownUrl": "https://www.anchorterminal.com/tools/ntop.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/ntop.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ntop.json",
      "dns": "ntop.grade.anchorterminal.com",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://docs.ntop.com/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "A licence, not an API key. ntopcl runs on a machine with nTop installed and signs in with cloud licence credentials (`ntopcl --username \u003cemail\u003e --password \u003cpassword\u003e`), a FlexNet floating licence server (`ntopcl --license PORT@HOSTNAME`) or a local .lic file. nTop Automate is a separate licence from the desktop seat, checked in the user dashboard at app.ntop.com. The nTop Core Python package is downloaded from app.ntop.com/addons behind the same login. The hosted docs MCP server at docs.ntop.com/mcp documents no authentication.",
      "pricing": "paid",
      "pricingNotes": "No price is published. Licences are per-user subscriptions sold through nTop, with cloud, cloud floating, on-premises FlexNet and local options, and nTop Automate licensed separately; the EULA of February 2026 limits use to one person at a time and bars servers and distributed systems unless the order form allows them. Educational licences exist; no trial terms were found on the pages read.",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 anywhere in the nTop docs, the Automate articles, the EULA or the MCP server article (checked 2026-11-03). The software is licensed, not metered.",
        "endpoints": []
      },
      "toolCount": 2,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://docs.ntop.com/lessons/intro-to-ntop-automate/what-you-will-need",
      "capabilities": [
        "cad.generate",
        "cad.export",
        "cad.simulate"
      ],
      "tags": [
        "local",
        "official",
        "closed-source",
        "paid",
        "sales-led",
        "cli",
        "python",
        "beta",
        "mcp",
        "remote-mcp",
        "read-only-mode",
        "enterprise",
        "no-status-page"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 40.2,
        "grade": "E",
        "agentReady": false,
        "rank": 1209,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 7,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 45,
          "payments": 0,
          "reliability": 38,
          "schema": 61,
          "security": 26,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "An agent on a licensed Windows machine can run any nTop notebook headlessly through ntopcl with JSON in and out, and the beta Python package reads the resulting implicit bodies. Nothing is callable without a paid per-user licence, no price is public, the EULA bars servers without an order form, and licence credentials go on the command line.",
        "bestFor": "An engineering team that already runs nTop and wants an agent to drive design-of-experiments loops over a notebook or read exported implicit bodies in Python.",
        "strengths": [
          "ntopcl runs a whole notebook headlessly with a JSON input file and a JSON output file, and writes both templates from the notebook with `-t`",
          "The nTop Core Python package has a typed, NumPy-native API with builtin exceptions for field evaluation, meshing, slicing and voxelising implicit bodies",
          "A hosted MCP server over the docs with shell-style search (rg, head, cat) lets an agent read nTop's documentation without a licence",
          "Docs are served as Markdown with a .md suffix, and robots.txt on docs.ntop.com allows AI readers",
          "Release notes per version and a knowledge base of Automate articles on debugging, logging and design-of-experiments loops in Python"
        ],
        "weaknesses": [
          "Every geometry call needs nTop installed on Windows with a paid Automate licence; the Core package is beta, behind a login and not on PyPI",
          "No published price, trial terms, status page, security.txt, bug bounty or public issue tracker",
          "The EULA counts servers and distributed systems as unauthorised devices unless the order form allows them, which rules out most agent hosts",
          "ntopcl signs in with a username and password on the command line, with no scoped or revocable token",
          "Release notes carry no dates and support.ntop.com answers 403 to readers"
        ],
        "agentNotes": [
          "Only plan to call nTop from a Windows machine where nTop is installed and an Automate licence is signed in; there is no hosted geometry API, and running on a server needs an order form",
          "Run `ntopcl -t \u003cnotebook.ntop\u003e` first to get the input and output JSON templates, fill the inputs, then run the notebook with the input and output file paths; the Python helper ntopcl.py wraps the three calls",
          "Keep licence credentials out of prompts and logs: pass `--license PORT@HOSTNAME` for a floating server or a local .lic file rather than a username and password where the owner has one",
          "Treat the nTop Core package as beta; pin the version, since breaking changes may land between any two versions, and work in metres",
          "Use the docs MCP server (search first, then rg or head on the returned path with .mdx) to answer nTop questions; it reads only documentation and caps output at 30 KB"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 40.2
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 45,
          "payments": 0,
          "reliability": 38,
          "schema": 61,
          "security": 26,
          "transparency": 37
        },
        "provenanceScore": 64,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "ntopcl -t my-notebook.ntop",
        "config": {
          "mcpServers": {
            "ntop-docs": {
              "url": "https://docs.ntop.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/cad.generate",
        "tool": "https://letme.dev/ntop"
      },
      "area": "design-diagrams",
      "provenance": {
        "legalEntity": "nTopology Inc.",
        "domain": "ntop.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.ntop.com/eula/",
        "privacy": "https://www.ntop.com/privacy-policy/",
        "statusPage": "",
        "changelog": "https://docs.ntop.com/Product-Documentation/ntop/release-notes",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "nTopology Inc., a Delaware corporation, is named in the EULA, the terms of use and the privacy policy, all last updated February 2026, under New York law with JAMS arbitration.",
          "Section 13(b) of the terms of use forbids accessing the site through bots, scripts or scraping. Recorded as a fact. ntop.com/robots.txt disallows nothing; docs.ntop.com/robots.txt disallows only /cdn-cgi/ and /_next/ and carries Content-Signal ai-train=yes, search=yes, ai-input=yes.",
          "support.ntop.com (Zendesk) answered 403 to every request, so the audit's lead article was read from its mirror on docs.ntop.com.",
          "www.ntop.com/.well-known/security.txt answered 404. status.ntop.com has no DNS record.",
          "The EULA is listed as the terms because it governs the software an agent would run; the website terms of use are at https://www.ntop.com/terms-of-use/."
        ],
        "score": 64
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/ntop.json",
      "live": {
        "slug": "ntop",
        "probe": {
          "target": "https://docs.ntop.com/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-11-04T20:47:03.222028294Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 370,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 264,
          "p95ms24h": 520,
          "samples24h": 55,
          "samples30d": 55,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 55,
              "ok": 55
            }
          ]
        },
        "securityTxt": {
          "url": "https://ntop.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:53:29.976435108Z"
        },
        "updatedAt": "2026-11-04T20:47:03.222028294Z"
      }
    },
    "answer": "Zoo scores 58.7 (C) on agent readiness against nTop's 40.2 (E), and leads in 6 of 7 scored categories. nTop leads on agent ergonomics.",
    "b": {
      "slug": "zoo",
      "name": "Zoo",
      "vendor": "Zoo Corporation",
      "vendorUrl": "https://zoo.dev",
      "kind": "http-api",
      "category": "cad",
      "summary": "Zoo is a hosted CAD platform from Zoo Corporation with a REST API, the Zookeeper design agent over a websocket, file conversion and analysis endpoints, a CLI and a local MCP server, all built on its KCL modelling language.",
      "url": "https://www.anchorterminal.com/tools/zoo",
      "markdownUrl": "https://www.anchorterminal.com/tools/zoo.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/zoo.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zoo.json",
      "dns": "zoo.grade.anchorterminal.com",
      "repo": "https://github.com/KittyCAD/mcp",
      "transports": [
        "stdio",
        "streamable-http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "zoo-mcp"
        },
        {
          "registry": "pypi",
          "name": "kittycad"
        }
      ],
      "auth": "mixed",
      "authNotes": "Bearer API token minted at zoo.dev/account/developer after a browser sign-in (SSO by OAuth 2.0, OpenID Connect or email; Zoo uses no passwords). Tokens are listed, created and deleted at /user/api-tokens; no scopes were found. Team and Enterprise plans add organisation-wide service accounts, and OAuth 2.0 apps with PKCE and a device grant exist for apps. The MCP server reads ZOO_API_TOKEN (ZOO_TOKEN in the registry manifest). Websockets authenticate before the first message.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with $10 of monthly usage (1,205 seconds) and no plan fee; Plus $20 a month with $200 of usage, Pro $99 with $1,245, Team $399 per user with $4,980, Enterprise by contract. Zookeeper reasoning and billable API calls (direct or through MCP) are metered per second at $0.0083, about $0.50 a minute, rounded up to the next second. Failed calls are not charged; GET, /user, /org and /oauth2 calls are free. Pay-as-you-go beyond the allowance is off by default and needs a payment method.",
      "priceSummary": "$0.0083 / credit",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI document (226 operations), the API pricing page, the FAQ or the MCP server source (checked 2026-11-03). Payment runs through Stripe-hosted pages and subscription endpoints.",
        "endpoints": []
      },
      "toolCount": 42,
      "popularity": {
        "githubStars": 11,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://zoo.dev/docs/developer-tools/agent-api",
      "openapi": "https://api.zoo.dev/",
      "registryName": "io.github.KittyCAD/zoo-mcp",
      "capabilities": [
        "cad.generate",
        "cad.edit",
        "cad.export"
      ],
      "tags": [
        "hosted",
        "official",
        "closed-source",
        "freemium",
        "usage-priced",
        "free-tier",
        "mcp",
        "mcp-registry",
        "openapi",
        "cli",
        "python",
        "typescript",
        "rust",
        "go",
        "status-page",
        "soc2",
        "security-txt",
        "bug-bounty"
      ],
      "lastRelease": "2026-10-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.7,
        "grade": "C",
        "agentReady": false,
        "rank": 662,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 44,
          "maintenance": 90,
          "payments": 35,
          "reliability": 55,
          "schema": 65,
          "security": 67,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "Agents that need to produce or iterate editable mechanical geometry as code and export STEP, with a hosted engine and no desktop.",
        "strengths": [
          "OpenAPI 3.0.3 served at api.zoo.dev with 226 described operations, and SDKs in Python, TypeScript, Rust and Go generated from it",
          "Zookeeper returns editable KCL rather than a mesh, and the CLI or zoo-kcl package exports it to STEP",
          "Public per-second pricing ($0.0083 a second) with $10 of monthly usage on the Free plan and no charge for failed calls",
          "SOC 2 Type II, a disclosure policy with a 72-hour response commitment, and two published Trail of Bits reviews",
          "Status page with component history and no incidents reported for September to November 2026"
        ],
        "weaknesses": [
          "No rate limits, 429 handling or idempotency keys documented for the REST API or the websocket",
          "API tokens carry no scopes and the MCP server has no read-only subset or tool annotations",
          "Free plan data is always used for training; Plus and Pro opt out manually, by the terms of 15 April 2026",
          "The 42 MCP tools and 30,000 characters of docstrings load into every session; the registry entry is at 0.10.0 while PyPI is at 0.33.0",
          "No llms.txt or Markdown docs, no API changelog, and no SLA on any plan"
        ],
        "agentNotes": [
          "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_token` and `sort_by`; nothing documents a rate limit, so back off on any 429 or 5xx yourself"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.7
          }
        ],
        "editorialScores": {
          "ergonomics": 44,
          "maintenance": 90,
          "payments": 35,
          "reliability": 55,
          "schema": 65,
          "security": 67,
          "transparency": 57
        },
        "provenanceScore": 80,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "uvx zoo-mcp",
        "http": "curl -H \"Authorization: Bearer $ZOO_API_TOKEN\" https://api.zoo.dev/user",
        "claudeCode": "claude mcp add zoo -e ZOO_API_TOKEN=$ZOO_API_TOKEN -- uvx zoo-mcp",
        "config": {
          "mcpServers": {
            "zoo": {
              "args": [
                "zoo-mcp"
              ],
              "command": "uvx",
              "env": {
                "ZOO_API_TOKEN": "YOUR_ZOO_API_TOKEN"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/cad.generate",
        "tool": "https://letme.dev/zoo"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Billable API second (Zookeeper, modeling, ML, file)",
          "unit": "credit",
          "usd": 0.0083,
          "note": "one credit is one second of a billable call, about $0.50 a minute, rounded up to the next second; GET, /user, /org and /oauth2 calls are free"
        },
        {
          "item": "Plus plan",
          "unit": "month",
          "usd": 20,
          "note": "includes $200 of usage (24,096 seconds); the Free plan includes $10"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 99,
          "note": "includes $1,245 of usage (150,000 seconds)"
        },
        {
          "item": "Team plan",
          "unit": "seat-month",
          "usd": 399,
          "note": "includes $4,980 of usage per month, service accounts, admin console and auditing"
        }
      ],
      "provenance": {
        "legalEntity": "Zoo Corporation",
        "domain": "zoo.dev",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://zoo.dev/terms-and-conditions",
        "privacy": "https://zoo.dev/privacy-policy",
        "statusPage": "https://status.zoo.dev/",
        "changelog": "https://github.com/KittyCAD/mcp/releases",
        "securityTxt": "valid",
        "checked": "2026-11-03",
        "notes": [
          "Zoo Corporation is named in the terms (last updated 15 April 2026) and the privacy policy (9 September 2026), with an Inglewood, California address. California law.",
          "Section 3(a)(vii) of the terms forbids accessing the Services with spiders, robots, crawlers or similar data mining tools unless Zoo supplies the tool. Recorded as a fact; zoo.dev/robots.txt allows all crawlers and api.zoo.dev has no robots.txt.",
          "security.txt at zoo.dev/.well-known/security.txt names the GitHub advisory form, security@zoo.dev and a policy, with no Expires line.",
          "No llms.txt (404) and no API changelog page (docs/changelog 404). Releases are tracked per repository on GitHub.",
          "The domain registration date was not checked (no RDAP lookup made)."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/zoo.json",
      "live": {
        "slug": "zoo",
        "vendorStatus": {
          "page": "https://status.zoo.dev",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T15:32:45.470053997Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.KittyCAD/zoo-mcp",
            "version": "0.33.0",
            "seenAt": "2026-11-04T17:11:44.552009456Z"
          }
        ],
        "securityTxt": {
          "url": "https://zoo.dev/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-04T15:53:22.312502342Z"
        },
        "updatedAt": "2026-11-04T17:11:44.552009456Z"
      }
    },
    "edges": [
      {
        "by": 45,
        "category": "maintenance",
        "leads": "zoo",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read for closed software with a docs site. The newest release notes are for nTop 6.3, undated; the docs sitemap last modified the 6.1 page on 21 September 2026 and the Core package page on 19 October 2026, so a change within 90 days is likely but no release date was read (20 of 30). Four versions (6.0 to 6.3) are documented and the 6.0 and 6.1 pages changed in September, but without dates we can't count three releases in 90 days (12 of 20). support@ntop.com, a community site that renders only a loading screen, and a feedback tool on the docs server; no public issues or reply times (8 of 25). No entry in the official MCP registry for the docs server, and the only SDK is a beta Python package behind a login (5 of 15). No CI, package index or dependency data to read (0 of 10). 20 + 12 + 8 + 5 + 0 = 45.",
          "b": "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."
        },
        "scores": {
          "a": 45,
          "b": 90
        }
      },
      {
        "by": 41,
        "category": "security",
        "leads": "zoo",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Licence credentials rather than tokens, since ntopcl signs in with a username and password on the command line or a FlexNet server address, with no scoped, revocable or expiring key (8 of 30). The Run Command block has Prompt per File, Prompt per Block and Disallow All settings, which is the only approval control found; the docs MCP server is read-only (10 of 20). The docs server returns nTop's own documentation and ntopcl returns geometry, so little untrusted content reaches the model; no guidance was found (8 of 15). No audit log or per-call record found (0 of 15). No security.txt (404), disclosure policy, bug bounty, certification or advisories found on ntop.com or docs.ntop.com (0 of 20). 8 + 10 + 8 + 0 + 0 = 26.",
          "b": "Bearer API tokens minted in the account, several per user, listed and deleted at /user/api-tokens, organisation service accounts on Team and Enterprise, and OAuth 2.0 apps with PKCE and a device grant; no scopes were found on tokens and no rotation guidance (22 of 30). No read-only token or MCP subset; the Team plan's admin console and auditing give oversight after the fact, and the MCP client's own file permissions govern writes to main.kcl (8 of 20). Zookeeper carries a web_search tool and the MCP server returns KCL samples and docs, with no prompt-injection guidance found (5 of 15). Organisation admins get an API activity log and /user/api-calls lists each call with its cost (12 of 15). security.txt with a GitHub advisory contact and a policy committing to a 72-hour reply and severity-based rewards, SOC 2 Type II on the trust centre, and two Trail of Bits reviews published in 2024 and 2026 (20 of 20). 22 + 8 + 5 + 12 + 20 = 67."
        },
        "scores": {
          "a": 26,
          "b": 67
        }
      },
      {
        "by": 35,
        "category": "payments",
        "leads": "zoo",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Read with the paid-software rule, since nothing an agent would run is free. No x402, MPP or L402 (0). No price is published anywhere we read; licences are quoted by sales (0). No free tier or trial terms found; educational licences exist for students (0). A person buys a per-user licence, signs in at app.ntop.com and installs nTop; nothing is obtainable by an agent alone (0). 0 + 0 + 0 + 0 = 0.",
          "b": "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."
        },
        "scores": {
          "a": 0,
          "b": 35
        }
      },
      {
        "by": 18,
        "category": "transparency",
        "leads": "zoo",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed software under an EULA last updated February 2026 that names nTopology Inc. and New York law (15). The privacy policy of February 2026 names the controller and US hosting, keeps data as long as needed with no periods, names no subprocessors, and the EULA says usage data is collected to run and improve the products; the statements agree but say little (12 of 30). No deprecation policy; the Core package says only that breaking changes may occur (4 of 20). The EULA discloses usage data collection and the licensing page says the desktop connects to the cloud for analytics, with no opt-out found (6 of 20). 15 + 12 + 4 + 6 = 37.",
          "b": "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."
        },
        "scores": {
          "a": 51,
          "b": 69
        }
      },
      {
        "by": 17,
        "category": "reliability",
        "leads": "zoo",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the local-software lines, since ntopcl and the Core package run on the owner's machine. ntopcl ships inside the nTop Windows installer and the Core package states Python 3.10 or later on Windows and Linux, but both come from app.ntop.com behind a login, not a public package index (12 of 20). No public CI or test suite (0). No public issue tracker; the knowledge base has articles on debugging Automate errors and the 6.3 notes record ntopcl rejecting duplicate input names, which is all the crash record we could read (8 of 25). Release notes per version call out behaviour changes such as unique block names in 6.3, and the Core package warns that breaking changes may land between any two versions, with no semver statement (8 of 15). nTop 6.x is a released product; nTop Core is beta (10 of 15). 12 + 0 + 8 + 8 + 10 = 38.",
          "b": "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."
        },
        "scores": {
          "a": 38,
          "b": 55
        }
      },
      {
        "by": 16,
        "category": "ergonomics",
        "leads": "ntop",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "A command line with one notebook and two JSON files, a Python package with one class, and a docs MCP server with two tools, so almost nothing to load before work starts (20 of 25). Outputs are files whose size follows the notebook, mesh and voxel outputs are sized by feature_size and spacing, and the docs server caps each answer at 30 KB with rg and head for narrowing (12 of 20). Core raises builtin exceptions with messages; ntopcl's errors are described in knowledge-base articles rather than a reference (10 of 20). Running a notebook again with the same inputs produces the same outputs, and the SAVE flag controls whether inputs are written back; no annotations on the docs tools were published (10 of 20). The three-function ntopcl.py helper keeps defaults few, but every run needs a licence argument or signed-in session and only Python is covered (8 of 15). 20 + 12 + 10 + 10 + 8 = 60.",
          "b": "zoo-mcp lists 42 tools in one process with no toolset switch, read-only subset or dynamic loading, and their docstrings total about 30,000 characters (5 of 25). List endpoints take `limit`, `page_token` and `sort_by` (31 paginated operations), with no field selection or filtering (15 of 20). Errors are a generic object with a message and request_id, no error codes, and MCP tools return a string on failure (8 of 20). No idempotency keys, no readOnlyHint or destructiveHint in the tool source, and the websocket needs a ping every 5 seconds to stay open (4 of 20). Few required parameters, official SDKs in Python, TypeScript, Rust and Go, but one modeling session per MCP process and a websocket protocol an agent has to drive by hand (12 of 15). 5 + 15 + 8 + 4 + 12 = 44."
        },
        "scores": {
          "a": 60,
          "b": 44
        }
      }
    ],
    "facts": [
      {
        "a": "SDK + MCP",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "nTopology Inc.",
        "b": "Zoo Corporation",
        "name": "Vendor"
      },
      {
        "a": "https://docs.ntop.com/mcp",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP",
        "b": "stdio, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "2",
        "b": "42",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.KittyCAD/zoo-mcp",
        "name": "MCP registry"
      },
      {
        "a": "none",
        "b": "2026-10-30",
        "name": "Last release"
      },
      {
        "a": "2026-02-01",
        "b": "2026-04-15",
        "name": "Terms last updated"
      },
      {
        "a": "2026-02-01",
        "b": "2026-09-09",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "11 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Zoo scores 58.7 (C) on agent readiness against nTop's 40.2 (E), and leads in 6 of 7 scored categories. nTop leads on agent ergonomics.",
        "question": "Which is better for AI agents, nTop or Zoo?"
      },
      {
        "answer": "nTop has a hosted endpoint at https://docs.ntop.com/mcp. Zoo runs on your own machine, with no hosted endpoint listed.",
        "question": "Can an agent call nTop and Zoo without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 60 against 44"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "An engineering team that already runs nTop and wants an agent to drive design-of-experiments loops over a notebook or read exported implicit bodies in Python.",
        "slug": "ntop",
        "watchFor": "Every geometry call needs nTop installed on Windows with a paid Automate licence; the Core package is beta, behind a login and not on PyPI"
      },
      {
        "aheadOn": [
          "Reliability, 55 against 38",
          "Security \u0026 auth, 67 against 26",
          "Payments \u0026 pricing, 35 against 0",
          "Maintenance \u0026 community, 90 against 45",
          "Transparency \u0026 trust, 69 against 51"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Agents that need to produce or iterate editable mechanical geometry as code and export STEP, with a hosted engine and no desktop.",
        "slug": "zoo",
        "watchFor": "No rate limits, 429 handling or idempotency keys documented for the REST API or the websocket"
      }
    ],
    "history": null,
    "job": {
      "capability": "cad.generate",
      "name": "Cad generate"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adam-cad-vs-ntop.json",
        "title": "Adam vs nTop",
        "url": "https://www.anchorterminal.com/compare/adam-cad-vs-ntop"
      },
      {
        "json": "https://www.anchorterminal.com/compare/adam-cad-vs-zoo.json",
        "title": "Adam vs Zoo",
        "url": "https://www.anchorterminal.com/compare/adam-cad-vs-zoo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autodesk-platform-services-vs-ntop.json",
        "title": "Autodesk Platform Services vs nTop",
        "url": "https://www.anchorterminal.com/compare/autodesk-platform-services-vs-ntop"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autodesk-platform-services-vs-zoo.json",
        "title": "Autodesk Platform Services vs Zoo",
        "url": "https://www.anchorterminal.com/compare/autodesk-platform-services-vs-zoo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ntop-vs-onshape.json",
        "title": "nTop vs Onshape",
        "url": "https://www.anchorterminal.com/compare/ntop-vs-onshape"
      },
      {
        "json": "https://www.anchorterminal.com/compare/simscale-vs-zoo.json",
        "title": "SimScale vs Zoo",
        "url": "https://www.anchorterminal.com/compare/simscale-vs-zoo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ntop-vs-simscale.json",
        "title": "nTop vs SimScale",
        "url": "https://www.anchorterminal.com/compare/ntop-vs-simscale"
      },
      {
        "json": "https://www.anchorterminal.com/compare/onshape-vs-zoo.json",
        "title": "Onshape vs Zoo",
        "url": "https://www.anchorterminal.com/compare/onshape-vs-zoo"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 17,
        "edge": "zoo",
        "key": "reliability",
        "name": "Reliability",
        "ntop": 38,
        "weight": 16,
        "zoo": 55
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "zoo",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "ntop": 61,
        "weight": 13,
        "zoo": 65
      },
      {
        "by": 16,
        "edge": "ntop",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "ntop": 60,
        "weight": 13,
        "zoo": 44
      },
      {
        "by": 41,
        "edge": "zoo",
        "key": "security",
        "name": "Security \u0026 auth",
        "ntop": 26,
        "weight": 14,
        "zoo": 67
      },
      {
        "by": 35,
        "edge": "zoo",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "ntop": 0,
        "weight": 10,
        "zoo": 35
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 45,
        "edge": "zoo",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "ntop": 45,
        "weight": 7,
        "zoo": 90
      },
      {
        "by": 18,
        "edge": "zoo",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "ntop": 51,
        "weight": 7,
        "zoo": 69
      }
    ],
    "summary": "Zoo scores 58.7 (C) on agent readiness against nTop's 40.2 (E), and leads in 6 of 7 scored categories. nTop leads on agent ergonomics. Both do cad generate.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "ntop": "An agent on a licensed Windows machine can run any nTop notebook headlessly through ntopcl with JSON in and out, and the beta Python package reads the resulting implicit bodies. Nothing is callable without a paid per-user licence, no price is public, the EULA bars servers without an order form, and licence credentials go on the command line.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/ntop-vs-zoo",
    "json": "https://www.anchorterminal.com/compare/ntop-vs-zoo.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/ntop-vs-zoo.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/ntop-vs-zoo.min.md"
  },
  "markdown": "Zoo scores 58.7 (C) on agent readiness against nTop's 40.2 (E), and leads in 6 of 7 scored categories. nTop leads on agent ergonomics. Both do cad generate.\n\n- nTop: grade E, 40.2/100, rank #1209 of 1349. Markdown https://www.anchorterminal.com/tools/ntop.md · JSON https://www.anchorterminal.com/api/v1/tools/ntop.json\n- Zoo: grade C, 58.7/100, rank #662 of 1349. Markdown https://www.anchorterminal.com/tools/zoo.md · JSON https://www.anchorterminal.com/api/v1/tools/zoo.json\n- Best CAD, simulation and fabrication APIs for AI agents: https://www.anchorterminal.com/best/cad/index.md\n- All 15 cad comparisons: https://www.anchorterminal.com/compare/cad/index.md\n\n## Which one, for what\n\n### nTop (E)\n\nGood for: An engineering team that already runs nTop and wants an agent to drive design-of-experiments loops over a notebook or read exported implicit bodies in Python.\n\nAhead on:\n- Agent ergonomics, 60 against 44\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: Every geometry call needs nTop installed on Windows with a paid Automate licence; the Core package is beta, behind a login and not on PyPI\n\n### Zoo (C)\n\nGood for: Agents that need to produce or iterate editable mechanical geometry as code and export STEP, with a hosted engine and no desktop.\n\nAhead on:\n- Reliability, 55 against 38\n- Security \u0026 auth, 67 against 26\n- Payments \u0026 pricing, 35 against 0\n- Maintenance \u0026 community, 90 against 45\n- Transparency \u0026 trust, 69 against 51\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: No rate limits, 429 handling or idempotency keys documented for the REST API or the websocket\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Zoo +45\n\n- nTop (45): Read for closed software with a docs site. The newest release notes are for nTop 6.3, undated; the docs sitemap last modified the 6.1 page on 21 September 2026 and the Core package page on 19 October 2026, so a change within 90 days is likely but no release date was read (20 of 30). Four versions (6.0 to 6.3) are documented and the 6.0 and 6.1 pages changed in September, but without dates we can't count three releases in 90 days (12 of 20). support@ntop.com, a community site that renders only a loading screen, and a feedback tool on the docs server; no public issues or reply times (8 of 25). No entry in the official MCP registry for the docs server, and the only SDK is a beta Python package behind a login (5 of 15). No CI, package index or dependency data to read (0 of 10). 20 + 12 + 8 + 5 + 0 = 45.\n- 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.\n\n### Security \u0026 auth: Zoo +41\n\n- nTop (26): Licence credentials rather than tokens, since ntopcl signs in with a username and password on the command line or a FlexNet server address, with no scoped, revocable or expiring key (8 of 30). The Run Command block has Prompt per File, Prompt per Block and Disallow All settings, which is the only approval control found; the docs MCP server is read-only (10 of 20). The docs server returns nTop's own documentation and ntopcl returns geometry, so little untrusted content reaches the model; no guidance was found (8 of 15). No audit log or per-call record found (0 of 15). No security.txt (404), disclosure policy, bug bounty, certification or advisories found on ntop.com or docs.ntop.com (0 of 20). 8 + 10 + 8 + 0 + 0 = 26.\n- Zoo (67): Bearer API tokens minted in the account, several per user, listed and deleted at /user/api-tokens, organisation service accounts on Team and Enterprise, and OAuth 2.0 apps with PKCE and a device grant; no scopes were found on tokens and no rotation guidance (22 of 30). No read-only token or MCP subset; the Team plan's admin console and auditing give oversight after the fact, and the MCP client's own file permissions govern writes to main.kcl (8 of 20). Zookeeper carries a web_search tool and the MCP server returns KCL samples and docs, with no prompt-injection guidance found (5 of 15). Organisation admins get an API activity log and /user/api-calls lists each call with its cost (12 of 15). security.txt with a GitHub advisory contact and a policy committing to a 72-hour reply and severity-based rewards, SOC 2 Type II on the trust centre, and two Trail of Bits reviews published in 2024 and 2026 (20 of 20). 22 + 8 + 5 + 12 + 20 = 67.\n\n### Payments \u0026 pricing: Zoo +35\n\n- nTop (0): Read with the paid-software rule, since nothing an agent would run is free. No x402, MPP or L402 (0). No price is published anywhere we read; licences are quoted by sales (0). No free tier or trial terms found; educational licences exist for students (0). A person buys a per-user licence, signs in at app.ntop.com and installs nTop; nothing is obtainable by an agent alone (0). 0 + 0 + 0 + 0 = 0.\n- 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.\n\n### Transparency \u0026 trust: Zoo +18\n\n- nTop (51): Closed software under an EULA last updated February 2026 that names nTopology Inc. and New York law (15). The privacy policy of February 2026 names the controller and US hosting, keeps data as long as needed with no periods, names no subprocessors, and the EULA says usage data is collected to run and improve the products; the statements agree but say little (12 of 30). No deprecation policy; the Core package says only that breaking changes may occur (4 of 20). The EULA discloses usage data collection and the licensing page says the desktop connects to the cloud for analytics, with no opt-out found (6 of 20). 15 + 12 + 4 + 6 = 37.\n- 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.\n\n### Reliability: Zoo +17\n\n- nTop (38): Read with the local-software lines, since ntopcl and the Core package run on the owner's machine. ntopcl ships inside the nTop Windows installer and the Core package states Python 3.10 or later on Windows and Linux, but both come from app.ntop.com behind a login, not a public package index (12 of 20). No public CI or test suite (0). No public issue tracker; the knowledge base has articles on debugging Automate errors and the 6.3 notes record ntopcl rejecting duplicate input names, which is all the crash record we could read (8 of 25). Release notes per version call out behaviour changes such as unique block names in 6.3, and the Core package warns that breaking changes may land between any two versions, with no semver statement (8 of 15). nTop 6.x is a released product; nTop Core is beta (10 of 15). 12 + 0 + 8 + 8 + 10 = 38.\n- 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.\n\n### Agent ergonomics: nTop +16\n\n- nTop (60): A command line with one notebook and two JSON files, a Python package with one class, and a docs MCP server with two tools, so almost nothing to load before work starts (20 of 25). Outputs are files whose size follows the notebook, mesh and voxel outputs are sized by feature_size and spacing, and the docs server caps each answer at 30 KB with rg and head for narrowing (12 of 20). Core raises builtin exceptions with messages; ntopcl's errors are described in knowledge-base articles rather than a reference (10 of 20). Running a notebook again with the same inputs produces the same outputs, and the SAVE flag controls whether inputs are written back; no annotations on the docs tools were published (10 of 20). The three-function ntopcl.py helper keeps defaults few, but every run needs a licence argument or signed-in session and only Python is covered (8 of 15). 20 + 12 + 10 + 10 + 8 = 60.\n- Zoo (44): zoo-mcp lists 42 tools in one process with no toolset switch, read-only subset or dynamic loading, and their docstrings total about 30,000 characters (5 of 25). List endpoints take `limit`, `page_token` and `sort_by` (31 paginated operations), with no field selection or filtering (15 of 20). Errors are a generic object with a message and request_id, no error codes, and MCP tools return a string on failure (8 of 20). No idempotency keys, no readOnlyHint or destructiveHint in the tool source, and the websocket needs a ping every 5 seconds to stay open (4 of 20). Few required parameters, official SDKs in Python, TypeScript, Rust and Go, but one modeling session per MCP process and a websocket protocol an agent has to drive by hand (12 of 15). 5 + 15 + 8 + 4 + 12 = 44.\n\n## Score by category\n\n| Category | Weight | nTop | Zoo | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 38 | 55 | Zoo +17 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 61 | 65 | Zoo +4 |\n| Agent ergonomics | 13% (16.2 this run) | 60 | 44 | nTop +16 |\n| Security \u0026 auth | 14% (17.5 this run) | 26 | 67 | Zoo +41 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 0 | 35 | Zoo +35 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 45 | 90 | Zoo +45 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 51 | 69 | Zoo +18 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **40.2 · E** | **58.7 · C** | |\n\n## Facts side by side\n\n| Fact | nTop | Zoo |\n| --- | --- | --- |\n| Kind | SDK + MCP | HTTP API |\n| Vendor | nTopology Inc. | Zoo Corporation |\n| Hosted endpoint | `https://docs.ntop.com/mcp` | no (local only) |\n| Transports | Streamable HTTP | stdio, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Tools exposed | 2 | 42 |\n| Read-only variant documented | yes | yes |\n| llms.txt | no | no |\n| MCP registry | not listed | `io.github.KittyCAD/zoo-mcp` |\n| Last release | none | 2026-10-30 |\n| Terms last updated | 2026-02-01 | 2026-04-15 |\n| Privacy policy last updated | 2026-02-01 | 2026-09-09 |\n| Customer content may train models | not found in the text | yes, with an opt-out |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | none | 11 stars |\n\n## Verdicts\n\n**nTop.** An agent on a licensed Windows machine can run any nTop notebook headlessly through ntopcl with JSON in and out, and the beta Python package reads the resulting implicit bodies. Nothing is callable without a paid per-user licence, no price is public, the EULA bars servers without an order form, and licence credentials go on the command line.\n\n**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.\n\n## Before you call either\n\n### nTop\n\n1. Only plan to call nTop from a Windows machine where nTop is installed and an Automate licence is signed in; there is no hosted geometry API, and running on a server needs an order form\n2. Run `ntopcl -t \u003cnotebook.ntop\u003e` first to get the input and output JSON templates, fill the inputs, then run the notebook with the input and output file paths; the Python helper ntopcl.py wraps the three calls\n3. Keep licence credentials out of prompts and logs: pass `--license PORT@HOSTNAME` for a floating server or a local .lic file rather than a username and password where the owner has one\n4. Treat the nTop Core package as beta; pin the version, since breaking changes may land between any two versions, and work in metres\n5. Use the docs MCP server (search first, then rg or head on the returned path with .mdx) to answer nTop questions; it reads only documentation and caps output at 30 KB\n\n### Zoo\n\n1. 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\n2. 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\n3. 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\n4. 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\n5. Paginate list endpoints with `limit`, `page_token` and `sort_by`; nothing documents a rate limit, so back off on any 429 or 5xx yourself\n\n## Questions\n\n### Which is better for AI agents, nTop or Zoo?\n\nZoo scores 58.7 (C) on agent readiness against nTop's 40.2 (E), and leads in 6 of 7 scored categories. nTop leads on agent ergonomics.\n\n### Can an agent call nTop and Zoo without installing anything?\n\nnTop has a hosted endpoint at https://docs.ntop.com/mcp. Zoo runs on your own machine, with no hosted endpoint listed.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/ntop-vs-zoo.json, and with the fewest tokens: https://www.anchorterminal.com/compare/ntop-vs-zoo.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"ntop\", \"b\": \"zoo\"}`. From a terminal: `anchor compare ntop zoo`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/ntop.json and https://www.anchorterminal.com/api/v1/tools/zoo.json\n\n## Other comparisons with nTop or Zoo\n\n- [Adam vs nTop](https://www.anchorterminal.com/compare/adam-cad-vs-ntop.md)\n- [Adam vs Zoo](https://www.anchorterminal.com/compare/adam-cad-vs-zoo.md)\n- [Autodesk Platform Services vs nTop](https://www.anchorterminal.com/compare/autodesk-platform-services-vs-ntop.md)\n- [Autodesk Platform Services vs Zoo](https://www.anchorterminal.com/compare/autodesk-platform-services-vs-zoo.md)\n- [nTop vs Onshape](https://www.anchorterminal.com/compare/ntop-vs-onshape.md)\n- [SimScale vs Zoo](https://www.anchorterminal.com/compare/simscale-vs-zoo.md)\n- [nTop vs SimScale](https://www.anchorterminal.com/compare/ntop-vs-simscale.md)\n- [Onshape vs Zoo](https://www.anchorterminal.com/compare/onshape-vs-zoo.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "nTop vs Zoo",
        "url": ""
      }
    ],
    "description": "Zoo scores 58.7 (C) to nTop's 40.2 (E) for cad generate. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "nTop E 40.2",
      "Zoo C 58.7",
      "scores"
    ],
    "h1": "nTop vs Zoo",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/ntop-vs-zoo",
    "published": "2026-10-01",
    "section": "tools",
    "title": "nTop vs Zoo for AI agents in 2026: scores and prices | Anchor Terminal",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/ntop-vs-zoo"
  },
  "tokens": {
    "markdown": 4400,
    "slim": 2980
  },
  "version": 1
}
