{
  "data": {
    "a": {
      "slug": "melius",
      "name": "Melius",
      "vendor": "Melius AI, Inc.",
      "vendorUrl": "https://www.melius.com",
      "kind": "http-api",
      "category": "design",
      "summary": "Melius is a hosted node-based canvas for generating images, video, audio and text with many third-party models. Outside agents read and write projects, canvases, nodes, edges, runs and comments through a REST API, an MCP server and the mel CLI.",
      "url": "https://www.anchorterminal.com/tools/melius",
      "markdownUrl": "https://www.anchorterminal.com/tools/melius.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/melius.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/melius.json",
      "license": "Proprietary service under Melius's terms of service. The mel CLI on npm is MIT, with no public source repository found",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.melius.com/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@melius-ai/cli"
        }
      ],
      "auth": "mixed",
      "authNotes": "A person creates an API key in the Melius app under Team settings, Integrations. The REST API, the CLI and the MCP endpoint at https://api.melius.com/mcp take it as a Bearer token, with an optional `x-team-id` header. The MCP endpoint at https://mcp.melius.com/mcp uses OAuth (authorisation code with S256 PKCE and dynamic client registration), where the user signs in, picks one team and Melius creates a connector key. Keys have no scopes. A key works with its creator's access and that user's role in each team. Access is self-serve, with no app review or sales approval.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at $0 with trial credits, amount not published. Creator $20 a month for 20,000 credits, Growth $50 for 50,000, Professional $110 for 110,000, Team $70 a seat for 70,000 pooled credits (2 to 10 seats), Enterprise custom. Annual billing cuts 15 to 20 per cent. API, CLI and MCP calls have no separate charge and generations draw team credits. Per-model credit costs come from an authenticated endpoint, not the pricing page. The page's comparison table shows different figures ($18, $45, $99+, $63). Whether Free teams can create API keys is not stated (https://www.melius.com/pricing, checked 2026-10-08).",
      "priceSummary": "$20 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API, MCP or CLI docs, the OpenAPI spec or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 75,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 9,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.melius.com",
      "llmsTxt": "https://docs.melius.com/llms.txt",
      "openapi": "https://docs.melius.com/api/openapi.json",
      "capabilities": [
        "design.canvas",
        "design.comments",
        "design.files",
        "image.generate",
        "image.edit",
        "image.upscale",
        "video.generate",
        "speech.tts"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "closed-source",
        "mcp",
        "oauth",
        "api-key",
        "openapi",
        "llms-txt",
        "cli",
        "async-jobs",
        "status-page",
        "pre-1.0"
      ],
      "lastRelease": "2026-09-10",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.1,
        "grade": "C",
        "agentReady": false,
        "rank": 695,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 51,
          "maintenance": 66,
          "payments": 20,
          "reliability": 69,
          "schema": 70,
          "security": 43,
          "transparency": 55
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "One backend serves a 59-operation REST API with a public OpenAPI spec, a hosted MCP server with OAuth sign-in and a JSON-only CLI, and the status page shows no incidents since July 2026. API keys carry no scopes and work with their creator's role, and no rate-limit numbers, changelog or per-model credit prices are published.",
        "bestFor": "An agent producing batches of ad creative, product images or short videos on a shared canvas that people then review, with many models behind one key.",
        "strengths": [
          "Public OpenAPI 3.0.2 spec with 59 operations, plus llms.txt, llms-full.txt and a Markdown copy of every docs page",
          "Hosted MCP server with OAuth sign-in (PKCE, dynamic client registration) or a bearer API key, tied to one team chosen at authorisation",
          "429 responses carry `Retry-After` and `retryAfterSeconds`, and the docs give a bounded retry policy",
          "The mel CLI prints JSON only, uses six fixed exit codes and returns errors with a `code` and a `suggestion`",
          "status.melius.com lists no incidents for Web app or MCP from July to October 2026"
        ],
        "weaknesses": [
          "API keys have no scopes. A key works with its creator's role in every team the creator belongs to",
          "No rate-limit numbers, SLA, public changelog or API deprecation policy found in the reviewed documentation",
          "The MCP reference lists 75 tools, and the setup guide tells users to select Always Allow for all of them",
          "Per-model credit costs are returned by an authenticated endpoint and shown in the app, not on the pricing page",
          "No security.txt or disclosure policy found, and the Vanta trust centre at trust.melius.com needs JavaScript we couldn't run"
        ],
        "agentNotes": [
          "Generate by creating a node on a canvas, starting a run with POST /nodes/{nodeId}/runs, then polling GET /node-runs/{nodeRunId} until `status` is finished or failed",
          "Over MCP, call `get_guide` first, `show_presence` before node changes and `canvas_plan_layout` before `bulk_create_nodes`",
          "On 429 wait `Retry-After` seconds. After a timeout or 5xx on a write, read the canvas or run state before resubmitting, because there are no idempotency keys",
          "Read credit costs from GET /generation/models?category=image before a bulk run. A 400 can mean the team is out of credits",
          "Downloads arrive as a ZIP from a signed URL. Fetch that URL without the `Authorization` header"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54.1
          }
        ],
        "editorialScores": {
          "ergonomics": 51,
          "maintenance": 66,
          "payments": 20,
          "reliability": 69,
          "schema": 70,
          "security": 43,
          "transparency": 38
        },
        "provenanceScore": 72
      },
      "connect": {
        "install": "npm install -g @melius-ai/cli",
        "http": "curl -s -H \"Authorization: Bearer $MEL_API_KEY\" https://api.melius.com/api/v1/teams",
        "claudeCode": "claude mcp add melius --transport http https://mcp.melius.com/mcp --scope user",
        "config": {
          "mcpServers": {
            "melius": {
              "url": "https://mcp.melius.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.canvas",
        "tool": "https://letme.dev/melius"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Creator plan",
          "unit": "month",
          "usd": 20,
          "note": "20,000 credits a month, $17 a month on annual billing"
        },
        {
          "item": "Growth plan",
          "unit": "month",
          "usd": 50,
          "note": "50,000 credits a month, $43 on annual billing"
        },
        {
          "item": "Professional plan",
          "unit": "month",
          "usd": 110,
          "note": "110,000 credits a month, $93 on annual billing. A 300,000-credit option is also listed"
        },
        {
          "item": "Team plan",
          "unit": "seat-month",
          "usd": 70,
          "note": "70,000 pooled credits a seat, 2 to 10 seats, $56 on annual billing"
        }
      ],
      "provenance": {
        "legalEntity": "Melius AI, Inc.",
        "domain": "melius.com",
        "domainRegistered": "1998-11-24",
        "endpointOnVendorDomain": true,
        "terms": "https://www.melius.com/terms",
        "privacy": "https://www.melius.com/privacy",
        "statusPage": "https://status.melius.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms of service (effective 28 August 2026) name Melius AI, Inc., 420 Lexington Avenue, New York, as the contracting party and are governed by Delaware law.",
          "The API answers at api.melius.com, the OAuth MCP endpoint at mcp.melius.com and the docs at docs.melius.com, all melius.com subdomains.",
          "/.well-known/security.txt returns 404 on www.melius.com, docs.melius.com and api.melius.com.",
          "RDAP for melius.com gives a registration date of 1998-11-24, which predates the company. The site says it is not affiliated with other organisations that share the Melius name.",
          "No public changelog was found. docs.melius.com/changelog and www.melius.com/changelog return 404, and release dates come from the npm registry.",
          "trust.melius.com is a Vanta trust centre that renders only with JavaScript, so its contents were not read."
        ],
        "score": 72
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/melius.json",
      "live": {
        "slug": "melius",
        "probe": {
          "target": "https://api.melius.com/api/v1",
          "method": "get",
          "lastAt": "2026-10-10T01:37:58.089332826Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 362,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 337,
          "p95ms24h": 409,
          "samples24h": 250,
          "samples30d": 360,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.melius.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T01:33:50.11899008Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@melius-ai/cli",
            "version": "0.16.2",
            "seenAt": "2026-10-09T17:04:42.995562661Z"
          }
        ],
        "npmWeekly": 16,
        "securityTxt": {
          "url": "https://melius.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:58.707579394Z"
        },
        "llmsTxt": {
          "url": "https://docs.melius.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:16.221272233Z"
        },
        "pages": [
          {
            "url": "https://www.melius.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:07.510522571Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e10be360cae0"
          },
          {
            "url": "https://www.melius.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:09.650643595Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1f3a2bb3eee9"
          },
          {
            "url": "https://www.melius.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:11.87567544Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a03166dbf644"
          }
        ],
        "updatedAt": "2026-10-10T01:37:58.089332826Z"
      }
    },
    "answer": "Melius scores 54.1 (C) on agent readiness against Subframe's 39.7 (E), and leads in 4 of 7 scored categories. Subframe leads on payments \u0026 pricing.",
    "b": {
      "slug": "subframe",
      "name": "Subframe",
      "vendor": "Atomic Design Inc",
      "vendorUrl": "https://www.subframe.com",
      "kind": "mcp",
      "category": "design",
      "summary": "Design tool from Atomic Design Inc for React and Tailwind interfaces, with a cloud canvas and a macOS app. Agents read and edit pages, components and themes through a hosted MCP server, and a CLI syncs components into a codebase.",
      "url": "https://www.anchorterminal.com/tools/subframe",
      "markdownUrl": "https://www.anchorterminal.com/tools/subframe.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/subframe.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/subframe.json",
      "repo": "https://github.com/SubframeApp/subframe",
      "license": "Proprietary service under Atomic Design's terms of service. `@subframe/cli` and `@subframe/core` are marked ISC in their package files and the Claude Code plugin MIT in its manifest, with no licence file in the repository",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://mcp.subframe.com/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@subframe/cli"
        },
        {
          "registry": "npm",
          "name": "@subframe/core"
        }
      ],
      "auth": "mixed",
      "authNotes": "The MCP server takes OAuth only, with dynamic client registration and PKCE, and a person approves access in a browser. Subframe access tokens are not accepted there. What an agent can do follows the user's team role. Admins and Editors can write, and Viewers get a read-only server. The CLI takes an auth token from `SUBFRAME_AUTH_TOKEN` or `--auth-token`, created at app.subframe.com/cli/auth or by the `generate_auth_token` MCP tool. Tokens are shown once and can be deleted. No token scopes or expiry are documented. Access is self-serve.",
      "pricing": "freemium",
      "pricingNotes": "Free at $0 with one project, unlimited pages and members, and MCP and CLI access, so an agent's owner can start without a contract. Pro is $20 an editor a month for unlimited projects and six times the AI credits. Viewers are free on every plan. Custom plans are priced on request. MCP calls are not priced separately (https://www.subframe.com/, checked 2026-10-09).",
      "priceSummary": "$20 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the pricing section or the CLI source (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 46,
      "popularity": {
        "githubStars": 435,
        "npmWeekly": 1006,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.subframe.com",
      "llmsTxt": "https://docs.subframe.com/llms.txt",
      "capabilities": [
        "design.files",
        "design.components",
        "design.code",
        "design.canvas",
        "design.comments"
      ],
      "tags": [
        "hosted",
        "mcp",
        "oauth",
        "remote-mcp",
        "cli",
        "agent-skills",
        "react",
        "tailwind",
        "design-to-code",
        "freemium",
        "free-tier",
        "llms-txt",
        "closed-source",
        "macos"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 39.7,
        "grade": "E",
        "agentReady": false,
        "rank": 915,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 47,
          "maintenance": 65,
          "payments": 33,
          "reliability": 19,
          "schema": 54,
          "security": 44,
          "transparency": 57
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -3,
        "negativeNotes": [
          "23 to 24 September 2026. The docs and skill files renamed three MCP tools (`list_flows`, `get_flow_info`, `delete_flow`) to `list_canvases`, `get_canvas_info` and `delete_canvas`, with no changelog entry or notice found. Whether the server still answers the old names was not tested (-2). https://github.com/SubframeApp/subframe/commit/43bfb51d749713940cf0df8e73da2ab43b7358bc",
          "7 May 2026. A docs commit records that the MCP server 'no longer accepts CLI/access tokens, only OAuth', removing the documented header route for clients without OAuth, with no dated notice found (-1, older and documented since). https://github.com/SubframeApp/subframe/commit/ff59743593fa2b581f32233b58660ace8a23f707"
        ],
        "verdict": "An agent can read and change pages, components, snippets and themes in a Subframe project through a hosted MCP server with OAuth, and Viewer accounts get a read-only server. The server lists 46 tools, and no status page, rate limits, changelog or security contact were found. Three tools were renamed in September 2026 with no notice found.",
        "bestFor": "A coding agent working beside a team that designs React and Tailwind interfaces in Subframe and wants the design as code, with a read-only route for review.",
        "strengths": [
          "Hosted MCP server at `https://mcp.subframe.com/mcp` with OAuth, dynamic client registration and PKCE, so no key is pasted into a config file",
          "Viewer accounts get a read-only MCP server and read-only CLI access, and Viewer seats are free on every plan",
          "Write tools cover pages, components, snippets, design documents, themes, icons and fonts, and page reads return generated React and Tailwind code",
          "Docs publish `llms.txt`, a Markdown twin of every page and a separate docs MCP server that needs no credential",
          "The CLI has a non-interactive mode with `--json` output, nonzero exit status on failure and a token read from `SUBFRAME_AUTH_TOKEN`"
        ],
        "weaknesses": [
          "46 tools are documented with no toolsets, and the vendor's `design` skill that explains them is about 55 KB of text",
          "No status page, published rate limit, SLA or changelog was found, and the terms disclaim uninterrupted service",
          "`list_flows`, `get_flow_info` and `delete_flow` became `list_canvases`, `get_canvas_info` and `delete_canvas` in September 2026 with no notice found",
          "No security.txt, disclosure policy, bug bounty, certification or audit log was found",
          "Delete confirmation is guidance in the skill file. The vendor's skill calls deletes irreversible from MCP, with recovery only through version history in the editor (24 hours on Free)"
        ],
        "agentNotes": [
          "Connect with an MCP client that supports OAuth. The server rejects Subframe access tokens and static `Authorization` headers",
          "Pass `projectId` on every call. When it is omitted the server uses the first project the user can reach, which may be the wrong team's",
          "After `design_page`, `design_component` or `edit_component`, call `wait_for_jobs` with the `jobId` before reading the result. Earlier reads return stale content",
          "Ask the owner before any delete tool or a theme token deletion. A deleted token leaves every reference detached even after the token is restored",
          "For the CLI, set `SUBFRAME_AUTH_TOKEN` and `DO_NOT_TRACK=1`, and point `--dir` at a folder that holds only Subframe code, because a full sync removes other unprotected files"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 39.7
          }
        ],
        "editorialScores": {
          "ergonomics": 47,
          "maintenance": 65,
          "payments": 33,
          "reliability": 19,
          "schema": 54,
          "security": 44,
          "transparency": 46
        },
        "provenanceScore": 68
      },
      "connect": {
        "install": "npx @subframe/cli@latest init",
        "claudeCode": "claude plugin marketplace add https://github.com/SubframeApp/subframe \u0026\u0026 claude plugin install subframe@subframe",
        "config": {
          "mcpServers": {
            "subframe": {
              "url": "https://mcp.subframe.com/mcp"
            },
            "subframe-docs": {
              "url": "https://docs.subframe.com/mcp"
            }
          }
        },
        "headless": {
          "command": "npx @subframe/cli@latest sync --all --json",
          "env": {
            "SUBFRAME_AUTH_TOKEN": "\u003ctoken\u003e"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.files",
        "tool": "https://letme.dev/subframe"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "seat-month",
          "usd": 20,
          "note": "each Admin and Editor, unlimited projects, six times the Free AI credits, 7-day version history. Viewers are free"
        }
      ],
      "provenance": {
        "legalEntity": "Atomic Design Inc",
        "domain": "subframe.com",
        "domainRegistered": "2003-09-24",
        "endpointOnVendorDomain": true,
        "terms": "https://policies.subframe.com/tos",
        "privacy": "https://policies.subframe.com/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The terms of service (last updated 22 January 2026) are made between Atomic Design Inc, 156 2nd Street, Ste 403, San Francisco, CA 94105, and each customer, cover the Subframe service and choose California law.",
          "The privacy policy (effective 22 January 2026) covers products and services at subframe.com. A DPA dated 21 January 2026 is at https://policies.subframe.com/dpa.",
          "The MCP server answers at mcp.subframe.com. Its protected resource metadata names an authorisation server at dbgjvucxjwkukwbojywe.supabase.co, so sign-in and tokens are issued from a Supabase host.",
          "www.subframe.com/.well-known/security.txt and /security.txt return 404.",
          "No status page or changelog is linked from the site footer, the docs or the docs index. Addresses for either were not guessed.",
          "RDAP gives subframe.com a registration date of 2003-09-24 with Cloudflare, Inc. as registrar. The repository was created on 4 March 2024."
        ],
        "score": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/subframe.json",
      "live": {
        "slug": "subframe",
        "probe": {
          "target": "https://mcp.subframe.com/mcp",
          "method": "get",
          "lastAt": "2026-10-10T01:38:09.208685395Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 192,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 154,
          "p95ms24h": 262,
          "samples24h": 102,
          "samples30d": 102,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@subframe/cli",
            "version": "1.212.0",
            "seenAt": "2026-10-09T17:22:39.340892751Z"
          },
          {
            "registry": "npm",
            "name": "@subframe/core",
            "version": "1.155.0",
            "seenAt": "2026-10-09T17:22:40.263986362Z"
          }
        ],
        "githubStars": 438,
        "npmWeekly": 1006,
        "pages": [
          {
            "url": "https://policies.subframe.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:40.018475431Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c221794f9af0"
          },
          {
            "url": "https://policies.subframe.com/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:42.040686665Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cf29b530a2cf"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.subframe.com/mcp",
          "checkedAt": "2026-10-09T21:40:55.87387771Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-10-09T21:40:55.87387771Z"
        },
        "updatedAt": "2026-10-10T01:38:09.208685395Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Melius AI, Inc.",
        "b": "Atomic Design Inc",
        "name": "Vendor"
      },
      {
        "a": "https://api.melius.com/api/v1",
        "b": "https://mcp.subframe.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Melius's terms of service. The mel CLI on npm is MIT, with no public source repository found",
        "b": "Proprietary service under Atomic Design's terms of service. `@subframe/cli` and `@subframe/core` are marked ISC in their package files and the Claude Code plugin MIT in its manifest, with no licence file in the repository",
        "name": "Licence"
      },
      {
        "a": "75",
        "b": "46",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-10",
        "b": "2026-10-08",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-01-22",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-01-22",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "9 npm/wk",
        "b": "435 stars, 1k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Melius scores 54.1 (C) on agent readiness against Subframe's 39.7 (E), and leads in 4 of 7 scored categories. Subframe leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Melius or Subframe?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Melius and Subframe need an API key?"
      },
      {
        "answer": "Yes. Melius has a hosted endpoint at https://api.melius.com/api/v1 and Subframe at https://mcp.subframe.com/mcp.",
        "question": "Can an agent call Melius and Subframe without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 69 against 19",
          "Schema \u0026 documentation, 70 against 54"
        ],
        "also": [
          "No incidents deducted, where Subframe loses 3 points for them"
        ],
        "goodFor": "An agent producing batches of ad creative, product images or short videos on a shared canvas that people then review, with many models behind one key.",
        "slug": "melius",
        "watchFor": "API keys have no scopes. A key works with its creator's role in every team the creator belongs to"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 33 against 20"
        ],
        "also": null,
        "goodFor": "A coding agent working beside a team that designs React and Tailwind interfaces in Subframe and wants the design as code, with a read-only route for review.",
        "slug": "subframe",
        "watchFor": "46 tools are documented with no toolsets, and the vendor's `design` skill that explains them is about 55 KB of text"
      }
    ],
    "job": {
      "capability": "design.canvas",
      "name": "Design canvases"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-melius.json",
        "title": "Figma API + MCP vs Melius",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-melius"
      },
      {
        "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-subframe.json",
        "title": "Figma API + MCP vs Subframe",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-subframe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-melius.json",
        "title": "Framer Server API vs Melius",
        "url": "https://www.anchorterminal.com/compare/framer-vs-melius"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-subframe.json",
        "title": "Framer Server API vs Subframe",
        "url": "https://www.anchorterminal.com/compare/framer-vs-subframe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/melius-vs-zeplin.json",
        "title": "Melius vs Zeplin",
        "url": "https://www.anchorterminal.com/compare/melius-vs-zeplin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/miro-vs-subframe.json",
        "title": "Miro API + MCP vs Subframe",
        "url": "https://www.anchorterminal.com/compare/miro-vs-subframe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pen-dev-vs-subframe.json",
        "title": "pen.dev vs Subframe",
        "url": "https://www.anchorterminal.com/compare/pen-dev-vs-subframe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/penpot-vs-subframe.json",
        "title": "Penpot API + MCP vs Subframe",
        "url": "https://www.anchorterminal.com/compare/penpot-vs-subframe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sketch-vs-subframe.json",
        "title": "Sketch vs Subframe",
        "url": "https://www.anchorterminal.com/compare/sketch-vs-subframe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/subframe-vs-zeplin.json",
        "title": "Subframe vs Zeplin",
        "url": "https://www.anchorterminal.com/compare/subframe-vs-zeplin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/melius-vs-miro.json",
        "title": "Melius vs Miro API + MCP",
        "url": "https://www.anchorterminal.com/compare/melius-vs-miro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/melius-vs-pen-dev.json",
        "title": "Melius vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/melius-vs-pen-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/melius-vs-penpot.json",
        "title": "Melius vs Penpot API + MCP",
        "url": "https://www.anchorterminal.com/compare/melius-vs-penpot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/melius-vs-sketch.json",
        "title": "Melius vs Sketch",
        "url": "https://www.anchorterminal.com/compare/melius-vs-sketch"
      }
    ],
    "scores": [
      {
        "by": 50,
        "edge": "melius",
        "key": "reliability",
        "melius": 69,
        "name": "Reliability",
        "subframe": 19,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 16,
        "edge": "melius",
        "key": "schema",
        "melius": 70,
        "name": "Schema \u0026 documentation",
        "subframe": 54,
        "weight": 13
      },
      {
        "by": 4,
        "edge": "melius",
        "key": "ergonomics",
        "melius": 51,
        "name": "Agent ergonomics",
        "subframe": 47,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "subframe",
        "key": "security",
        "melius": 43,
        "name": "Security \u0026 auth",
        "subframe": 44,
        "weight": 14
      },
      {
        "by": 13,
        "edge": "subframe",
        "key": "payments",
        "melius": 20,
        "name": "Payments \u0026 pricing",
        "subframe": 33,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "melius",
        "key": "maintenance",
        "melius": 66,
        "name": "Maintenance \u0026 community",
        "subframe": 65,
        "weight": 7
      },
      {
        "by": 2,
        "edge": "subframe",
        "key": "transparency",
        "melius": 55,
        "name": "Transparency \u0026 trust",
        "subframe": 57,
        "weight": 7
      }
    ],
    "summary": "Melius scores 54.1 (C) on agent readiness against Subframe's 39.7 (E), and leads in 4 of 7 scored categories. Subframe leads on payments \u0026 pricing. Both do design canvases.",
    "verdicts": {
      "melius": "One backend serves a 59-operation REST API with a public OpenAPI spec, a hosted MCP server with OAuth sign-in and a JSON-only CLI, and the status page shows no incidents since July 2026. API keys carry no scopes and work with their creator's role, and no rate-limit numbers, changelog or per-model credit prices are published.",
      "subframe": "An agent can read and change pages, components, snippets and themes in a Subframe project through a hosted MCP server with OAuth, and Viewer accounts get a read-only server. The server lists 46 tools, and no status page, rate limits, changelog or security contact were found. Three tools were renamed in September 2026 with no notice found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/melius-vs-subframe",
    "json": "https://www.anchorterminal.com/compare/melius-vs-subframe.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/melius-vs-subframe.md",
    "slim": "https://www.anchorterminal.com/compare/melius-vs-subframe.min.md"
  },
  "markdown": "Melius scores 54.1 (C) on agent readiness against Subframe's 39.7 (E), and leads in 4 of 7 scored categories. Subframe leads on payments \u0026 pricing. Both do design canvases.\n\n- Melius: grade C, 54.1/100, rank #695 of 950. Markdown https://www.anchorterminal.com/tools/melius.md · JSON https://www.anchorterminal.com/api/v1/tools/melius.json\n- Subframe: grade E, 39.7/100, rank #915 of 950. Markdown https://www.anchorterminal.com/tools/subframe.md · JSON https://www.anchorterminal.com/api/v1/tools/subframe.json\n- Best design workspace and canvas APIs for AI agents: https://www.anchorterminal.com/best/design/index.md\n- All 49 design comparisons: https://www.anchorterminal.com/compare/design/index.md\n\n## Which one, for what\n\n### Melius (C)\n\nGood for: An agent producing batches of ad creative, product images or short videos on a shared canvas that people then review, with many models behind one key.\n\nAhead on:\n- Reliability, 69 against 19\n- Schema \u0026 documentation, 70 against 54\n\nAlso in its favour:\n- No incidents deducted, where Subframe loses 3 points for them\n\nWatch for: API keys have no scopes. A key works with its creator's role in every team the creator belongs to\n\n### Subframe (E)\n\nGood for: A coding agent working beside a team that designs React and Tailwind interfaces in Subframe and wants the design as code, with a read-only route for review.\n\nAhead on:\n- Payments \u0026 pricing, 33 against 20\n\nWatch for: 46 tools are documented with no toolsets, and the vendor's `design` skill that explains them is about 55 KB of text\n\n\n## Score by category\n\n| Category | Weight | Melius | Subframe | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 69 | 19 | Melius +50 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 70 | 54 | Melius +16 |\n| Agent ergonomics | 13% (16.2 this run) | 51 | 47 | Melius +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 43 | 44 | Subframe +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 33 | Subframe +13 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 66 | 65 | Melius +1 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 55 | 57 | Subframe +2 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **54.1 · C** | **39.7 · E** | |\n\n## Facts side by side\n\n| Fact | Melius | Subframe |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Melius AI, Inc. | Atomic Design Inc |\n| Hosted endpoint | `https://api.melius.com/api/v1` | `https://mcp.subframe.com/mcp` |\n| Transports | HTTP, Streamable HTTP | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Melius's terms of service. The mel CLI on npm is MIT, with no public source repository found | Proprietary service under Atomic Design's terms of service. `@subframe/cli` and `@subframe/core` are marked ISC in their package files and the Claude Code plugin MIT in its manifest, with no licence file in the repository |\n| Tools exposed | 75 | 46 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-10 | 2026-10-08 |\n| Terms last updated | no date given | 2026-01-22 |\n| Privacy policy last updated | no date given | 2026-01-22 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 9 npm/wk | 435 stars, 1k npm/wk |\n\n## Verdicts\n\n**Melius.** One backend serves a 59-operation REST API with a public OpenAPI spec, a hosted MCP server with OAuth sign-in and a JSON-only CLI, and the status page shows no incidents since July 2026. API keys carry no scopes and work with their creator's role, and no rate-limit numbers, changelog or per-model credit prices are published.\n\n**Subframe.** An agent can read and change pages, components, snippets and themes in a Subframe project through a hosted MCP server with OAuth, and Viewer accounts get a read-only server. The server lists 46 tools, and no status page, rate limits, changelog or security contact were found. Three tools were renamed in September 2026 with no notice found.\n\n## Before you call either\n\n### Melius\n\n1. Generate by creating a node on a canvas, starting a run with POST /nodes/{nodeId}/runs, then polling GET /node-runs/{nodeRunId} until `status` is finished or failed\n2. Over MCP, call `get_guide` first, `show_presence` before node changes and `canvas_plan_layout` before `bulk_create_nodes`\n3. On 429 wait `Retry-After` seconds. After a timeout or 5xx on a write, read the canvas or run state before resubmitting, because there are no idempotency keys\n4. Read credit costs from GET /generation/models?category=image before a bulk run. A 400 can mean the team is out of credits\n5. Downloads arrive as a ZIP from a signed URL. Fetch that URL without the `Authorization` header\n\n### Subframe\n\n1. Connect with an MCP client that supports OAuth. The server rejects Subframe access tokens and static `Authorization` headers\n2. Pass `projectId` on every call. When it is omitted the server uses the first project the user can reach, which may be the wrong team's\n3. After `design_page`, `design_component` or `edit_component`, call `wait_for_jobs` with the `jobId` before reading the result. Earlier reads return stale content\n4. Ask the owner before any delete tool or a theme token deletion. A deleted token leaves every reference detached even after the token is restored\n5. For the CLI, set `SUBFRAME_AUTH_TOKEN` and `DO_NOT_TRACK=1`, and point `--dir` at a folder that holds only Subframe code, because a full sync removes other unprotected files\n\n## Questions\n\n### Which is better for AI agents, Melius or Subframe?\n\nMelius scores 54.1 (C) on agent readiness against Subframe's 39.7 (E), and leads in 4 of 7 scored categories. Subframe leads on payments \u0026 pricing.\n\n### Do Melius and Subframe need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Melius and Subframe without installing anything?\n\nYes. Melius has a hosted endpoint at https://api.melius.com/api/v1 and Subframe at https://mcp.subframe.com/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/melius-vs-subframe.json, and with the fewest tokens: https://www.anchorterminal.com/compare/melius-vs-subframe.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"melius\", \"b\": \"subframe\"}`. From a terminal: `anchor compare melius subframe`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/melius.json and https://www.anchorterminal.com/api/v1/tools/subframe.json\n\n## Other comparisons with Melius or Subframe\n\n- [Figma API + MCP vs Melius](https://www.anchorterminal.com/compare/figma-mcp-vs-melius.md)\n- [Figma API + MCP vs Subframe](https://www.anchorterminal.com/compare/figma-mcp-vs-subframe.md)\n- [Framer Server API vs Melius](https://www.anchorterminal.com/compare/framer-vs-melius.md)\n- [Framer Server API vs Subframe](https://www.anchorterminal.com/compare/framer-vs-subframe.md)\n- [Melius vs Zeplin](https://www.anchorterminal.com/compare/melius-vs-zeplin.md)\n- [Miro API + MCP vs Subframe](https://www.anchorterminal.com/compare/miro-vs-subframe.md)\n- [pen.dev vs Subframe](https://www.anchorterminal.com/compare/pen-dev-vs-subframe.md)\n- [Penpot API + MCP vs Subframe](https://www.anchorterminal.com/compare/penpot-vs-subframe.md)\n- [Sketch vs Subframe](https://www.anchorterminal.com/compare/sketch-vs-subframe.md)\n- [Subframe vs Zeplin](https://www.anchorterminal.com/compare/subframe-vs-zeplin.md)\n- [Melius vs Miro API + MCP](https://www.anchorterminal.com/compare/melius-vs-miro.md)\n- [Melius vs pen.dev](https://www.anchorterminal.com/compare/melius-vs-pen-dev.md)\n- [Melius vs Penpot API + MCP](https://www.anchorterminal.com/compare/melius-vs-penpot.md)\n- [Melius vs Sketch](https://www.anchorterminal.com/compare/melius-vs-sketch.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": "Melius vs Subframe",
        "url": ""
      }
    ],
    "description": "Melius scores 54.1 (C) to Subframe's 39.7 (E) for design canvases. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Melius C 54.1",
      "Subframe E 39.7",
      "scores"
    ],
    "h1": "Melius vs Subframe",
    "image": "https://www.anchorterminal.com/assets/og/compare-melius-vs-subframe.png",
    "path": "/compare/melius-vs-subframe",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Melius vs Subframe for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/melius-vs-subframe"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 730
  },
  "version": 1
}
