{
  "data": {
    "a": {
      "slug": "node-red",
      "name": "Node-RED",
      "vendor": "OpenJS Foundation",
      "vendorUrl": "https://nodered.org",
      "kind": "http-api",
      "category": "workflow-automation",
      "summary": "Node-RED is an open-source flow-based automation runtime hosted by the OpenJS Foundation. The owner runs it on Node.js, and an Admin HTTP API and a command-line client deploy flows and install nodes.",
      "url": "https://www.anchorterminal.com/tools/node-red",
      "markdownUrl": "https://www.anchorterminal.com/tools/node-red.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/node-red.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/node-red.json",
      "repo": "https://github.com/node-red/node-red",
      "license": "Apache-2.0",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "node-red"
        },
        {
          "registry": "npm",
          "name": "node-red-admin"
        },
        {
          "registry": "oci",
          "name": "nodered/node-red"
        }
      ],
      "auth": "mixed",
      "authNotes": "A default install has no authentication. Setting `adminAuth` in `settings.js` turns on users with bcrypt-hashed passwords and permissions of `*`, `read` or a list such as `flows.read`. An agent then posts the username and password to `/auth/token` for a bearer token, valid seven days by default with no refresh. Access is self-serve, by running the software. Routes made by HTTP In nodes share one basic-auth username and password.",
      "pricing": "free",
      "pricingNotes": "Free under Apache-2.0 with nothing to buy from the project, so an agent can start with no account, card or contract. FlowFuse, a separate company, sells a hosted platform for Node-RED that the docs link, and it is not graded here (https://nodered.org/about/license/, checked 2026-10-09).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source. The project sells nothing (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 23729,
        "npmWeekly": 55172,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://nodered.org/docs/api/admin/",
      "capabilities": [
        "automation.workflows",
        "automation.webhooks",
        "automation.code",
        "automation.apps"
      ],
      "tags": [
        "self-hosted",
        "open-source",
        "local",
        "free",
        "javascript",
        "webhooks",
        "cli",
        "docker"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61,
        "grade": "C",
        "agentReady": false,
        "rank": 486,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 44,
          "maintenance": 81,
          "payments": 60,
          "reliability": 90,
          "schema": 41,
          "security": 51,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Node-RED's Admin HTTP API covers flows, nodes and settings in 20 documented methods, with read and write permissions per resource and a revision check on deploys. It has no OpenAPI file, no pagination and no SDK, and a default install accepts API calls from anyone who can reach port 1880.",
        "bestFor": "Owners who want event-driven flows on their own machine or device, with a large library of community nodes, and an agent that deploys or edits flows as JSON.",
        "strengths": [
          "Apache-2.0, with 12 releases between 30 July and 8 October 2026 on the 5.x and 4.x lines",
          "Admin API permissions are per resource, such as `flows.read` and `flows.write`, and a user or token can be limited to `read`",
          "`POST /flows` with `Node-RED-API-Version: v2` takes a `rev` value and answers 409 when the runtime holds newer flows",
          "Usage telemetry is opt-in, lists the four fields sent, and can be switched off in settings, by flag or by environment variable",
          "A release plan gives each major version a maintenance start and an end-of-life date, with 4.x ending on 31 December 2026"
        ],
        "weaknesses": [
          "No OpenAPI file, `llms.txt` or SDK. The Admin API is documented as 20 hand-written pages on nodered.org",
          "`adminAuth` is commented out in the default settings file, so a fresh install has no authentication on the editor or the Admin API",
          "No pagination, filtering or field selection. `GET /flows` returns the whole flow configuration",
          "Access tokens come from a username and password grant, last seven days by default and cannot be refreshed",
          "Routes for context, plugins, library and projects exist in the source and are missing from the published method list"
        ],
        "agentNotes": [
          "Call `GET /auth/login` first. An empty object means no authentication is set and every Admin API call is open",
          "Send `Node-RED-API-Version: v2` and the last `rev` on `POST /flows`, and re-read the flows on a 409",
          "Set `Node-RED-Deployment-Type` to `nodes` or `flows` to restart only what changed. The default `full` stops every node",
          "Prefer `GET /flow/:id` and `PUT /flow/:id` for one tab. `GET /flows` returns every node in the runtime",
          "Treat `flows.write` and `nodes.write` as code execution on the host. Function nodes run JavaScript and `POST /nodes` installs npm modules"
        ],
        "metrics": {
          "kind": "local",
          "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": 61
          }
        ],
        "editorialScores": {
          "ergonomics": 44,
          "maintenance": 81,
          "payments": 60,
          "reliability": 90,
          "schema": 41,
          "security": 51,
          "transparency": 85
        },
        "provenanceScore": 45
      },
      "connect": {
        "install": "sudo npm install -g node-red",
        "http": "curl http://localhost:1880/auth/token --data 'client_id=node-red-admin\u0026grant_type=password\u0026scope=*\u0026username=admin\u0026password=password'"
      },
      "letme": {
        "capability": "https://letme.dev/automation.workflows",
        "tool": "https://letme.dev/node-red"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "OpenJS Foundation",
        "domain": "nodered.org",
        "domainRegistered": "2013-09-12",
        "endpointOnVendorDomain": false,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/node-red/node-red/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The licence page on nodered.org says copyright is retained by the OpenJS Foundation, and the site footer reads Copyright OpenJS Foundation and Node-RED contributors.",
          "No terms or privacy link is given. Node-RED is Apache-2.0 software the owner runs, and the project publishes no service agreement or privacy policy of its own. The site footer links the OpenJS Foundation's terms of use and privacy policy, which are a parent body's website documents and were not read.",
          "The Admin API answers on the owner's own host, by default http://localhost:1880. Only the opt-in telemetry report goes to an endpoint the project hosts.",
          "https://nodered.org/.well-known/security.txt returns 404. SECURITY.md in the repository gives team@nodered.org and escalation to the OpenJS Foundation CNA.",
          "RDAP for nodered.org gives a registration date of 2013-09-12. The lookup through rdap.org was redirected to the registry's RDAP host.",
          "nodered.org has no robots.txt (404). No status page exists because there is no hosted service."
        ],
        "score": 45
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/node-red.json",
      "live": {
        "slug": "node-red",
        "versions": [
          {
            "registry": "github",
            "name": "node-red/node-red",
            "version": "5.0.8",
            "released": "2026-10-08",
            "seenAt": "2026-10-09T17:08:22.991909994Z"
          },
          {
            "registry": "npm",
            "name": "node-red",
            "version": "5.0.8",
            "seenAt": "2026-10-09T17:08:20.781082858Z"
          },
          {
            "registry": "npm",
            "name": "node-red-admin",
            "version": "4.1.8",
            "seenAt": "2026-10-09T17:08:21.396260251Z"
          }
        ],
        "githubStars": 23730,
        "npmWeekly": 55172,
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/node-red/node-red/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:45:37.181546944Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4223a5392d5c"
          }
        ],
        "updatedAt": "2026-10-09T18:45:37.181546944Z"
      }
    },
    "answer": "Node-RED scores 61 (C) on agent readiness against Tray.ai API + MCP's 55.5 (C), and leads in 4 of 7 scored categories. Tray.ai API + MCP leads on schema \u0026 documentation and 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": 655,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 11,
        "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-10T02:07:28.314282945Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 472,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 449,
          "p95ms24h": 493,
          "samples24h": 250,
          "samples30d": 2458,
          "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": 22,
              "ok": 22
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.tray.ai",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:06:31.183093732Z"
        },
        "securityTxt": {
          "url": "https://tray.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:30.113704323Z"
        },
        "llmsTxt": {
          "url": "https://tray.ai/documentation/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:55.355674866Z"
        },
        "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-09T18:46:46.22244182Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7b99a20c97aa"
          },
          {
            "url": "https://tray.ai/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:52.378504753Z",
            "changedAt": "2026-10-09T18:46:52.378504753Z",
            "fingerprint": "e773c5032772"
          },
          {
            "url": "https://tray.ai/legal/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:50.403638492Z",
            "changedAt": "2026-10-09T18:46:50.403638492Z",
            "fingerprint": "1b9ee537f80e"
          },
          {
            "url": "https://tray.ai/legal/msa/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:48.485504457Z",
            "changedAt": "2026-10-09T18:46:48.485504457Z",
            "fingerprint": "7736d8f805ae"
          }
        ],
        "updatedAt": "2026-10-10T02:07:28.314282945Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "OpenJS Foundation",
        "b": "Tray.ai",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.tray.io/core/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "proprietary",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-08",
        "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": "24k stars, 55k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Node-RED scores 61 (C) on agent readiness against Tray.ai API + MCP's 55.5 (C), and leads in 4 of 7 scored categories. Tray.ai API + MCP leads on schema \u0026 documentation and security \u0026 auth.",
        "question": "Which is better for AI agents, Node-RED or Tray.ai API + MCP?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Node-RED and Tray.ai API + MCP need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Node-RED. Tray.ai API + MCP has a hosted endpoint at https://api.tray.io/core/v1.",
        "question": "Can an agent call Node-RED and Tray.ai API + MCP without installing anything?"
      },
      {
        "answer": "Node-RED is open source (Apache-2.0). No open-source release is listed for Tray.ai API + MCP.",
        "question": "Are Node-RED and Tray.ai API + MCP open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 90 against 72",
          "Agent ergonomics, 44 against 33",
          "Payments \u0026 pricing, 60 against 0",
          "Maintenance \u0026 community, 81 against 60"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Owners who want event-driven flows on their own machine or device, with a large library of community nodes, and an agent that deploys or edits flows as JSON.",
        "slug": "node-red",
        "watchFor": "No OpenAPI file, `llms.txt` or SDK. The Admin API is documented as 20 hand-written pages on nodered.org"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 80 against 41",
          "Security \u0026 auth, 66 against 51"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "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": "Workflow automation"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/activepieces-vs-node-red.json",
        "title": "Activepieces API + MCP vs Node-RED",
        "url": "https://www.anchorterminal.com/compare/activepieces-vs-node-red"
      },
      {
        "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-node-red.json",
        "title": "Gumloop vs Node-RED",
        "url": "https://www.anchorterminal.com/compare/gumloop-vs-node-red"
      },
      {
        "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-node-red.json",
        "title": "Kestra vs Node-RED",
        "url": "https://www.anchorterminal.com/compare/kestra-vs-node-red"
      },
      {
        "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/make-vs-node-red.json",
        "title": "Make API + MCP vs Node-RED",
        "url": "https://www.anchorterminal.com/compare/make-vs-node-red"
      },
      {
        "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-node-red.json",
        "title": "n8n API + MCP vs Node-RED",
        "url": "https://www.anchorterminal.com/compare/n8n-vs-node-red"
      },
      {
        "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/node-red-vs-paragon.json",
        "title": "Node-RED vs Paragon ActionKit + MCP",
        "url": "https://www.anchorterminal.com/compare/node-red-vs-paragon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/node-red-vs-pipedream.json",
        "title": "Node-RED vs Pipedream API + MCP",
        "url": "https://www.anchorterminal.com/compare/node-red-vs-pipedream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/node-red-vs-power-automate.json",
        "title": "Node-RED vs Microsoft Power Automate",
        "url": "https://www.anchorterminal.com/compare/node-red-vs-power-automate"
      },
      {
        "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/node-red-vs-workato.json",
        "title": "Node-RED vs Workato API + MCP",
        "url": "https://www.anchorterminal.com/compare/node-red-vs-workato"
      },
      {
        "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/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/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": 18,
        "edge": "node-red",
        "key": "reliability",
        "name": "Reliability",
        "node-red": 90,
        "tray": 72,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 39,
        "edge": "tray",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "node-red": 41,
        "tray": 80,
        "weight": 13
      },
      {
        "by": 11,
        "edge": "node-red",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "node-red": 44,
        "tray": 33,
        "weight": 13
      },
      {
        "by": 15,
        "edge": "tray",
        "key": "security",
        "name": "Security \u0026 auth",
        "node-red": 51,
        "tray": 66,
        "weight": 14
      },
      {
        "by": 60,
        "edge": "node-red",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "node-red": 60,
        "tray": 0,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 21,
        "edge": "node-red",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "node-red": 81,
        "tray": 60,
        "weight": 7
      },
      {
        "by": 3,
        "edge": "tray",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "node-red": 65,
        "tray": 68,
        "weight": 7
      }
    ],
    "summary": "Node-RED scores 61 (C) on agent readiness against Tray.ai API + MCP's 55.5 (C), and leads in 4 of 7 scored categories. Tray.ai API + MCP leads on schema \u0026 documentation and security \u0026 auth. Both do workflow automation.",
    "verdicts": {
      "node-red": "Node-RED's Admin HTTP API covers flows, nodes and settings in 20 documented methods, with read and write permissions per resource and a revision check on deploys. It has no OpenAPI file, no pagination and no SDK, and a default install accepts API calls from anyone who can reach port 1880.",
      "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/node-red-vs-tray",
    "json": "https://www.anchorterminal.com/compare/node-red-vs-tray.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/node-red-vs-tray.md",
    "slim": "https://www.anchorterminal.com/compare/node-red-vs-tray.min.md"
  },
  "markdown": "Node-RED scores 61 (C) on agent readiness against Tray.ai API + MCP's 55.5 (C), and leads in 4 of 7 scored categories. Tray.ai API + MCP leads on schema \u0026 documentation and security \u0026 auth. Both do workflow automation.\n\n- Node-RED: grade C, 61/100, rank #486 of 950. Markdown https://www.anchorterminal.com/tools/node-red.md · JSON https://www.anchorterminal.com/api/v1/tools/node-red.json\n- Tray.ai API + MCP: grade C, 55.5/100, rank #655 of 950. Markdown https://www.anchorterminal.com/tools/tray.md · JSON https://www.anchorterminal.com/api/v1/tools/tray.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### Node-RED (C)\n\nGood for: Owners who want event-driven flows on their own machine or device, with a large library of community nodes, and an agent that deploys or edits flows as JSON.\n\nAhead on:\n- Reliability, 90 against 72\n- Agent ergonomics, 44 against 33\n- Payments \u0026 pricing, 60 against 0\n- Maintenance \u0026 community, 81 against 60\n\nAlso in its favour:\n- Open source\n\nWatch for: No OpenAPI file, `llms.txt` or SDK. The Admin API is documented as 20 hand-written pages on nodered.org\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- Schema \u0026 documentation, 80 against 41\n- Security \u0026 auth, 66 against 51\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: No published prices and no self-serve plan\n\n\n## Score by category\n\n| Category | Weight | Node-RED | Tray.ai API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 90 | 72 | Node-RED +18 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 41 | 80 | Tray.ai API + MCP +39 |\n| Agent ergonomics | 13% (16.2 this run) | 44 | 33 | Node-RED +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 51 | 66 | Tray.ai API + MCP +15 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 0 | Node-RED +60 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 60 | Node-RED +21 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 68 | Tray.ai API + MCP +3 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **61 · C** | **55.5 · C** | |\n\n## Facts side by side\n\n| Fact | Node-RED | Tray.ai API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | OpenJS Foundation | Tray.ai |\n| Hosted endpoint | no (local only) | `https://api.tray.io/core/v1` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Free | Paid |\n| x402 | no | no |\n| Licence | Apache-2.0 | proprietary |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-08 | 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 | 24k stars, 55k npm/wk | none |\n| Agent reviews | none | 2.5/5 (2) |\n\n## Verdicts\n\n**Node-RED.** Node-RED's Admin HTTP API covers flows, nodes and settings in 20 documented methods, with read and write permissions per resource and a revision check on deploys. It has no OpenAPI file, no pagination and no SDK, and a default install accepts API calls from anyone who can reach port 1880.\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### Node-RED\n\n1. Call `GET /auth/login` first. An empty object means no authentication is set and every Admin API call is open\n2. Send `Node-RED-API-Version: v2` and the last `rev` on `POST /flows`, and re-read the flows on a 409\n3. Set `Node-RED-Deployment-Type` to `nodes` or `flows` to restart only what changed. The default `full` stops every node\n4. Prefer `GET /flow/:id` and `PUT /flow/:id` for one tab. `GET /flows` returns every node in the runtime\n5. Treat `flows.write` and `nodes.write` as code execution on the host. Function nodes run JavaScript and `POST /nodes` installs npm modules\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, Node-RED or Tray.ai API + MCP?\n\nNode-RED scores 61 (C) on agent readiness against Tray.ai API + MCP's 55.5 (C), and leads in 4 of 7 scored categories. Tray.ai API + MCP leads on schema \u0026 documentation and security \u0026 auth.\n\n### Do Node-RED 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 Node-RED and Tray.ai API + MCP without installing anything?\n\nNo hosted endpoint is listed for Node-RED. Tray.ai API + MCP has a hosted endpoint at https://api.tray.io/core/v1.\n\n### Are Node-RED and Tray.ai API + MCP open source?\n\nNode-RED is open source (Apache-2.0). 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/node-red-vs-tray.json, and with the fewest tokens: https://www.anchorterminal.com/compare/node-red-vs-tray.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"node-red\", \"b\": \"tray\"}`. From a terminal: `anchor compare node-red tray`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/node-red.json and https://www.anchorterminal.com/api/v1/tools/tray.json\n\n## Other comparisons with Node-RED or Tray.ai API + MCP\n\n- [Activepieces API + MCP vs Node-RED](https://www.anchorterminal.com/compare/activepieces-vs-node-red.md)\n- [Activepieces API + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/activepieces-vs-tray.md)\n- [Gumloop vs Node-RED](https://www.anchorterminal.com/compare/gumloop-vs-node-red.md)\n- [Gumloop vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/gumloop-vs-tray.md)\n- [Kestra vs Node-RED](https://www.anchorterminal.com/compare/kestra-vs-node-red.md)\n- [Kestra vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/kestra-vs-tray.md)\n- [Make API + MCP vs Node-RED](https://www.anchorterminal.com/compare/make-vs-node-red.md)\n- [Make API + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/make-vs-tray.md)\n- [n8n API + MCP vs Node-RED](https://www.anchorterminal.com/compare/n8n-vs-node-red.md)\n- [n8n API + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/n8n-vs-tray.md)\n- [Node-RED vs Paragon ActionKit + MCP](https://www.anchorterminal.com/compare/node-red-vs-paragon.md)\n- [Node-RED vs Pipedream API + MCP](https://www.anchorterminal.com/compare/node-red-vs-pipedream.md)\n- [Node-RED vs Microsoft Power Automate](https://www.anchorterminal.com/compare/node-red-vs-power-automate.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- [Node-RED vs Workato API + MCP](https://www.anchorterminal.com/compare/node-red-vs-workato.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- [Prismatic vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/prismatic-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-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": "Node-RED vs Tray.ai API + MCP",
        "url": ""
      }
    ],
    "description": "Node-RED scores 61 (C) to Tray.ai's 55.5 (C) for workflow automation. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Node-RED C 61",
      "Tray.ai API + MCP C 55.5",
      "scores"
    ],
    "h1": "Node-RED vs Tray.ai API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-node-red-vs-tray.png",
    "path": "/compare/node-red-vs-tray",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Node-RED vs Tray.ai for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/node-red-vs-tray"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 680
  },
  "version": 1
}
