{
  "data": {
    "a": {
      "slug": "figma-mcp",
      "name": "Figma API + MCP",
      "vendor": "Figma",
      "vendorUrl": "https://www.figma.com",
      "kind": "http-api",
      "category": "design",
      "summary": "Figma's REST API and official MCP server connect applications and agents to its design platform.",
      "url": "https://www.anchorterminal.com/tools/figma-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/figma-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/figma-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/figma-mcp.json",
      "license": "proprietary",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.figma.com/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@figma/rest-api-spec"
        },
        {
          "registry": "npm",
          "name": "@figma/code-connect"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST API takes a personal access token in the X-Figma-Token header, an OAuth 2 app token with per-scope grants (file_content:read, file_comments:write, file_variables:write, webhooks:write and so on) or an organisation plan access token. The MCP server signs in with Figma OAuth. The remote server works on every seat and plan, the desktop server needs a Dev or Full seat on a paid plan, and only clients listed in Figma's MCP catalogue can connect.",
      "pricing": "freemium",
      "pricingNotes": "Starter is free with a Full seat and 150 AI credits a day. Professional Full seat $16 a month, Dev seat $12, Collab seat $3. Organization Full $55, Dev $25, Collab $5 a month, billed yearly. Enterprise Full $90, Dev $35, Collab $5 a month, billed yearly. The API is on every plan but rate limits depend on seat and plan. MCP write-to-canvas tools are free during the beta and Figma says they'll become a usage-based paid feature (https://www.figma.com/pricing/).",
      "priceSummary": "$16 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in Figma's REST or MCP docs.",
        "endpoints": []
      },
      "toolCount": 35,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 456424,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.figma.com/docs/rest-api/",
      "llmsTxt": "https://developers.figma.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/figma/rest-api-spec/main/openapi/openapi.yaml",
      "registryName": "com.figma.mcp/mcp",
      "capabilities": [
        "design.files",
        "design.components",
        "design.canvas",
        "design.comments",
        "design.code"
      ],
      "tags": [
        "official",
        "hosted",
        "oauth",
        "closed-source",
        "freemium",
        "free-tier",
        "mcp",
        "llms-txt",
        "openapi",
        "webhooks",
        "typescript"
      ],
      "lastRelease": "2026-09-24",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66,
        "grade": "B",
        "agentReady": false,
        "rank": 303,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 84,
          "payments": 30,
          "reliability": 59,
          "schema": 86,
          "security": 74,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "OpenAPI spec, TypeScript types and an llms.txt index for the REST API. View and Collab seats get 6 MCP calls a month on paid plans.",
        "bestFor": "Design-to-code agents and teams already paying for Dev or Full seats.",
        "strengths": [
          "OpenAPI spec, TypeScript types and an llms.txt index for the REST API",
          "OAuth scopes per resource, plus plan access tokens with allowlists and expiry",
          "MCP design context, screenshots and Code Connect for design-to-code work, with canvas writes on the remote server",
          "Published REST and MCP limits by seat and plan",
          "SOC 2 Type 2, ISO/IEC 27001 and FedRAMP listed on the security page"
        ],
        "weaknesses": [
          "View and Collab seats get 6 MCP calls a month on paid plans",
          "MCP tools were unavailable for about 4 hours on 26 August 2026",
          "Only clients in Figma's MCP catalogue can connect",
          "No prompt-injection guidance for file content and comments",
          "No machine payment, and no per-call price for MCP or the coming paid write tools"
        ],
        "agentNotes": [
          "Pass `ids=` and `depth=` to `GET /v1/files/:key`. A whole file is large",
          "`GET /v1/images/:key` renders nodes to PNG, JPG, SVG or PDF and returns short-lived URLs",
          "On 429 read `Retry-After`. Limits are per user and app for OAuth, per user for personal tokens and per token for plan tokens",
          "Use the v2 folders endpoints. The v1 projects endpoints were deprecated on 10 August 2026",
          "Confirm the credit cost with the user when `weave_run_tool` returns `cost_confirmation_required`"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 84,
          "payments": 30,
          "reliability": 59,
          "schema": 86,
          "security": 74,
          "transparency": 59
        },
        "provenanceScore": 86
      },
      "connect": {
        "http": "curl -H \"X-Figma-Token: $FIGMA_TOKEN\" https://api.figma.com/v1/me",
        "claudeCode": "claude mcp add --transport http figma https://mcp.figma.com/mcp",
        "config": {
          "mcpServers": {
            "figma": {
              "url": "https://mcp.figma.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.files",
        "tool": "https://letme.dev/figma-mcp"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Professional Full seat",
          "unit": "seat-month",
          "usd": 16,
          "note": "API on every plan. Dev and Full seats get the usable rate limits"
        },
        {
          "item": "Professional Dev seat",
          "unit": "seat-month",
          "usd": 12
        },
        {
          "item": "Organization Full seat",
          "unit": "seat-month",
          "usd": 55,
          "note": "billed yearly"
        },
        {
          "item": "Enterprise Full seat",
          "unit": "seat-month",
          "usd": 90,
          "note": "billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Figma, Inc.",
        "domain": "figma.com",
        "domainRegistered": "1999-04-10",
        "domainNote": "figma.com blocks automated fetches of /.well-known/, so we couldn't read its security.txt.",
        "endpointOnVendorDomain": true,
        "terms": "https://figma.com/legal/tos/",
        "privacy": "https://figma.com/legal/privacy/",
        "statusPage": "https://status.figma.com",
        "changelog": "https://developers.figma.com/docs/rest-api/changelog/",
        "securityTxt": "unknown",
        "checked": "2026-09-30",
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/figma-mcp.json",
      "live": {
        "slug": "figma-mcp",
        "probe": {
          "target": "https://api.figma.com/v1",
          "method": "get",
          "lastAt": "2026-10-10T03:53:27.66620446Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 157,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 168,
          "p95ms24h": 384,
          "samples24h": 249,
          "samples30d": 3430,
          "days": [
            {
              "date": "2026-09-27",
              "probes": 132,
              "ok": 132
            },
            {
              "date": "2026-09-28",
              "probes": 285,
              "ok": 285
            },
            {
              "date": "2026-09-29",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-09-30",
              "probes": 286,
              "ok": 286
            },
            {
              "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": 40,
              "ok": 40
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.figma.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T03:58:19.966472741Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.figma.mcp/mcp",
            "version": "1.0.3",
            "seenAt": "2026-10-10T03:11:32.438759038Z"
          },
          {
            "registry": "npm",
            "name": "@figma/code-connect",
            "version": "2.0.1",
            "seenAt": "2026-10-09T16:53:02.681679763Z"
          },
          {
            "registry": "npm",
            "name": "@figma/rest-api-spec",
            "version": "0.44.0",
            "seenAt": "2026-10-09T16:53:01.828427989Z"
          }
        ],
        "npmWeekly": 425057,
        "securityTxt": {
          "url": "https://figma.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-10-21T15:25:00.000Z",
          "checkedAt": "2026-10-09T15:39:29.247867475Z"
        },
        "llmsTxt": {
          "url": "https://developers.figma.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:01:57.310941499Z"
        },
        "domain": {
          "domain": "figma.com",
          "registered": "1999-04-10",
          "source": "https://rdap.verisign.com/com/v1/domain/figma.com",
          "checkedAt": "2026-10-04T13:06:54.960609996Z"
        },
        "pages": [
          {
            "url": "https://developers.figma.com/docs/rest-api/changelog/",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-10-09T18:35:42.517583719Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "90e5265794aa"
          },
          {
            "url": "https://developers.figma.com/docs/rest-api/rate-limits/",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-10-09T18:35:44.945907787Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ead938dea37b"
          },
          {
            "url": "https://www.figma.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:50:04.038186948Z",
            "changedAt": "2026-10-09T18:50:04.038186948Z",
            "fingerprint": "c33623e82d05"
          },
          {
            "url": "https://figma.com/legal/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:39:24.395597775Z",
            "changedAt": "2026-10-07T18:06:10.814857128Z",
            "fingerprint": "cf3376d3c431"
          },
          {
            "url": "https://figma.com/legal/tos/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:39:27.189293956Z",
            "changedAt": "2026-10-07T18:06:13.373720034Z",
            "fingerprint": "fb01451ef27b"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.figma.com/mcp",
          "checkedAt": "2026-09-29T21:56:31.149668221Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-09-28T21:55:47.047148913Z"
        },
        "updatedAt": "2026-10-10T03:58:19.966472741Z"
      }
    },
    "answer": "Figma API + MCP scores 66 (B) on agent readiness against Subframe's 39.7 (E), and leads in 6 of 7 scored categories.",
    "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-10T03:53:45.689380039Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 137,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 151,
          "p95ms24h": 262,
          "samples24h": 125,
          "samples30d": 125,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 40,
              "ok": 40
            }
          ]
        },
        "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-10T03:53:45.689380039Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Figma",
        "b": "Atomic Design Inc",
        "name": "Vendor"
      },
      {
        "a": "https://api.figma.com/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",
        "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": "35",
        "b": "46",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "com.figma.mcp/mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-24",
        "b": "2026-10-08",
        "name": "Last release"
      },
      {
        "a": "2026-03-11",
        "b": "2026-01-22",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-01-22",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "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": "456k npm/wk",
        "b": "435 stars, 1k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Figma API + MCP scores 66 (B) on agent readiness against Subframe's 39.7 (E), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Figma API + MCP or Subframe?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Figma API + MCP and Subframe need an API key?"
      },
      {
        "answer": "Yes. Figma API + MCP has a hosted endpoint at https://api.figma.com/v1 and Subframe at https://mcp.subframe.com/mcp.",
        "question": "Can an agent call Figma API + MCP and Subframe without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 59 against 19",
          "Schema \u0026 documentation, 86 against 54",
          "Agent ergonomics, 60 against 47",
          "Security \u0026 auth, 74 against 44",
          "Maintenance \u0026 community, 84 against 65",
          "Transparency \u0026 trust, 73 against 57"
        ],
        "also": [
          "No incidents deducted, where Subframe loses 3 points for them"
        ],
        "goodFor": "Design-to-code agents and teams already paying for Dev or Full seats.",
        "slug": "figma-mcp",
        "watchFor": "View and Collab seats get 6 MCP calls a month on paid plans"
      },
      {
        "aheadOn": null,
        "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.files",
      "name": "Design files"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-framer.json",
        "title": "Figma API + MCP vs Framer Server API",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-framer"
      },
      {
        "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-miro.json",
        "title": "Figma API + MCP vs Miro API + MCP",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-miro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-pen-dev.json",
        "title": "Figma API + MCP vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-pen-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-penpot.json",
        "title": "Figma API + MCP vs Penpot API + MCP",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-penpot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-sketch.json",
        "title": "Figma API + MCP vs Sketch",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-sketch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-zeplin.json",
        "title": "Figma API + MCP vs Zeplin",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-zeplin"
      },
      {
        "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/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-subframe.json",
        "title": "Melius vs Subframe",
        "url": "https://www.anchorterminal.com/compare/melius-vs-subframe"
      }
    ],
    "scores": [
      {
        "by": 40,
        "edge": "figma-mcp",
        "figma-mcp": 59,
        "key": "reliability",
        "name": "Reliability",
        "subframe": 19,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 32,
        "edge": "figma-mcp",
        "figma-mcp": 86,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "subframe": 54,
        "weight": 13
      },
      {
        "by": 13,
        "edge": "figma-mcp",
        "figma-mcp": 60,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "subframe": 47,
        "weight": 13
      },
      {
        "by": 30,
        "edge": "figma-mcp",
        "figma-mcp": 74,
        "key": "security",
        "name": "Security \u0026 auth",
        "subframe": 44,
        "weight": 14
      },
      {
        "by": 3,
        "edge": "subframe",
        "figma-mcp": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "subframe": 33,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 19,
        "edge": "figma-mcp",
        "figma-mcp": 84,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "subframe": 65,
        "weight": 7
      },
      {
        "by": 16,
        "edge": "figma-mcp",
        "figma-mcp": 73,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "subframe": 57,
        "weight": 7
      }
    ],
    "summary": "Figma API + MCP scores 66 (B) on agent readiness against Subframe's 39.7 (E), and leads in 6 of 7 scored categories. Both do design files.",
    "verdicts": {
      "figma-mcp": "OpenAPI spec, TypeScript types and an llms.txt index for the REST API. View and Collab seats get 6 MCP calls a month on paid plans.",
      "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/figma-mcp-vs-subframe",
    "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-subframe.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/figma-mcp-vs-subframe.md",
    "slim": "https://www.anchorterminal.com/compare/figma-mcp-vs-subframe.min.md"
  },
  "markdown": "Figma API + MCP scores 66 (B) on agent readiness against Subframe's 39.7 (E), and leads in 6 of 7 scored categories. Both do design files.\n\n- Figma API + MCP: grade B, 66/100, rank #303 of 950. Markdown https://www.anchorterminal.com/tools/figma-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/figma-mcp.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### Figma API + MCP (B)\n\nGood for: Design-to-code agents and teams already paying for Dev or Full seats.\n\nAhead on:\n- Reliability, 59 against 19\n- Schema \u0026 documentation, 86 against 54\n- Agent ergonomics, 60 against 47\n- Security \u0026 auth, 74 against 44\n- Maintenance \u0026 community, 84 against 65\n- Transparency \u0026 trust, 73 against 57\n\nAlso in its favour:\n- No incidents deducted, where Subframe loses 3 points for them\n\nWatch for: View and Collab seats get 6 MCP calls a month on paid plans\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\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 | Figma API + MCP | Subframe | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 59 | 19 | Figma API + MCP +40 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 54 | Figma API + MCP +32 |\n| Agent ergonomics | 13% (16.2 this run) | 60 | 47 | Figma API + MCP +13 |\n| Security \u0026 auth | 14% (17.5 this run) | 74 | 44 | Figma API + MCP +30 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 33 | Subframe +3 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 84 | 65 | Figma API + MCP +19 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 73 | 57 | Figma API + MCP +16 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **66 · B** | **39.7 · E** | |\n\n## Facts side by side\n\n| Fact | Figma API + MCP | Subframe |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Figma | Atomic Design Inc |\n| Hosted endpoint | `https://api.figma.com/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 | 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 | 35 | 46 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| MCP registry | `com.figma.mcp/mcp` | not listed |\n| Last release | 2026-09-24 | 2026-10-08 |\n| Terms last updated | 2026-03-11 | 2026-01-22 |\n| Privacy policy last updated | no date given | 2026-01-22 |\n| Customer content may train models | yes, with an opt-out | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | 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 | 456k npm/wk | 435 stars, 1k npm/wk |\n| Agent reviews | 3.5/5 (2) | none |\n\n## Verdicts\n\n**Figma API + MCP.** OpenAPI spec, TypeScript types and an llms.txt index for the REST API. View and Collab seats get 6 MCP calls a month on paid plans.\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### Figma API + MCP\n\n1. Pass `ids=` and `depth=` to `GET /v1/files/:key`. A whole file is large\n2. `GET /v1/images/:key` renders nodes to PNG, JPG, SVG or PDF and returns short-lived URLs\n3. On 429 read `Retry-After`. Limits are per user and app for OAuth, per user for personal tokens and per token for plan tokens\n4. Use the v2 folders endpoints. The v1 projects endpoints were deprecated on 10 August 2026\n5. Confirm the credit cost with the user when `weave_run_tool` returns `cost_confirmation_required`\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, Figma API + MCP or Subframe?\n\nFigma API + MCP scores 66 (B) on agent readiness against Subframe's 39.7 (E), and leads in 6 of 7 scored categories.\n\n### Do Figma API + MCP and Subframe need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Figma API + MCP and Subframe without installing anything?\n\nYes. Figma API + MCP has a hosted endpoint at https://api.figma.com/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/figma-mcp-vs-subframe.json, and with the fewest tokens: https://www.anchorterminal.com/compare/figma-mcp-vs-subframe.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"figma-mcp\", \"b\": \"subframe\"}`. From a terminal: `anchor compare figma-mcp subframe`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/figma-mcp.json and https://www.anchorterminal.com/api/v1/tools/subframe.json\n\n## Other comparisons with Figma API + MCP or Subframe\n\n- [Figma API + MCP vs Framer Server API](https://www.anchorterminal.com/compare/figma-mcp-vs-framer.md)\n- [Figma API + MCP vs Melius](https://www.anchorterminal.com/compare/figma-mcp-vs-melius.md)\n- [Figma API + MCP vs Miro API + MCP](https://www.anchorterminal.com/compare/figma-mcp-vs-miro.md)\n- [Figma API + MCP vs pen.dev](https://www.anchorterminal.com/compare/figma-mcp-vs-pen-dev.md)\n- [Figma API + MCP vs Penpot API + MCP](https://www.anchorterminal.com/compare/figma-mcp-vs-penpot.md)\n- [Figma API + MCP vs Sketch](https://www.anchorterminal.com/compare/figma-mcp-vs-sketch.md)\n- [Figma API + MCP vs Zeplin](https://www.anchorterminal.com/compare/figma-mcp-vs-zeplin.md)\n- [Framer Server API vs Subframe](https://www.anchorterminal.com/compare/framer-vs-subframe.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 Subframe](https://www.anchorterminal.com/compare/melius-vs-subframe.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": "Figma API + MCP vs Subframe",
        "url": ""
      }
    ],
    "description": "Figma scores 66 (B) to Subframe's 39.7 (E) for design files. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Figma API + MCP B 66",
      "Subframe E 39.7",
      "scores"
    ],
    "h1": "Figma API + MCP vs Subframe",
    "image": "https://www.anchorterminal.com/assets/og/compare-figma-mcp-vs-subframe.png",
    "path": "/compare/figma-mcp-vs-subframe",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Figma vs Subframe for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-subframe"
  },
  "tokens": {
    "markdown": 2150,
    "slim": 730
  },
  "version": 1
}
