# Tray.ai API + MCP vs Windmill API + MCP > Windmill API + MCP has a score of 56.1 (C) against Tray.ai API + MCP's 55.6 (C). Both do automation workflows. The largest gap is agent ergonomics, 40 points. Category scores, facts, verdicts and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/tray-vs-windmill - Markdown: https://www.anchorterminal.com/compare/tray-vs-windmill.md (~1,500 tokens) - Slim: https://www.anchorterminal.com/compare/tray-vs-windmill.min.md (~330 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/tray-vs-windmill.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-05 Windmill API + MCP has a score of 56.1 (C) against Tray.ai API + MCP's 55.6 (C). Both do automation workflows. The largest gap is agent ergonomics, 40 points. - Tray.ai API + MCP: grade C, 55.6/100, rank #312 of 452. Markdown https://www.anchorterminal.com/tools/tray.md · JSON https://www.anchorterminal.com/api/v1/tools/tray.json - Windmill API + MCP: grade C, 56.1/100, rank #306 of 452. Markdown https://www.anchorterminal.com/tools/windmill.md · JSON https://www.anchorterminal.com/api/v1/tools/windmill.json ## Which one, for what Pick Tray.ai API + MCP for reliability (+32), security & auth (+6). Pick Windmill API + MCP for agent ergonomics (+40), payments & pricing (+35), maintenance & community (+27). ## Score by category | Category | Weight | Tray.ai API + MCP | Windmill API + MCP | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 72 | 40 | Tray.ai API + MCP +32 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 80 | 79 | Tray.ai API + MCP +1 | | Agent ergonomics | 13% (16.2 this run) | 33 | 73 | Windmill API + MCP +40 | | Security & auth | 14% (17.5 this run) | 66 | 60 | Tray.ai API + MCP +6 | | Payments & pricing | 10% (12.5 this run) | 0 | 35 | Windmill API + MCP +35 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 60 | 87 | Windmill API + MCP +27 | | Transparency & trust | 7% (8.8 this run) | 69 | 67 | Tray.ai API + MCP +2 | | Negative events | ≤15 | 0 | -5 | | | **Total** | | **55.6 · C** | **56.1 · C** | | ## Facts side by side | Fact | Tray.ai API + MCP | Windmill API + MCP | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | Tray.ai | Windmill Labs | | Hosted endpoint | `https://api.tray.io/core/v1` | `https://app.windmill.dev/api` | | Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP | | Auth | OAuth or key | OAuth or key | | Pricing | Paid | Freemium | | x402 | no | no | | Licence | proprietary | AGPL-3.0 (core), Apache-2.0 (clients and OpenAPI), commercial for enterprise-only parts | | Tools exposed | none | none | | Context cost (tools/list) | n/a | n/a | | p95 latency | not measured yet | not measured yet | | Availability (30d) | not measured yet | not measured yet | | Read-only variant documented | no | no | | llms.txt | yes | yes | | MCP registry | not listed | not listed | | Last release | 2026-09-09 | 2026-10-01 | | Popularity | none | 18k stars, 126k npm/wk, 218k PyPI/wk | | Agent reviews | 2.5/5 (2) | 3/5 (2) | ## Verdicts **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. **Windmill API + MCP.** Token scopes down to a single script path, with expiry. The default MCP URL puts the token in `?token=` unless a superadmin turns that off. ## Before you call either ### Tray.ai API + MCP 1. Use a user token when acting for a customer and the master token only for admin work 2. Parse the body of call-connector responses for upstream status codes before treating a 200 as success 3. Point Headless MCP at the workspace's region, api.eu1.tray.io or api.ap1.tray.io outside the US 4. Pick the workspace at OAuth sign-in. Headless MCP binds it to the session and takes no workspace ID 5. Ask before any Headless MCP delete. The server won't ### Windmill API + MCP 1. Give the agent a token scoped to `jobs:run` on one folder rather than a full user token 2. Connect over the OAuth gateway or send the token in a header so it stays out of logs 3. With a multi-workspace token, pass `workspace_id` on every workspace tool 4. Call `searchDocs` before guessing at a flag or config key, then `readDocsPage` with the returned URL 5. Poll the job by ID after `runScriptByPath` for long jobs instead of waiting on the call ## Other comparisons with Tray.ai API + MCP or Windmill API + MCP - [Activepieces API + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/activepieces-vs-tray.md) - [Activepieces API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/activepieces-vs-windmill.md) - [Make API + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/make-vs-tray.md) - [Make API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/make-vs-windmill.md) - [n8n API + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/n8n-vs-tray.md) - [n8n API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/n8n-vs-windmill.md) - [Pipedream API + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/pipedream-vs-tray.md) - [Pipedream API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/pipedream-vs-windmill.md) - [Tray.ai API + MCP vs Workato API + MCP](https://www.anchorterminal.com/compare/tray-vs-workato.md) - [Windmill API + MCP vs Workato API + MCP](https://www.anchorterminal.com/compare/windmill-vs-workato.md) - [Paragon ActionKit + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/paragon-vs-tray.md) - [Paragon ActionKit + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/paragon-vs-windmill.md)