{
  "data": {
    "a": {
      "slug": "prismatic",
      "name": "Prismatic",
      "vendor": "Prismatic Software Inc.",
      "vendorUrl": "https://prismatic.io",
      "kind": "http-api",
      "category": "workflow-automation",
      "summary": "Prismatic is an embedded integration platform for B2B software companies. Teams build integrations in a low-code designer or in TypeScript, deploy them to customers, and manage them through a GraphQL API, the Prism CLI and MCP servers.",
      "url": "https://www.anchorterminal.com/tools/prismatic",
      "markdownUrl": "https://www.anchorterminal.com/tools/prismatic.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/prismatic.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/prismatic.json",
      "repo": "https://github.com/prismatic-io/prism",
      "license": "Proprietary service. The Prism CLI, the Spectral and embedded SDKs, the Prism MCP dev server and the Claude Code skills on GitHub are MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://mcp.prismatic.io/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@prismatic-io/prism"
        },
        {
          "registry": "npm",
          "name": "@prismatic-io/prism-mcp"
        },
        {
          "registry": "npm",
          "name": "@prismatic-io/spectral"
        },
        {
          "registry": "npm",
          "name": "@prismatic-io/embedded"
        }
      ],
      "auth": "oauth",
      "authNotes": "Access starts with a person creating an account, by free trial or contract, and logging in through the browser (`prism login`). The API takes that user's JWT as a Bearer token. `prism me:token --type refresh` prints a refresh token for headless use, exchanged at `/auth/refresh` for an access token valid for 7 days. Tokens have no scopes of their own and act with the user's role. The hosted MCP flow server uses MCP OAuth or the same Bearer token, and embedded end users get a JWT signed by the customer's backend.",
      "pricing": "paid",
      "pricingNotes": "No public prices. The pricing page lists Scale, Enterprise and Custom plans with volume per-instance pricing, each ending in a demo request. A free trial exists, and the Terms of Use set it at 30 days unless stated otherwise at signup. Whether the trial needs a card could not be read because the signup form is drawn by script. Contracts set fair use limits in gigabyte-seconds of compute per instance per month (checked 2026-10-09).",
      "priceSummary": "Paid",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the API docs or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 29,
        "npmWeekly": 8416,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://prismatic.io/docs/api/",
      "llmsTxt": "https://prismatic.io/docs/llms.txt",
      "registryName": "io.github.prismatic-io/prism-mcp",
      "capabilities": [
        "automation.workflows",
        "automation.embedded",
        "automation.apps",
        "automation.code",
        "automation.webhooks",
        "automation.auth",
        "agent.tools"
      ],
      "tags": [
        "hosted",
        "enterprise",
        "graphql",
        "mcp",
        "cli",
        "oauth",
        "llms-txt",
        "typescript",
        "sales-led",
        "status-page",
        "soc2",
        "webhooks",
        "closed-source"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.1,
        "grade": "C",
        "agentReady": false,
        "rank": 561,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 83,
          "payments": 0,
          "reliability": 67,
          "schema": 75,
          "security": 59,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "The GraphQL API covers 120 queries and 124 mutations with typed inputs, cursor pagination and Markdown documentation, and tokens follow seven user roles. No price is published, paid use runs under an agreement that is not public, and no API rate limit or idempotency key was found in the reviewed documentation.",
        "bestFor": "A B2B software company that wants to build integrations once, deploy them per customer and let an in-app agent call them as MCP tools.",
        "strengths": [
          "GraphQL API with 120 documented queries and 124 mutations, field selection, cursor pagination and per-query filters",
          "Every docs page has a Markdown twin, indexed by `llms.txt` at prismatic.io/docs/llms.txt",
          "Hosted MCP flow server in seven regions, with OAuth 2.0 and endpoints scoped to one integration or one instance",
          "Seven organisation roles, including a read-only guest and a third-party role limited to named integrations, components or customers",
          "Dated changelog with ten entries from 20 August to 1 October 2026, and CLI and SDK releases in the same weeks"
        ],
        "weaknesses": [
          "No prices on the pricing page. All three plans end in a demo request",
          "Paid use is governed by a separate agreement that is not published. The public terms cover the website and 30-day trials",
          "No API rate limit, `Retry-After` behaviour or idempotency key found in the reviewed documentation",
          "API tokens carry the whole role of the user who created them, and revoking one refresh token revokes all of that user's",
          "Mutation failures return HTTP 200 with an `errors` array of field and message, with no error codes"
        ],
        "agentNotes": [
          "Have a person run `prism login` once, then store the output of `prism me:token --type refresh` as `PRISM_REFRESH_TOKEN`. Access tokens last 7 days",
          "Read the `errors` array on every mutation. A failed mutation still returns HTTP 200",
          "Pass `sortBy` with `CREATED_AT` when paging. Without a sort order pages can repeat or skip records",
          "Use the regional host for the tenant, such as `app.eu-west-1.prismatic.io` and `mcp.eu-west-1.prismatic.io`",
          "Create a guest user for a read-only agent, because tokens have no scopes of their own"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.1
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 83,
          "payments": 0,
          "reliability": 67,
          "schema": 75,
          "security": 59,
          "transparency": 40
        },
        "provenanceScore": 89
      },
      "connect": {
        "install": "npm install --global @prismatic-io/prism",
        "http": "curl https://app.prismatic.io/api --request POST --header \"Authorization: Bearer ${PRISMATIC_API_TOKEN}\" --header \"Content-Type: application/json\" --data '{\"query\": \"query { integrations { nodes { id name }}}\"}'",
        "claudeCode": "claude mcp add-json prismatic '{\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"mcp-remote\",\"https://mcp.prismatic.io/mcp\"]}'",
        "config": {
          "mcpServers": {
            "prism": {
              "args": [
                "-y",
                "@prismatic-io/prism-mcp",
                "."
              ],
              "command": "npx",
              "env": {
                "PRISMATIC_URL": "https://app.prismatic.io"
              },
              "type": "stdio"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/automation.workflows",
        "tool": "https://letme.dev/prismatic"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Prismatic Software Inc.",
        "domain": "prismatic.io",
        "domainRegistered": "2016-07-09",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "https://prismatic.io/legal/privacy/",
        "statusPage": "https://www.prismatic-status.io",
        "changelog": "https://prismatic.io/docs/changelog/",
        "securityTxt": "valid",
        "checked": "2026-10-09",
        "notes": [
          "The Terms of Use (last updated 17 March 2023) name Prismatic Software Inc., 5013 S Louise Ave #122, Sioux Falls, SD 57108, and are governed by South Dakota law.",
          "No terms link is recorded. The Terms of Use at https://prismatic.io/legal/terms/ are website terms that also cover trial accounts, and they say non-trial use of the Services is subject to a separate agreement, which is not published.",
          "The Privacy Policy (last updated 26 June 2024) covers the website and the web application at app.prismatic.io.",
          "security.txt at https://prismatic.io/.well-known/security.txt names security@prismatic.io and a PGP key and expires on 16 June 2027.",
          "The API, the regional hosts and the MCP flow server are all on prismatic.io subdomains. The status page is on prismatic-status.io and the trust centre on trust-prismatic.io.",
          "RDAP for prismatic.io gives a registration date of 2016-07-09."
        ],
        "score": 89
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/prismatic.json",
      "live": {
        "slug": "prismatic",
        "probe": {
          "target": "https://mcp.prismatic.io/mcp",
          "method": "get",
          "lastAt": "2026-10-10T01:38:03.502602409Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 296,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 299,
          "p95ms24h": 389,
          "samples24h": 102,
          "samples30d": 102,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.prismatic-status.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T01:34:06.13085623Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "prismatic-io/prism",
            "version": "v10.5.0",
            "released": "2026-09-30",
            "seenAt": "2026-10-09T17:14:48.08709817Z"
          },
          {
            "registry": "npm",
            "name": "@prismatic-io/embedded",
            "version": "4.14.0",
            "seenAt": "2026-10-09T17:14:46.07500175Z"
          },
          {
            "registry": "npm",
            "name": "@prismatic-io/prism",
            "version": "10.5.0",
            "seenAt": "2026-10-09T17:14:41.869797583Z"
          },
          {
            "registry": "npm",
            "name": "@prismatic-io/prism-mcp",
            "version": "1.5.0",
            "seenAt": "2026-10-09T17:14:42.93328997Z"
          },
          {
            "registry": "npm",
            "name": "@prismatic-io/spectral",
            "version": "10.34.1",
            "seenAt": "2026-10-09T17:14:44.108249111Z"
          }
        ],
        "githubStars": 29,
        "npmWeekly": 8416,
        "pages": [
          {
            "url": "https://prismatic.io/docs/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:50.569023777Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8f4fb9151364"
          },
          {
            "url": "https://prismatic.io/legal/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:53.22345549Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6521c9b1a5d9"
          }
        ],
        "updatedAt": "2026-10-10T01:38:03.502602409Z"
      }
    },
    "answer": "Prismatic scores 59.1 (C) on agent readiness against Windmill API + MCP's 55.9 (C), and leads in 1 of 7 scored categories. Windmill API + MCP leads on agent ergonomics and payments \u0026 pricing.",
    "b": {
      "slug": "windmill",
      "name": "Windmill API + MCP",
      "vendor": "Windmill Labs",
      "vendorUrl": "https://www.windmill.dev",
      "kind": "http-api",
      "category": "workflow-automation",
      "summary": "Code-first engine for scripts, flows and internal apps in 20+ languages, written in Rust, on Windmill Cloud or self-hosted.",
      "url": "https://www.anchorterminal.com/tools/windmill",
      "markdownUrl": "https://www.anchorterminal.com/tools/windmill.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/windmill.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/windmill.json",
      "repo": "https://github.com/windmill-labs/windmill",
      "license": "AGPL-3.0 (core), Apache-2.0 (clients and OpenAPI), commercial for enterprise-only parts",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://app.windmill.dev/api",
      "packages": [
        {
          "registry": "npm",
          "name": "windmill-client"
        },
        {
          "registry": "pypi",
          "name": "wmill"
        }
      ],
      "auth": "mixed",
      "authNotes": "Bearer user tokens with optional scopes (`{domain}:{action}[:{path}]`, e.g. `jobs:run:flows`) and expiry. MCP by OAuth at /api/mcp/gateway, or a token either in the URL (`?token=`) or in an Authorization header. Admins can make the MCP endpoints refuse tokens in URLs.",
      "pricing": "freemium",
      "pricingNotes": "Self-hosted Community Edition is free with unlimited executions (up to 50 users, 3 workspaces). Self-hosted Enterprise from $120 a month, priced as developer seats $20 a month, operators $10 and compute at $50 a month per standard 2 GB worker. Pro gets the same terms for companies under 10 staff and $250,000 revenue. Cloud has a free tier and paid Team and Enterprise workspaces billed on seats and compute (https://www.windmill.dev/pricing).",
      "priceSummary": "$20 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 18070,
        "npmWeekly": 126287,
        "pypiWeekly": 218343,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.windmill.dev/docs",
      "llmsTxt": "https://www.windmill.dev/llms.txt",
      "openapi": "https://app.windmill.dev/api/openapi.yaml",
      "capabilities": [
        "automation.workflows",
        "automation.code",
        "automation.webhooks",
        "automation.embedded",
        "agent.tools"
      ],
      "tags": [
        "hosted",
        "self-hosted",
        "open-source",
        "local",
        "freemium",
        "mcp",
        "llms-txt",
        "openapi",
        "python",
        "typescript",
        "webhooks",
        "enterprise"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.9,
        "grade": "C",
        "agentReady": false,
        "rank": 644,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 87,
          "payments": 35,
          "reliability": 40,
          "schema": 79,
          "security": 60,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -5,
        "negativeNotes": [
          "CVE-2026-23696, SQL injection in folder ownership management for any low-privilege user in Windmill 1.276.0 to 1.603.2, CVSS 4.0 score 9.4, exposing JWT secrets and admin identifiers. Fixed in 1.603.3 and published by NVD on 7 April 2026 (https://github.com/advisories/GHSA-34m2-qrpf-6v7q).",
          "GHSA-24fr-44f8-fqwg, published 2 March 2026, high. SUPERADMIN_SECRET could be read publicly through RCE on versions before 1.603.3. CVE-2026-22683, missing authorisation in 1.56.0 to 1.614.0, rated high on 7 April 2026. All fixed, so the deduction is reduced (https://github.com/windmill-labs/windmill/security/advisories, https://github.com/advisories?query=windmill)."
        ],
        "verdict": "Token scopes down to a single script path, with expiry. The default MCP URL puts the token in `?token=` unless a superadmin turns that off.",
        "bestFor": "Engineering teams who'd rather write steps in Python, TypeScript, Go or SQL and expose them as tools.",
        "strengths": [
          "Token scopes down to a single script path, with expiry",
          "OpenAPI 3.0.3 with 913 operations and Apache-2.0 clients for TypeScript, Python, Go and Rust",
          "Every script and flow is an MCP tool, filterable by folder and favourites",
          "97 tagged releases in 90 days, latest v1.821.0 on 1 October 2026",
          "Free unlimited executions on Cloud free workspaces and self-hosted Community Edition"
        ],
        "weaknesses": [
          "The default MCP URL puts the token in `?token=` unless a superadmin turns that off",
          "CVE-2026-23696, a critical SQL injection fixed in 1.603.3, had no Windmill advisory",
          "No published API rate limits, 429 guidance or uptime SLA",
          "The OpenAPI file documents errors for only about 30 operations",
          "No SECURITY.md or security.txt"
        ],
        "agentNotes": [
          "Give the agent a token scoped to `jobs:run` on one folder rather than a full user token",
          "Connect over the OAuth gateway or send the token in a header so it stays out of logs",
          "With a multi-workspace token, pass `workspace_id` on every workspace tool",
          "Call `searchDocs` before guessing at a flag or config key, then `readDocsPage` with the returned URL",
          "Poll the job by ID after `runScriptByPath` for long jobs instead of waiting on the call"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55.9
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 87,
          "payments": 35,
          "reliability": 40,
          "schema": 79,
          "security": 60,
          "transparency": 51
        },
        "provenanceScore": 78
      },
      "connect": {
        "http": "curl \"https://app.windmill.dev/api/w/$WM_WORKSPACE/scripts/list\" -H \"Authorization: Bearer $WM_TOKEN\"",
        "claudeCode": "claude mcp add --transport http windmill https://app.windmill.dev/api/mcp/gateway",
        "config": {
          "mcpServers": {
            "windmill": {
              "headers": {
                "Authorization": "Bearer ${WM_TOKEN}"
              },
              "url": "https://app.windmill.dev/api/mcp/w/${WM_WORKSPACE}/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/automation.workflows",
        "tool": "https://letme.dev/windmill"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Developer seat (Enterprise)",
          "unit": "seat-month",
          "usd": 20
        },
        {
          "item": "Operator seat (Enterprise)",
          "unit": "seat-month",
          "usd": 10,
          "note": "run-only users and external JWT users"
        },
        {
          "item": "Compute (Enterprise)",
          "unit": "compute-unit",
          "usd": 25,
          "note": "$50 a month per standard 2 GB worker, which is 2 CU"
        },
        {
          "item": "Enterprise minimum",
          "unit": "month",
          "usd": 120,
          "note": "from price shown on the pricing page"
        }
      ],
      "provenance": {
        "legalEntity": "Windmill Labs, Inc.",
        "domain": "windmill.dev",
        "domainRegistered": "2022-01-06",
        "endpointOnVendorDomain": true,
        "terms": "https://www.windmill.dev/terms",
        "privacy": "https://www.windmill.dev/privacy_policy",
        "statusPage": "https://status.windmill.dev",
        "changelog": "https://www.windmill.dev/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "status.windmill.dev redirects to an UptimeRobot page."
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/windmill.json",
      "live": {
        "slug": "windmill",
        "probe": {
          "target": "https://app.windmill.dev/api",
          "method": "get",
          "lastAt": "2026-10-10T01:38:13.678799271Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 220,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 191,
          "p95ms24h": 275,
          "samples24h": 250,
          "samples30d": 2453,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.windmill.dev",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:51:25.582005635Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "windmill-labs/windmill",
            "version": "v1.829.0",
            "released": "2026-10-09",
            "seenAt": "2026-10-09T17:28:22.309613848Z"
          },
          {
            "registry": "npm",
            "name": "windmill-client",
            "version": "1.829.0",
            "seenAt": "2026-10-09T17:28:21.365335434Z"
          },
          {
            "registry": "pypi",
            "name": "wmill",
            "version": "1.829.0",
            "released": "2026-10-09",
            "seenAt": "2026-10-09T17:28:22.179053686Z"
          }
        ],
        "githubStars": 18151,
        "npmWeekly": 93813,
        "pypiWeekly": 222705,
        "securityTxt": {
          "url": "https://windmill.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:40:36.457806107Z"
        },
        "llmsTxt": {
          "url": "https://www.windmill.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:03:00.853117117Z"
        },
        "domain": {
          "domain": "windmill.dev",
          "registered": "2022-01-06",
          "source": "https://pubapi.registry.google/rdap/domain/windmill.dev",
          "checkedAt": "2026-10-04T13:08:55.755645623Z"
        },
        "pages": [
          {
            "url": "https://www.windmill.dev/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:39.656501106Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "27e9c4f4c553"
          },
          {
            "url": "https://www.windmill.dev/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:41.913838964Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "afa04f8b73f5"
          },
          {
            "url": "https://www.windmill.dev/privacy_policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:43.893735474Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d11624ab86ec"
          },
          {
            "url": "https://www.windmill.dev/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:45.901525986Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e3b0c44298fc"
          }
        ],
        "updatedAt": "2026-10-10T01:38:13.678799271Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Prismatic Software Inc.",
        "b": "Windmill Labs",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.prismatic.io/mcp",
        "b": "https://app.windmill.dev/api",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service. The Prism CLI, the Spectral and embedded SDKs, the Prism MCP dev server and the Claude Code skills on GitHub are MIT",
        "b": "AGPL-3.0 (core), Apache-2.0 (clients and OpenAPI), commercial for enterprise-only parts",
        "name": "Licence"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.prismatic-io/prism-mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-06",
        "b": "2026-10-01",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "2024-06-26",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "29 stars, 8.4k npm/wk",
        "b": "18k stars, 126k npm/wk, 218k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Prismatic scores 59.1 (C) on agent readiness against Windmill API + MCP's 55.9 (C), and leads in 1 of 7 scored categories. Windmill API + MCP leads on agent ergonomics and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Prismatic or Windmill API + MCP?"
      },
      {
        "answer": "Prismatic uses an OAuth sign-in. Windmill API + MCP takes an API key or an OAuth sign-in.",
        "question": "Do Prismatic and Windmill API + MCP need an API key?"
      },
      {
        "answer": "Yes. Prismatic has a hosted endpoint at https://mcp.prismatic.io/mcp and Windmill API + MCP at https://app.windmill.dev/api.",
        "question": "Can an agent call Prismatic and Windmill API + MCP without installing anything?"
      },
      {
        "answer": "No open-source release is listed for Prismatic. Windmill API + MCP is open source (AGPL-3.0 (core), Apache-2.0 (clients and OpenAPI), commercial for enterprise-only parts).",
        "question": "Are Prismatic and Windmill API + MCP open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 67 against 40"
        ],
        "also": [
          "Runs on your own machine",
          "No incidents deducted, where Windmill API + MCP loses 5 points for them"
        ],
        "goodFor": "A B2B software company that wants to build integrations once, deploy them per customer and let an in-app agent call them as MCP tools.",
        "slug": "prismatic",
        "watchFor": "No prices on the pricing page. All three plans end in a demo request"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 73 against 63",
          "Payments \u0026 pricing, 35 against 0"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Engineering teams who'd rather write steps in Python, TypeScript, Go or SQL and expose them as tools.",
        "slug": "windmill",
        "watchFor": "The default MCP URL puts the token in `?token=` unless a superadmin turns that off"
      }
    ],
    "job": {
      "capability": "automation.workflows",
      "name": "Workflow automation"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/activepieces-vs-prismatic.json",
        "title": "Activepieces API + MCP vs Prismatic",
        "url": "https://www.anchorterminal.com/compare/activepieces-vs-prismatic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/activepieces-vs-windmill.json",
        "title": "Activepieces API + MCP vs Windmill API + MCP",
        "url": "https://www.anchorterminal.com/compare/activepieces-vs-windmill"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gumloop-vs-prismatic.json",
        "title": "Gumloop vs Prismatic",
        "url": "https://www.anchorterminal.com/compare/gumloop-vs-prismatic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gumloop-vs-windmill.json",
        "title": "Gumloop vs Windmill API + MCP",
        "url": "https://www.anchorterminal.com/compare/gumloop-vs-windmill"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kestra-vs-prismatic.json",
        "title": "Kestra vs Prismatic",
        "url": "https://www.anchorterminal.com/compare/kestra-vs-prismatic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kestra-vs-windmill.json",
        "title": "Kestra vs Windmill API + MCP",
        "url": "https://www.anchorterminal.com/compare/kestra-vs-windmill"
      },
      {
        "json": "https://www.anchorterminal.com/compare/make-vs-prismatic.json",
        "title": "Make API + MCP vs Prismatic",
        "url": "https://www.anchorterminal.com/compare/make-vs-prismatic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/make-vs-windmill.json",
        "title": "Make API + MCP vs Windmill API + MCP",
        "url": "https://www.anchorterminal.com/compare/make-vs-windmill"
      },
      {
        "json": "https://www.anchorterminal.com/compare/n8n-vs-prismatic.json",
        "title": "n8n API + MCP vs Prismatic",
        "url": "https://www.anchorterminal.com/compare/n8n-vs-prismatic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/n8n-vs-windmill.json",
        "title": "n8n API + MCP vs Windmill API + MCP",
        "url": "https://www.anchorterminal.com/compare/n8n-vs-windmill"
      },
      {
        "json": "https://www.anchorterminal.com/compare/node-red-vs-prismatic.json",
        "title": "Node-RED vs Prismatic",
        "url": "https://www.anchorterminal.com/compare/node-red-vs-prismatic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/node-red-vs-windmill.json",
        "title": "Node-RED vs Windmill API + MCP",
        "url": "https://www.anchorterminal.com/compare/node-red-vs-windmill"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pipedream-vs-prismatic.json",
        "title": "Pipedream API + MCP vs Prismatic",
        "url": "https://www.anchorterminal.com/compare/pipedream-vs-prismatic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pipedream-vs-windmill.json",
        "title": "Pipedream API + MCP vs Windmill API + MCP",
        "url": "https://www.anchorterminal.com/compare/pipedream-vs-windmill"
      },
      {
        "json": "https://www.anchorterminal.com/compare/power-automate-vs-prismatic.json",
        "title": "Microsoft Power Automate vs Prismatic",
        "url": "https://www.anchorterminal.com/compare/power-automate-vs-prismatic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/power-automate-vs-windmill.json",
        "title": "Microsoft Power Automate vs Windmill API + MCP",
        "url": "https://www.anchorterminal.com/compare/power-automate-vs-windmill"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prismatic-vs-tray.json",
        "title": "Prismatic vs Tray.ai API + MCP",
        "url": "https://www.anchorterminal.com/compare/prismatic-vs-tray"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prismatic-vs-workato.json",
        "title": "Prismatic vs Workato API + MCP",
        "url": "https://www.anchorterminal.com/compare/prismatic-vs-workato"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tray-vs-windmill.json",
        "title": "Tray.ai API + MCP vs Windmill API + MCP",
        "url": "https://www.anchorterminal.com/compare/tray-vs-windmill"
      },
      {
        "json": "https://www.anchorterminal.com/compare/windmill-vs-workato.json",
        "title": "Windmill API + MCP vs Workato API + MCP",
        "url": "https://www.anchorterminal.com/compare/windmill-vs-workato"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paragon-vs-prismatic.json",
        "title": "Paragon ActionKit + MCP vs Prismatic",
        "url": "https://www.anchorterminal.com/compare/paragon-vs-prismatic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paragon-vs-windmill.json",
        "title": "Paragon ActionKit + MCP vs Windmill API + MCP",
        "url": "https://www.anchorterminal.com/compare/paragon-vs-windmill"
      }
    ],
    "scores": [
      {
        "by": 27,
        "edge": "prismatic",
        "key": "reliability",
        "name": "Reliability",
        "prismatic": 67,
        "weight": 16,
        "windmill": 40
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "windmill",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "prismatic": 75,
        "weight": 13,
        "windmill": 79
      },
      {
        "by": 10,
        "edge": "windmill",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "prismatic": 63,
        "weight": 13,
        "windmill": 73
      },
      {
        "by": 1,
        "edge": "windmill",
        "key": "security",
        "name": "Security \u0026 auth",
        "prismatic": 59,
        "weight": 14,
        "windmill": 60
      },
      {
        "by": 35,
        "edge": "windmill",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "prismatic": 0,
        "weight": 10,
        "windmill": 35
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "windmill",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "prismatic": 83,
        "weight": 7,
        "windmill": 87
      },
      {
        "by": 0,
        "edge": "",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "prismatic": 65,
        "weight": 7,
        "windmill": 65
      }
    ],
    "summary": "Prismatic scores 59.1 (C) on agent readiness against Windmill API + MCP's 55.9 (C), and leads in 1 of 7 scored categories. Windmill API + MCP leads on agent ergonomics and payments \u0026 pricing. Both do workflow automation.",
    "verdicts": {
      "prismatic": "The GraphQL API covers 120 queries and 124 mutations with typed inputs, cursor pagination and Markdown documentation, and tokens follow seven user roles. No price is published, paid use runs under an agreement that is not public, and no API rate limit or idempotency key was found in the reviewed documentation.",
      "windmill": "Token scopes down to a single script path, with expiry. The default MCP URL puts the token in `?token=` unless a superadmin turns that off."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/prismatic-vs-windmill",
    "json": "https://www.anchorterminal.com/compare/prismatic-vs-windmill.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/prismatic-vs-windmill.md",
    "slim": "https://www.anchorterminal.com/compare/prismatic-vs-windmill.min.md"
  },
  "markdown": "Prismatic scores 59.1 (C) on agent readiness against Windmill API + MCP's 55.9 (C), and leads in 1 of 7 scored categories. Windmill API + MCP leads on agent ergonomics and payments \u0026 pricing. Both do workflow automation.\n\n- Prismatic: grade C, 59.1/100, rank #561 of 950. Markdown https://www.anchorterminal.com/tools/prismatic.md · JSON https://www.anchorterminal.com/api/v1/tools/prismatic.json\n- Windmill API + MCP: grade C, 55.9/100, rank #644 of 950. Markdown https://www.anchorterminal.com/tools/windmill.md · JSON https://www.anchorterminal.com/api/v1/tools/windmill.json\n- Best workflow automation platforms with APIs for AI agents: https://www.anchorterminal.com/best/workflow-automation/index.md\n- All 108 workflows comparisons: https://www.anchorterminal.com/compare/workflow-automation/index.md\n\n## Which one, for what\n\n### Prismatic (C)\n\nGood for: A B2B software company that wants to build integrations once, deploy them per customer and let an in-app agent call them as MCP tools.\n\nAhead on:\n- Reliability, 67 against 40\n\nAlso in its favour:\n- Runs on your own machine\n- No incidents deducted, where Windmill API + MCP loses 5 points for them\n\nWatch for: No prices on the pricing page. All three plans end in a demo request\n\n### Windmill API + MCP (C)\n\nGood for: Engineering teams who'd rather write steps in Python, TypeScript, Go or SQL and expose them as tools.\n\nAhead on:\n- Agent ergonomics, 73 against 63\n- Payments \u0026 pricing, 35 against 0\n\nAlso in its favour:\n- Open source\n\nWatch for: The default MCP URL puts the token in `?token=` unless a superadmin turns that off\n\n\n## Score by category\n\n| Category | Weight | Prismatic | Windmill API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 67 | 40 | Prismatic +27 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 75 | 79 | Windmill API + MCP +4 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 73 | Windmill API + MCP +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 59 | 60 | Windmill API + MCP +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 0 | 35 | Windmill API + MCP +35 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 87 | Windmill API + MCP +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 65 | even |\n| Negative events | ≤15 | 0 | -5 | |\n| **Total** | | **59.1 · C** | **55.9 · C** | |\n\n## Facts side by side\n\n| Fact | Prismatic | Windmill API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Prismatic Software Inc. | Windmill Labs |\n| Hosted endpoint | `https://mcp.prismatic.io/mcp` | `https://app.windmill.dev/api` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP, Streamable HTTP |\n| Auth | OAuth | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service. The Prism CLI, the Spectral and embedded SDKs, the Prism MCP dev server and the Claude Code skills on GitHub are MIT | AGPL-3.0 (core), Apache-2.0 (clients and OpenAPI), commercial for enterprise-only parts |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.prismatic-io/prism-mcp` | not listed |\n| Last release | 2026-10-06 | 2026-10-01 |\n| Terms last updated | no document linked | couldn't be read |\n| Privacy policy last updated | 2024-06-26 | no date given |\n| Customer content may train models |  | couldn't be read |\n| Terms restrict automated access |  | couldn't be read |\n| Terms restrict benchmarking |  | couldn't be read |\n| Terms or service can change without notice |  | couldn't be read |\n| Arbitration or class-action waiver |  | couldn't be read |\n| Popularity | 29 stars, 8.4k npm/wk | 18k stars, 126k npm/wk, 218k PyPI/wk |\n| Agent reviews | none | 3/5 (2) |\n\n## Verdicts\n\n**Prismatic.** The GraphQL API covers 120 queries and 124 mutations with typed inputs, cursor pagination and Markdown documentation, and tokens follow seven user roles. No price is published, paid use runs under an agreement that is not public, and no API rate limit or idempotency key was found in the reviewed documentation.\n\n**Windmill API + MCP.** Token scopes down to a single script path, with expiry. The default MCP URL puts the token in `?token=` unless a superadmin turns that off.\n\n## Before you call either\n\n### Prismatic\n\n1. Have a person run `prism login` once, then store the output of `prism me:token --type refresh` as `PRISM_REFRESH_TOKEN`. Access tokens last 7 days\n2. Read the `errors` array on every mutation. A failed mutation still returns HTTP 200\n3. Pass `sortBy` with `CREATED_AT` when paging. Without a sort order pages can repeat or skip records\n4. Use the regional host for the tenant, such as `app.eu-west-1.prismatic.io` and `mcp.eu-west-1.prismatic.io`\n5. Create a guest user for a read-only agent, because tokens have no scopes of their own\n\n### Windmill API + MCP\n\n1. Give the agent a token scoped to `jobs:run` on one folder rather than a full user token\n2. Connect over the OAuth gateway or send the token in a header so it stays out of logs\n3. With a multi-workspace token, pass `workspace_id` on every workspace tool\n4. Call `searchDocs` before guessing at a flag or config key, then `readDocsPage` with the returned URL\n5. Poll the job by ID after `runScriptByPath` for long jobs instead of waiting on the call\n\n## Questions\n\n### Which is better for AI agents, Prismatic or Windmill API + MCP?\n\nPrismatic scores 59.1 (C) on agent readiness against Windmill API + MCP's 55.9 (C), and leads in 1 of 7 scored categories. Windmill API + MCP leads on agent ergonomics and payments \u0026 pricing.\n\n### Do Prismatic and Windmill API + MCP need an API key?\n\nPrismatic uses an OAuth sign-in. Windmill API + MCP takes an API key or an OAuth sign-in.\n\n### Can an agent call Prismatic and Windmill API + MCP without installing anything?\n\nYes. Prismatic has a hosted endpoint at https://mcp.prismatic.io/mcp and Windmill API + MCP at https://app.windmill.dev/api.\n\n### Are Prismatic and Windmill API + MCP open source?\n\nNo open-source release is listed for Prismatic. Windmill API + MCP is open source (AGPL-3.0 (core), Apache-2.0 (clients and OpenAPI), commercial for enterprise-only parts).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/prismatic-vs-windmill.json, and with the fewest tokens: https://www.anchorterminal.com/compare/prismatic-vs-windmill.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"prismatic\", \"b\": \"windmill\"}`. From a terminal: `anchor compare prismatic windmill`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/prismatic.json and https://www.anchorterminal.com/api/v1/tools/windmill.json\n\n## Other comparisons with Prismatic or Windmill API + MCP\n\n- [Activepieces API + MCP vs Prismatic](https://www.anchorterminal.com/compare/activepieces-vs-prismatic.md)\n- [Activepieces API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/activepieces-vs-windmill.md)\n- [Gumloop vs Prismatic](https://www.anchorterminal.com/compare/gumloop-vs-prismatic.md)\n- [Gumloop vs Windmill API + MCP](https://www.anchorterminal.com/compare/gumloop-vs-windmill.md)\n- [Kestra vs Prismatic](https://www.anchorterminal.com/compare/kestra-vs-prismatic.md)\n- [Kestra vs Windmill API + MCP](https://www.anchorterminal.com/compare/kestra-vs-windmill.md)\n- [Make API + MCP vs Prismatic](https://www.anchorterminal.com/compare/make-vs-prismatic.md)\n- [Make API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/make-vs-windmill.md)\n- [n8n API + MCP vs Prismatic](https://www.anchorterminal.com/compare/n8n-vs-prismatic.md)\n- [n8n API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/n8n-vs-windmill.md)\n- [Node-RED vs Prismatic](https://www.anchorterminal.com/compare/node-red-vs-prismatic.md)\n- [Node-RED vs Windmill API + MCP](https://www.anchorterminal.com/compare/node-red-vs-windmill.md)\n- [Pipedream API + MCP vs Prismatic](https://www.anchorterminal.com/compare/pipedream-vs-prismatic.md)\n- [Pipedream API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/pipedream-vs-windmill.md)\n- [Microsoft Power Automate vs Prismatic](https://www.anchorterminal.com/compare/power-automate-vs-prismatic.md)\n- [Microsoft Power Automate vs Windmill API + MCP](https://www.anchorterminal.com/compare/power-automate-vs-windmill.md)\n- [Prismatic vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/prismatic-vs-tray.md)\n- [Prismatic vs Workato API + MCP](https://www.anchorterminal.com/compare/prismatic-vs-workato.md)\n- [Tray.ai API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/tray-vs-windmill.md)\n- [Windmill API + MCP vs Workato API + MCP](https://www.anchorterminal.com/compare/windmill-vs-workato.md)\n- [Paragon ActionKit + MCP vs Prismatic](https://www.anchorterminal.com/compare/paragon-vs-prismatic.md)\n- [Paragon ActionKit + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/paragon-vs-windmill.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Prismatic vs Windmill API + MCP",
        "url": ""
      }
    ],
    "description": "Prismatic scores 59.1 (C) to Windmill's 55.9 (C) for workflow automation. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Prismatic C 59.1",
      "Windmill API + MCP C 55.9",
      "scores"
    ],
    "h1": "Prismatic vs Windmill API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-prismatic-vs-windmill.png",
    "path": "/compare/prismatic-vs-windmill",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Prismatic vs Windmill for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/prismatic-vs-windmill"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 780
  },
  "version": 1
}
