{
  "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 Tray.ai API + MCP's 55.5 (C), and leads in 6 of 7 scored categories. Tray.ai API + MCP leads on security \u0026 auth.",
    "b": {
      "slug": "tray",
      "name": "Tray.ai API + MCP",
      "vendor": "Tray.ai",
      "vendorUrl": "https://tray.ai",
      "kind": "http-api",
      "category": "workflow-automation",
      "summary": "Low-code integration platform with an embedded product for SaaS vendors.",
      "url": "https://www.anchorterminal.com/tools/tray",
      "markdownUrl": "https://www.anchorterminal.com/tools/tray.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/tray.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/tray.json",
      "license": "proprietary",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.tray.io/core/v1",
      "packages": [],
      "auth": "mixed",
      "authNotes": "REST and GraphQL endpoints take a bearer token, either the org master token (you act) or an end user's user token (you act as them). Tray Headless MCP uses a one-time OAuth2 sign-in bound to one workspace, and the docs say not to send a static Authorization header. Agent Gateway MCP servers take OAuth2 or an API token, and API token users can't use per-user credentials.",
      "pricing": "paid",
      "pricingNotes": "Pro, Team and Enterprise plans, all quoted by sales and billed on tasks that cover integration, automation, MCP and agent use. Every plan lists full API access and Tray Headless, and Agent Gateway is an add-on. A free trial exists with no stated length. No prices are published (https://tray.ai/pricing/).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in Tray docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://tray.ai/documentation/developer/getting-started/introduction",
      "llmsTxt": "https://tray.ai/documentation/llms.txt",
      "openapi": "https://tray.ai/documentation/files/openapi/trayapi.yaml",
      "capabilities": [
        "automation.workflows",
        "automation.apps",
        "automation.embedded",
        "automation.code",
        "automation.webhooks",
        "automation.auth",
        "agent.tools"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "openapi",
        "enterprise",
        "closed-source",
        "webhooks"
      ],
      "lastRelease": "2026-09-09",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.5,
        "grade": "C",
        "agentReady": false,
        "rank": 589,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 33,
          "maintenance": 60,
          "payments": 0,
          "reliability": 72,
          "schema": 80,
          "security": 66,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Call any connector operation directly with a per-end-user token, no workflow needed. No published prices and no self-serve plan.",
        "bestFor": "SaaS vendors embedding integrations for their customers, with an agent that acts per end user.",
        "strengths": [
          "Call any connector operation directly with a per-end-user token, no workflow needed",
          "Published API limits, 30 requests a second with bursts to 50",
          "Every action logged and streamable, with settable retention and log masking",
          "Four minor incidents in 90 days, none on the core APIs",
          "US, EU and APAC regions, SOC 2 Type 2 and a pentest dated 23 September 2026"
        ],
        "weaknesses": [
          "No published prices and no self-serve plan",
          "Upstream 429s are wrapped in a 200, which hides throttling from naive retry logic",
          "Headless MCP can delete projects, workflows and auths with no server-side confirmation",
          "No official SDK and no tool annotations",
          "API lives on api.tray.io while the brand, docs and legal pages are on tray.ai"
        ],
        "agentNotes": [
          "Use a user token when acting for a customer and the master token only for admin work",
          "Parse the body of call-connector responses for upstream status codes before treating a 200 as success",
          "Point Headless MCP at the workspace's region, api.eu1.tray.io or api.ap1.tray.io outside the US",
          "Pick the workspace at OAuth sign-in. Headless MCP binds it to the session and takes no workspace ID",
          "Ask before any Headless MCP delete. The server won't"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "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.5
          }
        ],
        "editorialScores": {
          "ergonomics": 33,
          "maintenance": 60,
          "payments": 0,
          "reliability": 72,
          "schema": 80,
          "security": 66,
          "transparency": 67
        },
        "provenanceScore": 68
      },
      "connect": {
        "http": "curl https://api.tray.io/core/v1/connectors -H \"Authorization: Bearer $TRAY_MASTER_TOKEN\"",
        "claudeCode": "claude mcp add --transport http tray https://api.tray.io/mcp",
        "config": {
          "mcpServers": {
            "tray": {
              "url": "https://api.tray.io/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/automation.workflows",
        "tool": "https://letme.dev/tray"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Tray.ai, Inc.",
        "domain": "tray.ai",
        "domainRegistered": "2017-12-15",
        "domainNote": "The API and MCP hosts are on tray.io, the company's former domain. The brand, docs and legal pages are on tray.ai.",
        "endpointOnVendorDomain": false,
        "terms": "https://tray.ai/legal/msa/",
        "privacy": "https://tray.ai/legal/privacy-policy/",
        "statusPage": "https://status.tray.ai/",
        "changelog": "https://tray.ai/documentation/releases",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/tray.json",
      "live": {
        "slug": "tray",
        "probe": {
          "target": "https://api.tray.io/core/v1",
          "method": "get",
          "lastAt": "2026-10-09T10:42:59.511665028Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 467,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 447,
          "p95ms24h": 524,
          "samples24h": 260,
          "samples30d": 2300,
          "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": 114,
              "ok": 114
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.tray.ai",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T10:42:06.868249032Z"
        },
        "securityTxt": {
          "url": "https://tray.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:59.834964634Z"
        },
        "llmsTxt": {
          "url": "https://tray.ai/documentation/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:56.974439042Z"
        },
        "domain": {
          "domain": "tray.ai",
          "registered": "2017-12-15",
          "source": "https://rdap.identitydigital.services/rdap/domain/tray.ai",
          "checkedAt": "2026-10-04T13:09:14.155471976Z"
        },
        "pages": [
          {
            "url": "https://tray.ai/documentation/releases",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:17.997047088Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7b99a20c97aa"
          },
          {
            "url": "https://tray.ai/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:24.091767607Z",
            "changedAt": "2026-10-07T18:10:12.327281171Z",
            "fingerprint": "adf78e7b6aca"
          },
          {
            "url": "https://tray.ai/legal/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:22.088982995Z",
            "changedAt": "2026-10-07T18:10:10.594781985Z",
            "fingerprint": "8e4a2a8f5e95"
          },
          {
            "url": "https://tray.ai/legal/msa/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:20.248452923Z",
            "changedAt": "2026-10-07T18:10:08.537401988Z",
            "fingerprint": "be6b48f8b5d1"
          }
        ],
        "updatedAt": "2026-10-09T10:42:59.511665028Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Kestra Technologies",
        "b": "Tray.ai",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.tray.io/core/v1",
        "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": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-05",
        "b": "2026-09-09",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2025-01-28",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-01-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "not found in the text",
        "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": "none",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Kestra scores 63.6 (B) on agent readiness against Tray.ai API + MCP's 55.5 (C), and leads in 6 of 7 scored categories. Tray.ai API + MCP leads on security \u0026 auth.",
        "question": "Which is better for AI agents, Kestra or Tray.ai API + MCP?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Kestra and Tray.ai API + MCP need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Kestra. Tray.ai API + MCP has a hosted endpoint at https://api.tray.io/core/v1.",
        "question": "Can an agent call Kestra and Tray.ai API + 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 Tray.ai API + MCP.",
        "question": "Are Kestra and Tray.ai API + MCP open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 89 against 72",
          "Agent ergonomics, 73 against 33",
          "Payments \u0026 pricing, 50 against 0",
          "Maintenance \u0026 community, 93 against 60"
        ],
        "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, 66 against 41"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "No incidents deducted, where Kestra loses 7 points for them"
        ],
        "goodFor": "SaaS vendors embedding integrations for their customers, with an agent that acts per end user.",
        "slug": "tray",
        "watchFor": "No published prices and no self-serve 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-tray.json",
        "title": "Activepieces API + MCP vs Tray.ai API + MCP",
        "url": "https://www.anchorterminal.com/compare/activepieces-vs-tray"
      },
      {
        "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-tray.json",
        "title": "Gumloop vs Tray.ai API + MCP",
        "url": "https://www.anchorterminal.com/compare/gumloop-vs-tray"
      },
      {
        "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-paragon.json",
        "title": "Kestra vs Paragon ActionKit + MCP",
        "url": "https://www.anchorterminal.com/compare/kestra-vs-paragon"
      },
      {
        "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-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-tray.json",
        "title": "Make API + MCP vs Tray.ai API + MCP",
        "url": "https://www.anchorterminal.com/compare/make-vs-tray"
      },
      {
        "json": "https://www.anchorterminal.com/compare/n8n-vs-tray.json",
        "title": "n8n API + MCP vs Tray.ai API + MCP",
        "url": "https://www.anchorterminal.com/compare/n8n-vs-tray"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pipedream-vs-tray.json",
        "title": "Pipedream API + MCP vs Tray.ai API + MCP",
        "url": "https://www.anchorterminal.com/compare/pipedream-vs-tray"
      },
      {
        "json": "https://www.anchorterminal.com/compare/power-automate-vs-tray.json",
        "title": "Microsoft Power Automate vs Tray.ai API + MCP",
        "url": "https://www.anchorterminal.com/compare/power-automate-vs-tray"
      },
      {
        "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/tray-vs-workato.json",
        "title": "Tray.ai API + MCP vs Workato API + MCP",
        "url": "https://www.anchorterminal.com/compare/tray-vs-workato"
      },
      {
        "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"
      }
    ],
    "scores": [
      {
        "by": 17,
        "edge": "kestra",
        "kestra": 89,
        "key": "reliability",
        "name": "Reliability",
        "tray": 72,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 2,
        "edge": "kestra",
        "kestra": 82,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "tray": 80,
        "weight": 13
      },
      {
        "by": 40,
        "edge": "kestra",
        "kestra": 73,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "tray": 33,
        "weight": 13
      },
      {
        "by": 25,
        "edge": "tray",
        "kestra": 41,
        "key": "security",
        "name": "Security \u0026 auth",
        "tray": 66,
        "weight": 14
      },
      {
        "by": 50,
        "edge": "kestra",
        "kestra": 50,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "tray": 0,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 33,
        "edge": "kestra",
        "kestra": 93,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "tray": 60,
        "weight": 7
      },
      {
        "by": 1,
        "edge": "kestra",
        "kestra": 69,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "tray": 68,
        "weight": 7
      }
    ],
    "summary": "Kestra scores 63.6 (B) on agent readiness against Tray.ai API + MCP's 55.5 (C), and leads in 6 of 7 scored categories. Tray.ai API + 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.",
      "tray": "Call any connector operation directly with a per-end-user token, no workflow needed. No published prices and no self-serve plan."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/kestra-vs-tray",
    "json": "https://www.anchorterminal.com/compare/kestra-vs-tray.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/kestra-vs-tray.md",
    "slim": "https://www.anchorterminal.com/compare/kestra-vs-tray.min.md"
  },
  "markdown": "Kestra scores 63.6 (B) on agent readiness against Tray.ai API + MCP's 55.5 (C), and leads in 6 of 7 scored categories. Tray.ai API + 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- Tray.ai API + MCP: grade C, 55.5/100, rank #589 of 842. Markdown https://www.anchorterminal.com/tools/tray.md · JSON https://www.anchorterminal.com/api/v1/tools/tray.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 72\n- Agent ergonomics, 73 against 33\n- Payments \u0026 pricing, 50 against 0\n- Maintenance \u0026 community, 93 against 60\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### Tray.ai API + MCP (C)\n\nGood for: SaaS vendors embedding integrations for their customers, with an agent that acts per end user.\n\nAhead on:\n- Security \u0026 auth, 66 against 41\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- No incidents deducted, where Kestra loses 7 points for them\n\nWatch for: No published prices and no self-serve plan\n\n\n## Score by category\n\n| Category | Weight | Kestra | Tray.ai API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 89 | 72 | Kestra +17 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 82 | 80 | Kestra +2 |\n| Agent ergonomics | 13% (16.2 this run) | 73 | 33 | Kestra +40 |\n| Security \u0026 auth | 14% (17.5 this run) | 41 | 66 | Tray.ai API + MCP +25 |\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 | 60 | Kestra +33 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 69 | 68 | Kestra +1 |\n| Negative events | ≤15 | -7 | 0 | |\n| **Total** | | **63.6 · B** | **55.5 · C** | |\n\n## Facts side by side\n\n| Fact | Kestra | Tray.ai API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Kestra Technologies | Tray.ai |\n| Hosted endpoint | no (local only) | `https://api.tray.io/core/v1` |\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 | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-05 | 2026-09-09 |\n| Terms last updated | no document linked | 2025-01-28 |\n| Privacy policy last updated | no document linked | 2026-01-01 |\n| Customer content may train models |  | not found in the text |\n| Terms restrict automated access |  | not found in the text |\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 | none |\n| Agent reviews | none | 2.5/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**Tray.ai API + MCP.** Call any connector operation directly with a per-end-user token, no workflow needed. No published prices and no self-serve 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### Tray.ai API + MCP\n\n1. Use a user token when acting for a customer and the master token only for admin work\n2. Parse the body of call-connector responses for upstream status codes before treating a 200 as success\n3. Point Headless MCP at the workspace's region, api.eu1.tray.io or api.ap1.tray.io outside the US\n4. Pick the workspace at OAuth sign-in. Headless MCP binds it to the session and takes no workspace ID\n5. Ask before any Headless MCP delete. The server won't\n\n## Questions\n\n### Which is better for AI agents, Kestra or Tray.ai API + MCP?\n\nKestra scores 63.6 (B) on agent readiness against Tray.ai API + MCP's 55.5 (C), and leads in 6 of 7 scored categories. Tray.ai API + MCP leads on security \u0026 auth.\n\n### Do Kestra and Tray.ai API + MCP need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Kestra and Tray.ai API + MCP without installing anything?\n\nNo hosted endpoint is listed for Kestra. Tray.ai API + MCP has a hosted endpoint at https://api.tray.io/core/v1.\n\n### Are Kestra and Tray.ai API + 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 Tray.ai API + MCP.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/kestra-vs-tray.json, and with the fewest tokens: https://www.anchorterminal.com/compare/kestra-vs-tray.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"kestra\", \"b\": \"tray\"}`. From a terminal: `anchor compare kestra tray`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/kestra.json and https://www.anchorterminal.com/api/v1/tools/tray.json\n\n## Other comparisons with Kestra or Tray.ai API + MCP\n\n- [Activepieces API + MCP vs Kestra](https://www.anchorterminal.com/compare/activepieces-vs-kestra.md)\n- [Activepieces API + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/activepieces-vs-tray.md)\n- [Gumloop vs Kestra](https://www.anchorterminal.com/compare/gumloop-vs-kestra.md)\n- [Gumloop vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/gumloop-vs-tray.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 Paragon ActionKit + MCP](https://www.anchorterminal.com/compare/kestra-vs-paragon.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 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 Tray.ai API + MCP](https://www.anchorterminal.com/compare/make-vs-tray.md)\n- [n8n API + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/n8n-vs-tray.md)\n- [Pipedream API + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/pipedream-vs-tray.md)\n- [Microsoft Power Automate vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/power-automate-vs-tray.md)\n- [Tray.ai API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/tray-vs-windmill.md)\n- [Tray.ai API + MCP vs Workato API + MCP](https://www.anchorterminal.com/compare/tray-vs-workato.md)\n- [Paragon ActionKit + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/paragon-vs-tray.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 Tray.ai API + MCP",
        "url": ""
      }
    ],
    "description": "Kestra scores 63.6 (B) on agent readiness against Tray.ai API + MCP's 55.5 (C), and leads in 6 of 7 scored categories. Tray.ai API + 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",
      "Tray.ai API + MCP C 55.5",
      "scores"
    ],
    "h1": "Kestra vs Tray.ai API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-kestra-vs-tray.png",
    "path": "/compare/kestra-vs-tray",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Kestra vs Tray.ai API + MCP for AI agents, B 63.6 vs C 55.5",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/kestra-vs-tray"
  },
  "tokens": {
    "markdown": 2200,
    "slim": 680
  },
  "version": 1
}
