{
  "data": {
    "a": {
      "slug": "kestra",
      "name": "Kestra",
      "vendor": "Kestra Technologies",
      "vendorUrl": "https://kestra.io",
      "kind": "http-api",
      "category": "workflow-automation",
      "summary": "Kestra is an open-source workflow orchestrator from Kestra Technologies. Flows are written in YAML and run on a server the owner hosts, with a REST API, SDKs in four languages and flows exposed as MCP tools.",
      "url": "https://www.anchorterminal.com/tools/kestra",
      "markdownUrl": "https://www.anchorterminal.com/tools/kestra.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/kestra.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/kestra.json",
      "repo": "https://github.com/kestra-io/kestra",
      "license": "Apache-2.0 (open-source server and SDK repository). Enterprise Edition and Kestra Cloud are commercial",
      "transports": [
        "http",
        "streamable-http"
      ],
      "packages": [
        {
          "registry": "oci",
          "name": "kestra/kestra"
        },
        {
          "registry": "pypi",
          "name": "kestrapy"
        },
        {
          "registry": "npm",
          "name": "@kestra-io/kestra-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "The open-source edition takes HTTP Basic auth with one username and password, set in `kestra.server.basic-auth` or on the setup page at first start. That credential has full access. Bearer API tokens, service accounts, OAuth, SSO and role-based access are in the Enterprise Edition and Kestra Cloud only. Access to open source is self-serve, by running the server. Webhook triggers are called with a key in the URL path.",
      "pricing": "freemium",
      "pricingNotes": "The open-source edition is free under Apache-2.0 with unlimited flows and executions, and an agent can start on it with no contract or account. Enterprise Edition is an annual subscription per instance through sales, with no public price. Kestra Cloud is by access request, with 14 days free and no card, then billed on task runs and Cloud runner time at rates that are not published (https://kestra.io/pricing, checked 2026-10-08).",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the OpenAPI spec or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 29427,
        "npmWeekly": 244,
        "pypiWeekly": 170,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://kestra.io/docs",
      "llmsTxt": "https://kestra.io/llms.txt",
      "openapi": "https://kestra.io/kestra.yml",
      "capabilities": [
        "automation.workflows",
        "automation.code",
        "automation.webhooks",
        "automation.apps",
        "agent.tools"
      ],
      "tags": [
        "self-hosted",
        "open-source",
        "local",
        "hosted",
        "freemium",
        "openapi",
        "llms-txt",
        "mcp",
        "python",
        "typescript",
        "java",
        "go",
        "webhooks",
        "enterprise",
        "soc2"
      ],
      "lastRelease": "2026-10-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.6,
        "grade": "B",
        "agentReady": false,
        "rank": 351,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 93,
          "payments": 50,
          "reliability": 89,
          "schema": 82,
          "security": 41,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -7,
        "negativeNotes": [
          "Five advisories rated critical were published on the repository in six months. GHSA-365w-2m69-mp9x (CVE-2026-34612, remote code execution through SQL injection, 30 March 2026), GHSA-5vc5-wxxq-3fjx and GHSA-2q47-568g-9h4f (CVE-2026-49869 and CVE-2026-53576, unauthenticated remote code execution through authentication filter bypass, 3 June 2026), and GHSA-rjhm-qm6w-m7x9 and GHSA-j5cv-8rw9-vv2p (unauthenticated remote code execution and authentication bypass, 29 September 2026). All are fixed, in 1.3.38 and 1.0.60 at the latest, and the maintainers published each one, so the deduction is reduced (https://github.com/kestra-io/kestra/security/advisories).",
          "Two further high advisories affected the default open-source setup. GHSA-hrr4-xg8h-5p6f, an unauthenticated gRPC control plane on port 50051, fixed in 2.0.3 and published 29 September 2026, and GHSA-94pv-f379-3gp3, a revoked administrator credential that stayed valid, fixed in 1.3.41 and published 6 October 2026 (https://github.com/kestra-io/kestra/security/advisories)."
        ],
        "verdict": "Kestra's open-source edition has a 216-operation OpenAPI spec, Markdown docs for agents and weekly patch releases on two long-term support lines. Its only credential is one basic-auth username and password with full access, and five critical advisories were published between March and September 2026, all fixed.",
        "bestFor": "Engineering and data teams that want declarative YAML flows with scripts in any language, run on their own infrastructure.",
        "strengths": [
          "OpenAPI 3.0.1 spec for the open-source API with 216 operations, 213 of them documenting 401, 403 and 500 as problem+json",
          "Every docs page is served as Markdown by adding `.md`, with `llms.txt` and `llms-full.txt`",
          "32 releases between 15 July and 5 October 2026, with patches each week on the 1.3 and 2.0 long-term support lines",
          "Any flow becomes an MCP tool through `McpToolTrigger`, with read-only, destructive and idempotent hints set per flow",
          "Apache-2.0 server, and usage reporting documented field by field with two switches to turn it off"
        ],
        "weaknesses": [
          "The open-source edition has one basic-auth username and password. API tokens, service accounts, RBAC and audit logs need Enterprise or Cloud",
          "Five critical advisories from 30 March to 29 September 2026, four of them unauthenticated remote code execution or authentication bypass, all fixed",
          "Kestra Cloud is request-access with no public price, and Enterprise is sold by annual contract through sales",
          "No rate limits and no idempotency key on the API. The correlation ID pattern needs a guard written into the flow",
          "The docs say `kestrapy` 2.0.1 imports `regex` without declaring it, so a plain install fails on import"
        ],
        "agentNotes": [
          "Run 2.0.5 or 1.3.42 or later. Earlier builds carry unauthenticated remote code execution advisories fixed in 1.3.38 and 2.0.3",
          "Set `kestra.server.basic-auth` in the config file before first start. Without it the setup page is open to anyone who reaches the port",
          "Put the tenant in the path. Open-source instances use `main`, as in `/api/v1/main/executions/{namespace}/{id}`",
          "Send flow inputs as multipart form fields, and add `wait=true` to get the finished execution in the same call",
          "Keep port 8081 off any shared network. The management endpoints there skip the API's basic auth"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.6
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 93,
          "payments": 50,
          "reliability": 89,
          "schema": 82,
          "security": 41,
          "transparency": 86
        },
        "provenanceScore": 51
      },
      "connect": {
        "install": "docker run --pull=always --rm -it -p 8080:8080 --user=root --name kestra -v kestra_data:/app/storage -v kestra_db:/app/data -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp -e KESTRA_PLUGINS_AUTO_INSTALL_ENABLED=true kestra/kestra:latest-slim server local",
        "http": "curl -X POST -u 'admin@kestra.io:kestra' http://localhost:8080/api/v1/main/executions/company.team/hello_world",
        "claudeCode": "claude mcp add \u003cserver-id\u003e \u003cserver-url\u003e --transport http --header \"Authorization: Basic $(echo -n 'username:password' | base64)\""
      },
      "letme": {
        "capability": "https://letme.dev/automation.workflows",
        "tool": "https://letme.dev/kestra"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Kestra Technologies SAS",
        "domain": "kestra.io",
        "domainRegistered": "2019-12-18",
        "endpointOnVendorDomain": false,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/kestra-io/kestra/releases",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Cloud terms name Kestra Technologies SAS (RCS 900 427 873), 81 rue du Pré Catelan, 59110 La Madeleine, France, and Kestra Technologies Inc., a Delaware corporation, for customers billed in the Americas.",
          "No terms or privacy link is given because the edition graded is Apache-2.0 software the owner runs. The Kestra Cloud Terms of Service and Kestra Cloud Privacy Policy (both 14 September 2026) say they do not cover the open-source project, and the privacy policy at kestra.io/privacy-policy covers only the website.",
          "The API answers on the owner's own host. Only the documentation MCP server (api.kestra.io) and the usage reports go to a Kestra domain.",
          "https://kestra.io/.well-known/security.txt names security@kestra.io and the GitHub advisory form, and expires on 26 August 2028.",
          "RDAP for kestra.io gives a registration date of 2019-12-18.",
          "status.kestra.io did not answer our requests on 8 October 2026 and no status page is linked from the pricing, security or Cloud pages."
        ],
        "score": 51
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/kestra.json"
    },
    "answer": "Kestra scores 63.6 (B) on agent readiness against Paragon ActionKit + MCP's 47.5 (D), and leads in 6 of 7 scored categories. Paragon ActionKit + MCP leads on security \u0026 auth.",
    "b": {
      "slug": "paragon",
      "name": "Paragon ActionKit + MCP",
      "vendor": "Paragon",
      "vendorUrl": "https://www.useparagon.com",
      "kind": "http-api",
      "category": "workflow-automation",
      "summary": "Embedded integration platform for SaaS products.",
      "url": "https://www.anchorterminal.com/tools/paragon",
      "markdownUrl": "https://www.anchorterminal.com/tools/paragon.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/paragon.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/paragon.json",
      "repo": "https://github.com/useparagon/paragon-mcp",
      "license": "proprietary",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://actionkit.useparagon.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@useparagon/connect"
        }
      ],
      "auth": "mixed",
      "authNotes": "Every call carries a Paragon User Token, an RS256 JWT your server signs with the project's private signing key and sends as 'Authorization: Bearer'. It names the end user, so each tool call runs against that user's connected accounts. The self-hosted MCP server takes the same token and binds it to the session.",
      "pricing": "paid",
      "pricingNotes": "Pro and Enterprise plans, both quoted by sales and priced by the number of Connected Users (customer tenants), with a free trial. Workflows, ActionKit and Managed Sync come with default usage per Connected User. Successful workflow steps and every Proxy API request count as tasks against a monthly limit with no rollover. No prices are published (https://www.useparagon.com/pricing).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in Paragon docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 48,
        "npmWeekly": 175443,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.useparagon.com/actionkit/overview",
      "llmsTxt": "https://docs.useparagon.com/llms.txt",
      "openapi": "https://docs.useparagon.com/actionkit/openapi.json",
      "capabilities": [
        "automation.embedded",
        "automation.workflows",
        "automation.apps",
        "automation.auth",
        "automation.webhooks",
        "agent.tools"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "enterprise",
        "webhooks"
      ],
      "lastRelease": "2026-09-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 47.5,
        "grade": "D",
        "agentReady": false,
        "rank": 741,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 11,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 41,
          "maintenance": 48,
          "payments": 0,
          "reliability": 60,
          "schema": 73,
          "security": 65,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -4,
        "negativeNotes": [
          "As of the 30 September 2026 commit, the self-hosted MCP server defaults `NODE_ENV` to development, and in development `/mcp` and `/sse` sign a user token for whatever ID arrives in `?user=`. The Dockerfile and the image its workflow publishes don't set `NODE_ENV`, so a server started from that image without the variable lets anyone who can reach it impersonate any end user. The README documents the behaviour and the compose file sets production, so the deduction is modest (https://github.com/useparagon/paragon-mcp/blob/main/src/index.ts, https://github.com/useparagon/paragon-mcp/blob/main/src/utils.ts)."
        ],
        "verdict": "Per-end-user RS256 JWT on every call, with a hosted Connect Portal for OAuth. No published prices and no self-serve paid plan.",
        "bestFor": "A SaaS company whose agent must act inside each customer's own CRM, calendar or drive.",
        "strengths": [
          "Per-end-user RS256 JWT on every call, with a hosted Connect Portal for OAuth",
          "ActionKit lists tools as JSON Schema and has an OpenAPI 3.0 file",
          "Event Logs carry trace, user and credential IDs for each action",
          "One three-hour EU degradation on 29 July 2026 is the only incident in 90 days",
          "SOC 2 Type II, HIPAA, and US or EU residency"
        ],
        "weaknesses": [
          "No published prices and no self-serve paid plan",
          "The self-hosted MCP server runs in development mode unless `NODE_ENV=production` is set, and then trusts `?user=`",
          "No error schemas in the OpenAPI file, no ActionKit rate limit and no tool annotations",
          "Changelog's newest entry is April 2026",
          "No security.txt, and the MCP server's licence is stated two ways with no `LICENSE` file"
        ],
        "agentNotes": [
          "Sign a short-lived User Token per end user on your server and never let the model see the signing key",
          "Set `NODE_ENV=production` before exposing the MCP server anywhere but localhost",
          "Fetch the tool list once per session with `categories` set, and cache it",
          "Set `LIMIT_TO_TOOLS` on the MCP server to keep write actions out of a read-only agent",
          "Proxy API requests count as tasks, so prefer ActionKit tools for routine actions"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 47.5
          }
        ],
        "editorialScores": {
          "ergonomics": 41,
          "maintenance": 48,
          "payments": 0,
          "reliability": 60,
          "schema": 73,
          "security": 65,
          "transparency": 43
        },
        "provenanceScore": 80
      },
      "connect": {
        "install": "npm install @useparagon/connect",
        "http": "curl https://actionkit.useparagon.com/projects/$PARAGON_PROJECT_ID/tools -H \"Authorization: Bearer $PARAGON_USER_TOKEN\"",
        "claudeCode": "claude mcp add --transport http paragon http://localhost:3001/mcp --header \"Authorization: Bearer ${PARAGON_USER_TOKEN}\"",
        "config": {
          "mcpServers": {
            "paragon": {
              "headers": {
                "Authorization": "Bearer ${PARAGON_USER_TOKEN}"
              },
              "url": "http://localhost:3001/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/automation.embedded",
        "tool": "https://letme.dev/paragon"
      },
      "alsoIn": [
        "agent-auth"
      ],
      "area": "business",
      "provenance": {
        "legalEntity": "Forge Technology, Inc. (d/b/a Paragon)",
        "domain": "useparagon.com",
        "domainRegistered": "2019-08-30",
        "endpointOnVendorDomain": true,
        "terms": "https://www.useparagon.com/terms-of-service",
        "privacy": "https://www.useparagon.com/privacy-policy",
        "statusPage": "https://status.useparagon.com",
        "changelog": "https://docs.useparagon.com/changelog/product-updates",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/paragon.json",
      "live": {
        "slug": "paragon",
        "probe": {
          "target": "https://actionkit.useparagon.com",
          "method": "get",
          "lastAt": "2026-10-09T11:46:36.515211166Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 315,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 324,
          "p95ms24h": 426,
          "samples24h": 259,
          "samples30d": 2311,
          "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": 125,
              "ok": 125
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.useparagon.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T11:40:15.900662435Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@useparagon/connect",
            "version": "3.1.0",
            "seenAt": "2026-10-08T16:24:46.462891844Z"
          }
        ],
        "githubStars": 48,
        "npmWeekly": 208641,
        "securityTxt": {
          "url": "https://useparagon.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:39:09.962225087Z"
        },
        "llmsTxt": {
          "url": "https://docs.useparagon.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:44.413992032Z"
        },
        "domain": {
          "domain": "useparagon.com",
          "registered": "2019-08-30",
          "source": "https://rdap.verisign.com/com/v1/domain/useparagon.com",
          "checkedAt": "2026-10-04T13:08:02.741729991Z"
        },
        "pages": [
          {
            "url": "https://docs.useparagon.com/changelog/product-updates",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:19:41.748920209Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1f693d6387f4"
          },
          {
            "url": "https://www.useparagon.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-08T18:31:15.151683288Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8c248050adff"
          },
          {
            "url": "https://www.useparagon.com/privacy-policy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-08T18:31:17.396512538Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "63ed04f01ce4"
          },
          {
            "url": "https://www.useparagon.com/terms-of-service",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-08T18:31:19.359049988Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c2cc0e396ab4"
          }
        ],
        "updatedAt": "2026-10-09T11:46:36.515211166Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Kestra Technologies",
        "b": "Paragon",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://actionkit.useparagon.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0 (open-source server and SDK repository). Enterprise Edition and Kestra Cloud are commercial",
        "b": "proprietary",
        "name": "Licence"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-05",
        "b": "2026-09-23",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2025-05-23",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2023-01-19",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "29k stars, 244 npm/wk, 170 PyPI/wk",
        "b": "48 stars, 175k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Kestra scores 63.6 (B) on agent readiness against Paragon ActionKit + MCP's 47.5 (D), and leads in 6 of 7 scored categories. Paragon ActionKit + MCP leads on security \u0026 auth.",
        "question": "Which is better for AI agents, Kestra or Paragon ActionKit + MCP?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Kestra and Paragon ActionKit + MCP need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Kestra. Paragon ActionKit + MCP has a hosted endpoint at https://actionkit.useparagon.com.",
        "question": "Can an agent call Kestra and Paragon ActionKit + MCP without installing anything?"
      },
      {
        "answer": "Kestra is open source (Apache-2.0 (open-source server and SDK repository). Enterprise Edition and Kestra Cloud are commercial). No open-source release is listed for Paragon ActionKit + MCP.",
        "question": "Are Kestra and Paragon ActionKit + MCP open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 89 against 60",
          "Schema \u0026 documentation, 82 against 73",
          "Agent ergonomics, 73 against 41",
          "Payments \u0026 pricing, 50 against 0",
          "Maintenance \u0026 community, 93 against 48",
          "Transparency \u0026 trust, 69 against 62"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Engineering and data teams that want declarative YAML flows with scripts in any language, run on their own infrastructure.",
        "slug": "kestra",
        "watchFor": "The open-source edition has one basic-auth username and password. API tokens, service accounts, RBAC and audit logs need Enterprise or Cloud"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 65 against 41"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "A SaaS company whose agent must act inside each customer's own CRM, calendar or drive.",
        "slug": "paragon",
        "watchFor": "No published prices and no self-serve paid plan"
      }
    ],
    "job": {
      "capability": "automation.workflows",
      "name": "Automation workflows"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/activepieces-vs-kestra.json",
        "title": "Activepieces API + MCP vs Kestra",
        "url": "https://www.anchorterminal.com/compare/activepieces-vs-kestra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/activepieces-vs-paragon.json",
        "title": "Activepieces API + MCP vs Paragon ActionKit + MCP",
        "url": "https://www.anchorterminal.com/compare/activepieces-vs-paragon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gumloop-vs-kestra.json",
        "title": "Gumloop vs Kestra",
        "url": "https://www.anchorterminal.com/compare/gumloop-vs-kestra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gumloop-vs-paragon.json",
        "title": "Gumloop vs Paragon ActionKit + MCP",
        "url": "https://www.anchorterminal.com/compare/gumloop-vs-paragon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kestra-vs-make.json",
        "title": "Kestra vs Make API + MCP",
        "url": "https://www.anchorterminal.com/compare/kestra-vs-make"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kestra-vs-n8n.json",
        "title": "Kestra vs n8n API + MCP",
        "url": "https://www.anchorterminal.com/compare/kestra-vs-n8n"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kestra-vs-pipedream.json",
        "title": "Kestra vs Pipedream API + MCP",
        "url": "https://www.anchorterminal.com/compare/kestra-vs-pipedream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kestra-vs-power-automate.json",
        "title": "Kestra vs Microsoft Power Automate",
        "url": "https://www.anchorterminal.com/compare/kestra-vs-power-automate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kestra-vs-tray.json",
        "title": "Kestra vs Tray.ai API + MCP",
        "url": "https://www.anchorterminal.com/compare/kestra-vs-tray"
      },
      {
        "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/kestra-vs-workato.json",
        "title": "Kestra vs Workato API + MCP",
        "url": "https://www.anchorterminal.com/compare/kestra-vs-workato"
      },
      {
        "json": "https://www.anchorterminal.com/compare/make-vs-paragon.json",
        "title": "Make API + MCP vs Paragon ActionKit + MCP",
        "url": "https://www.anchorterminal.com/compare/make-vs-paragon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/n8n-vs-paragon.json",
        "title": "n8n API + MCP vs Paragon ActionKit + MCP",
        "url": "https://www.anchorterminal.com/compare/n8n-vs-paragon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paragon-vs-power-automate.json",
        "title": "Paragon ActionKit + MCP vs Microsoft Power Automate",
        "url": "https://www.anchorterminal.com/compare/paragon-vs-power-automate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paragon-vs-pipedream.json",
        "title": "Paragon ActionKit + MCP vs Pipedream API + MCP",
        "url": "https://www.anchorterminal.com/compare/paragon-vs-pipedream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paragon-vs-tray.json",
        "title": "Paragon ActionKit + MCP vs Tray.ai API + MCP",
        "url": "https://www.anchorterminal.com/compare/paragon-vs-tray"
      },
      {
        "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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paragon-vs-workato.json",
        "title": "Paragon ActionKit + MCP vs Workato API + MCP",
        "url": "https://www.anchorterminal.com/compare/paragon-vs-workato"
      }
    ],
    "scores": [
      {
        "by": 29,
        "edge": "kestra",
        "kestra": 89,
        "key": "reliability",
        "name": "Reliability",
        "paragon": 60,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "edge": "kestra",
        "kestra": 82,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "paragon": 73,
        "weight": 13
      },
      {
        "by": 32,
        "edge": "kestra",
        "kestra": 73,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "paragon": 41,
        "weight": 13
      },
      {
        "by": 24,
        "edge": "paragon",
        "kestra": 41,
        "key": "security",
        "name": "Security \u0026 auth",
        "paragon": 65,
        "weight": 14
      },
      {
        "by": 50,
        "edge": "kestra",
        "kestra": 50,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "paragon": 0,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 45,
        "edge": "kestra",
        "kestra": 93,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "paragon": 48,
        "weight": 7
      },
      {
        "by": 7,
        "edge": "kestra",
        "kestra": 69,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "paragon": 62,
        "weight": 7
      }
    ],
    "summary": "Kestra scores 63.6 (B) on agent readiness against Paragon ActionKit + MCP's 47.5 (D), and leads in 6 of 7 scored categories. Paragon ActionKit + MCP leads on security \u0026 auth. Both do automation workflows.",
    "verdicts": {
      "kestra": "Kestra's open-source edition has a 216-operation OpenAPI spec, Markdown docs for agents and weekly patch releases on two long-term support lines. Its only credential is one basic-auth username and password with full access, and five critical advisories were published between March and September 2026, all fixed.",
      "paragon": "Per-end-user RS256 JWT on every call, with a hosted Connect Portal for OAuth. No published prices and no self-serve paid plan."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/kestra-vs-paragon",
    "json": "https://www.anchorterminal.com/compare/kestra-vs-paragon.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/kestra-vs-paragon.md",
    "slim": "https://www.anchorterminal.com/compare/kestra-vs-paragon.min.md"
  },
  "markdown": "Kestra scores 63.6 (B) on agent readiness against Paragon ActionKit + MCP's 47.5 (D), and leads in 6 of 7 scored categories. Paragon ActionKit + MCP leads on security \u0026 auth. Both do automation workflows.\n\n- Kestra: grade B, 63.6/100, rank #351 of 842. Markdown https://www.anchorterminal.com/tools/kestra.md · JSON https://www.anchorterminal.com/api/v1/tools/kestra.json\n- Paragon ActionKit + MCP: grade D, 47.5/100, rank #741 of 842. Markdown https://www.anchorterminal.com/tools/paragon.md · JSON https://www.anchorterminal.com/api/v1/tools/paragon.json\n\n## Which one, for what\n\n### Kestra (B)\n\nGood for: Engineering and data teams that want declarative YAML flows with scripts in any language, run on their own infrastructure.\n\nAhead on:\n- Reliability, 89 against 60\n- Schema \u0026 documentation, 82 against 73\n- Agent ergonomics, 73 against 41\n- Payments \u0026 pricing, 50 against 0\n- Maintenance \u0026 community, 93 against 48\n- Transparency \u0026 trust, 69 against 62\n\nAlso in its favour:\n- Open source\n\nWatch for: The open-source edition has one basic-auth username and password. API tokens, service accounts, RBAC and audit logs need Enterprise or Cloud\n\n### Paragon ActionKit + MCP (D)\n\nGood for: A SaaS company whose agent must act inside each customer's own CRM, calendar or drive.\n\nAhead on:\n- Security \u0026 auth, 65 against 41\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: No published prices and no self-serve paid plan\n\n\n## Score by category\n\n| Category | Weight | Kestra | Paragon ActionKit + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 89 | 60 | Kestra +29 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 82 | 73 | Kestra +9 |\n| Agent ergonomics | 13% (16.2 this run) | 73 | 41 | Kestra +32 |\n| Security \u0026 auth | 14% (17.5 this run) | 41 | 65 | Paragon ActionKit + MCP +24 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 50 | 0 | Kestra +50 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 93 | 48 | Kestra +45 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 69 | 62 | Kestra +7 |\n| Negative events | ≤15 | -7 | -4 | |\n| **Total** | | **63.6 · B** | **47.5 · D** | |\n\n## Facts side by side\n\n| Fact | Kestra | Paragon ActionKit + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Kestra Technologies | Paragon |\n| Hosted endpoint | no (local only) | `https://actionkit.useparagon.com` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | Apache-2.0 (open-source server and SDK repository). Enterprise Edition and Kestra Cloud are commercial | proprietary |\n| Read-only variant documented | yes | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-10-05 | 2026-09-23 |\n| Terms last updated | no document linked | 2025-05-23 |\n| Privacy policy last updated | no document linked | 2023-01-19 |\n| Customer content may train models |  | not found in the text |\n| Terms restrict automated access |  | yes |\n| Terms restrict benchmarking |  | yes |\n| Terms or service can change without notice |  | not found in the text |\n| Arbitration or class-action waiver |  | not found in the text |\n| Popularity | 29k stars, 244 npm/wk, 170 PyPI/wk | 48 stars, 175k npm/wk |\n| Agent reviews | none | 2/5 (2) |\n\n## Verdicts\n\n**Kestra.** Kestra's open-source edition has a 216-operation OpenAPI spec, Markdown docs for agents and weekly patch releases on two long-term support lines. Its only credential is one basic-auth username and password with full access, and five critical advisories were published between March and September 2026, all fixed.\n\n**Paragon ActionKit + MCP.** Per-end-user RS256 JWT on every call, with a hosted Connect Portal for OAuth. No published prices and no self-serve paid plan.\n\n## Before you call either\n\n### Kestra\n\n1. Run 2.0.5 or 1.3.42 or later. Earlier builds carry unauthenticated remote code execution advisories fixed in 1.3.38 and 2.0.3\n2. Set `kestra.server.basic-auth` in the config file before first start. Without it the setup page is open to anyone who reaches the port\n3. Put the tenant in the path. Open-source instances use `main`, as in `/api/v1/main/executions/{namespace}/{id}`\n4. Send flow inputs as multipart form fields, and add `wait=true` to get the finished execution in the same call\n5. Keep port 8081 off any shared network. The management endpoints there skip the API's basic auth\n\n### Paragon ActionKit + MCP\n\n1. Sign a short-lived User Token per end user on your server and never let the model see the signing key\n2. Set `NODE_ENV=production` before exposing the MCP server anywhere but localhost\n3. Fetch the tool list once per session with `categories` set, and cache it\n4. Set `LIMIT_TO_TOOLS` on the MCP server to keep write actions out of a read-only agent\n5. Proxy API requests count as tasks, so prefer ActionKit tools for routine actions\n\n## Questions\n\n### Which is better for AI agents, Kestra or Paragon ActionKit + MCP?\n\nKestra scores 63.6 (B) on agent readiness against Paragon ActionKit + MCP's 47.5 (D), and leads in 6 of 7 scored categories. Paragon ActionKit + MCP leads on security \u0026 auth.\n\n### Do Kestra and Paragon ActionKit + MCP need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Kestra and Paragon ActionKit + MCP without installing anything?\n\nNo hosted endpoint is listed for Kestra. Paragon ActionKit + MCP has a hosted endpoint at https://actionkit.useparagon.com.\n\n### Are Kestra and Paragon ActionKit + MCP open source?\n\nKestra is open source (Apache-2.0 (open-source server and SDK repository). Enterprise Edition and Kestra Cloud are commercial). No open-source release is listed for Paragon ActionKit + MCP.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/kestra-vs-paragon.json, and with the fewest tokens: https://www.anchorterminal.com/compare/kestra-vs-paragon.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"kestra\", \"b\": \"paragon\"}`. From a terminal: `anchor compare kestra paragon`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/kestra.json and https://www.anchorterminal.com/api/v1/tools/paragon.json\n\n## Other comparisons with Kestra or Paragon ActionKit + MCP\n\n- [Activepieces API + MCP vs Kestra](https://www.anchorterminal.com/compare/activepieces-vs-kestra.md)\n- [Activepieces API + MCP vs Paragon ActionKit + MCP](https://www.anchorterminal.com/compare/activepieces-vs-paragon.md)\n- [Gumloop vs Kestra](https://www.anchorterminal.com/compare/gumloop-vs-kestra.md)\n- [Gumloop vs Paragon ActionKit + MCP](https://www.anchorterminal.com/compare/gumloop-vs-paragon.md)\n- [Kestra vs Make API + MCP](https://www.anchorterminal.com/compare/kestra-vs-make.md)\n- [Kestra vs n8n API + MCP](https://www.anchorterminal.com/compare/kestra-vs-n8n.md)\n- [Kestra vs Pipedream API + MCP](https://www.anchorterminal.com/compare/kestra-vs-pipedream.md)\n- [Kestra vs Microsoft Power Automate](https://www.anchorterminal.com/compare/kestra-vs-power-automate.md)\n- [Kestra vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/kestra-vs-tray.md)\n- [Kestra vs Windmill API + MCP](https://www.anchorterminal.com/compare/kestra-vs-windmill.md)\n- [Kestra vs Workato API + MCP](https://www.anchorterminal.com/compare/kestra-vs-workato.md)\n- [Make API + MCP vs Paragon ActionKit + MCP](https://www.anchorterminal.com/compare/make-vs-paragon.md)\n- [n8n API + MCP vs Paragon ActionKit + MCP](https://www.anchorterminal.com/compare/n8n-vs-paragon.md)\n- [Paragon ActionKit + MCP vs Microsoft Power Automate](https://www.anchorterminal.com/compare/paragon-vs-power-automate.md)\n- [Paragon ActionKit + MCP vs Pipedream API + MCP](https://www.anchorterminal.com/compare/paragon-vs-pipedream.md)\n- [Paragon ActionKit + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/paragon-vs-tray.md)\n- [Paragon ActionKit + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/paragon-vs-windmill.md)\n- [Paragon ActionKit + MCP vs Workato API + MCP](https://www.anchorterminal.com/compare/paragon-vs-workato.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "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": "Kestra vs Paragon ActionKit + MCP",
        "url": ""
      }
    ],
    "description": "Kestra scores 63.6 (B) on agent readiness against Paragon ActionKit + MCP's 47.5 (D), and leads in 6 of 7 scored categories. Paragon ActionKit + MCP leads on security \u0026 auth. Both do automation workflows. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Kestra B 63.6",
      "Paragon ActionKit + MCP D 47.5",
      "scores"
    ],
    "h1": "Kestra vs Paragon ActionKit + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-kestra-vs-paragon.png",
    "path": "/compare/kestra-vs-paragon",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Kestra vs Paragon ActionKit + MCP for AI agents, B 63.6 vs D 47.5",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/kestra-vs-paragon"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 680
  },
  "version": 1
}
