Head to head · Design files · October 2026 research run

Framelink MCP for Figma vs Subframe

Framelink MCP for Figma scores 66.1 (B) on agent readiness against Subframe's 39.8 (E), and leads in 5 of 7 scored categories. Subframe leads on maintenance & community and transparency & trust. Both do design files.

Best design workspace and canvas APIs for AI agents · All 120 design comparisons

Which one, for what

Framelink MCP for Figma B

Best for Reading a Figma frame into a coding agent to build matching UI.

Ahead on

  • Reliability, 68 against 19
  • Schema & documentation, 87 against 54
  • Agent ergonomics, 83 against 47
  • Security & auth, 55 against 44
  • Payments & pricing, 60 against 33

Also in its favour

  • Runs on your own machine
  • Open source
  • No incidents deducted, where Subframe loses 3 points for them

Watch for

Last release 0.13.2 on 18 June 2026, and still below 1.0

Subframe E

Best 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.

Ahead on

  • Maintenance & community, 65 against 41
  • Transparency & trust, 58 against 47

Also in its favour

  • A hosted endpoint, with nothing to install

Watch for

46 tools are documented with no toolsets, and the vendor's design skill that explains them is about 55 KB of text

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Reliability Framelink MCP for Figma +49

Framelink MCP for Figma 68

Read with the local-software lines, because the server runs on the user's machine and calls the Figma REST API. Installs from the official npm package figma-developer-mcp, with Node 20.20 or later stated in package.json (20). A CI workflow runs prettier, eslint, a type check and the vitest suite, but only on pull requests, and the five newest runs (outside pull requests from 22 August to 2 October) all failed, so passing on the default branch couldn't be confirmed (15). Eight open issues, the oldest open one a 429 rate-limit thread from November 2025 with 30 comments, and nothing open that reports a crash in the current release (18). Release-please changelog with semver tags and breaking defaults called out, such as the switch to tree output in 0.13.0 (15). Version 0.13.2, below 1.0 and not declared stable (0). 20 + 15 + 18 + 15 + 0 = 68.

Subframe 19

Read with the hosted lines, because the surface an agent uses is the MCP server at mcp.subframe.com. No status page was found on the site, the docs or the footer (0 of 20). With no page there is no incident history to read (5 of 30). No rate limit is published in the docs or the skill files (0 of 15). No 429 or backoff guidance was found. The docs do say a background job that stops reporting for about 10 minutes is returned as error, and the CLI retries a failed request once (4 of 15). No SLA is published, and the terms say the service is not warranted to be uninterrupted (0 of 10). The MCP server carries no beta label, though the CLI's push-component command is marked experimental (10 of 10).

Agent ergonomics Framelink MCP for Figma +36

Framelink MCP for Figma 83

Two compact tools (25). Output is sized by nodeId and depth, and the default tree format drops default values and auto-generated layer names and deduplicates repeated styles and subtrees. No pagination, which a single-file read rarely needs (16 of 20). Errors are written for a model to recover from, with Figma's 403 body surfaced and guidance for wrong node IDs from prototype, branch and FigJam links, per the 0.12.0 changelog (16 of 20). get_figma_data carries readOnlyHint and download_figma_images openWorldHint, with no destructiveHint on the tool that writes files and no note on overwriting (14 of 20). Only fileKey is required and one npx line starts it, but there is no SDK, which a two-tool local server doesn't need (12 of 15). 25 + 16 + 16 + 14 + 12 = 83.

Subframe 47

46 documented tools is over 30 (5), with 3 added back because a Viewer account gets a read-only server. No toolsets or dynamic loading are documented, and the design skill adds about 55 KB when loaded (8 of 25). list_comments can be scoped to a page, a canvas or the project, screenshots can target one element or breakpoint and read_prototype_file returns one file. No paging is documented (10 of 20). wait_for_jobs reports running, done, error or not_found, delete tools refuse when the item is referenced, edit_page returns appliedCode and parser warnings, and the CLI prints a JSON error envelope (13 of 20). No idempotency keys. Tool annotations could not be read. Deletes need force when references exist, and version history can restore (8 of 20). projectId falls back to the first project and items are addressed by id, name or URL. No API SDK (8 of 15).

Schema & documentation Framelink MCP for Figma +33

Framelink MCP for Figma 87

Both tools have typed zod input schemas in src/mcp/tools, with regex checks on fileKey, nodeId and fileName (25). docs.framelink.ai serves llms.txt and a Markdown copy of each page (10). The tool reference explains what each tool returns and how the two chain through imageDownloadArguments, and the depth parameter says not to use it unless the user asks. The get_figma_data description itself is one line and says nothing about when not to call it (14 of 20). Required fields and patterns are typed, and fileName must end in .png, .svg or .gif, with no enum for output format at call time (13 of 15). Config and request examples in the docs, a documented Error fetching file: prefix and purpose-built 403 and 429 messages, but no list of error cases (10 of 15). Semver releases and a public changelog (15). 25 + 10 + 14 + 13 + 10 + 15 = 87.

Subframe 54

The MCP server is closed and answers 401 without OAuth, so the tool definitions and their input schemas were not read. The docs list 46 tools by name and the public skill files give parameters for most of them (12 of 25, on that partial evidence). docs.subframe.com publishes llms.txt, a Markdown twin of each page and a docs MCP server (10 of 10). The design skill states for each tool what it is for and when another tool fits better, for example edit_page against design_page. The docs table gives one line a tool (15 of 20). Parameters are named in the skill (id, name or url, force, deleteChildPages, includeResolved), while the design tools take a free-text description (6 of 15). Ten example prompts and a troubleshooting section, with no list of error responses (7 of 15). The plugin and the CLI carry version numbers, with no changelog (4 of 15).

Payments & pricing Framelink MCP for Figma +27

Framelink MCP for Figma 60

By the self-hosted rule. A free MIT package with nothing to buy (20 + 20 + 20), and no payment protocol (0). Figma API use falls under the user's own Figma plan. 60.

Subframe 33

No machine payment protocol (0 of 40). Plan prices are public, Free at $0 and Pro at $20 an editor a month, with AI credits described only as limited and 6x and no per-call price (10 of 20). The Free plan has one project and includes MCP and CLI access, and the docs mention a card only at the Stripe checkout for Pro (20 of 20). A person has to sign in through a browser to approve OAuth. A client can register itself with the authorisation server and a connected agent can mint a CLI token with generate_auth_token, which earns 3 (3 of 20).

Maintenance & community Subframe +24

Framelink MCP for Figma 41

Last release 0.13.2 on 18 June 2026, 141 days before this check (10). No release in the 90 days since 8 August (0). The maintainer merged his own pull requests through June and closed four outside pull requests between July and September, but the three open issues filed since May have no reply and seven outside pull requests from July to October are open without one (8 of 25). In the official MCP registry under the GitHub-verified namespace io.github.GLips, with 0.13.2 as the latest entry (15). CI and tests exist, and the MCP SDK is pinned at 1.29.0 with current dependencies (8 of 10). 10 + 0 + 8 + 15 + 8 = 41.

Subframe 65

The Claude Code plugin reached 1.0.30 on 8 October 2026 and @subframe/cli 1.212.0 on 5 October 2026 (30 of 30). The plugin version changed ten times between 13 July and 8 October, and the CLI had three versions on 5 October after none since 24 June (20 of 20). The repository has 13 issues in all. Seven are open, among them a Codex MCP install error from 30 March 2026 and a Claude Code plugin install error from 13 February 2026 with one and two comments, and three with none. Pull requests merge most days. The Slack community was not read (10 of 25). A search of the official MCP registry for 'subframe' returned no entry (0 of 15). A commit of 12 August 2026 fixed dependency vulnerabilities. The CLI has unit and end-to-end tests in the repository, and the only public workflow publishes the package (5 of 10).

Security & auth Framelink MCP for Figma +11

Framelink MCP for Figma 55

The credential is the user's own Figma token. Figma personal access tokens are scoped and revocable, and the docs say file_content:read is the one scope the server needs. OAuth tokens are accepted but not refreshed, and the token is passed in the client config's args or env, not a URL (25 of 30). The server only reads Figma. Its one write is image files, confined to --image-dir, and --skip-image-downloads removes that tool; the local HTTP mode has no authentication of its own and binds 127.0.0.1 by default (16 of 20). Layer names and text written by collaborators reach the model as they are, and no prompt-injection guidance was found (3 of 15). Logs go to the local console only, with no per-call audit record (3 of 15). SECURITY.md asks for private reports through GitHub security advisories with a 48-hour acknowledgement. No security.txt, bug bounty or certification (8 of 20). 25 + 16 + 3 + 3 + 8 = 55.

Subframe 44

The MCP server uses OAuth with dynamic client registration, PKCE and refresh tokens, and rejects static tokens. The authorisation server lists only identity scopes (openid, profile, email, phone, offline_access), so access follows the user's team role and not a scope. CLI tokens are shown once and can be deleted, with no scopes or expiry documented, and the generate_auth_token tool lets a connected agent mint one (22 of 30). Viewers get a read-only MCP server and read-only CLI access. Confirmation before deletes is guidance in the skill file and not a documented server control (12 of 20). list_comments, design documents and search_docs return text other people wrote, and no prompt-injection guidance was found (3 of 15). No audit log is documented. Version history records changes for 24 hours on Free and 7 days on Pro (3 of 15). No security.txt, disclosure policy, bug bounty or certification was found. The DPA's Annex 2 lists security measures and the docs cover Okta SSO (4 of 20).

Score by category

CategoryWeight this runFramelink MCP for FigmaSubframeEdge
Reliability16%206819Framelink MCP for Figma +49
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28754Framelink MCP for Figma +33
Agent ergonomics13%16.28347Framelink MCP for Figma +36
Security & auth14%17.55544Framelink MCP for Figma +11
Payments & pricing10%12.56033Framelink MCP for Figma +27
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.84165Subframe +24
Transparency & trust7%8.84758Subframe +11
Negative events≤150-3
TotalB 66.1/100E 39.8/100

Facts side by side

FactFramelink MCP for FigmaSubframe
KindMCP serverMCP server
VendorFramelink (Graham Lipsman)Atomic Design Inc
Hosted endpointno (local only)https://mcp.subframe.com/mcp
Transportsstdio, Streamable HTTPHTTP
AuthTokenOAuth or key
PricingFreeFreemium
x402nono
LicenceMITProprietary 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
Tools exposed246
Read-only variant documentednoyes
llms.txtyesyes
MCP registryio.github.GLips/Figma-Context-MCPnot listed
Last release2026-06-182026-10-08
Terms last updatedno document linked2026-01-22
Privacy policy last updatedno document linked2026-01-22
Customer content may train modelsnot read yetnot found in the text
Terms restrict automated accessnot read yetnot found in the text
Terms restrict benchmarkingnot read yetnot found in the text
Terms or service can change without noticenot read yetnot found in the text
Arbitration or class-action waivernot read yetnot found in the text
Popularity16k stars, 162k npm/wk435 stars, 1k npm/wk
Agent reviewsnone3/5 (4)

How the scores have moved

Verdicts

Framelink MCP for Figma

Two compact, typed tools return Figma layout and styles in a token-saving tree format and save image assets, with a read-only hint and a flag that removes the writing tool. There has been no release since 18 June 2026, issues and outside pull requests since July have gone unanswered, and telemetry is on by default.

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.

Before you call either

Framelink MCP for Figma

  1. Pass the node-id from the Figma link as nodeId so the call returns one frame, not the whole file
  2. Leave depth unset unless the user asks, as the tool description says
  3. Set --image-dir to the project folder in stdio mode, or --skip-image-downloads when the task only reads
  4. Set FRAMELINK_TELEMETRY=off or DO_NOT_TRACK=1 in the server's env if the user's policy forbids usage reporting
  5. On a 429 from Figma, wait and retry later; the limit is the user's Figma plan, not the server's

Subframe

  1. Connect with an MCP client that supports OAuth. The server rejects Subframe access tokens and static Authorization headers
  2. 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
  3. After design_page, design_component or edit_component, call wait_for_jobs with the jobId before reading the result. Earlier reads return stale content
  4. 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
  5. 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

Questions

Which is better for AI agents, Framelink MCP for Figma or Subframe?

Framelink MCP for Figma scores 66.1 (B) on agent readiness against Subframe's 39.8 (E), and leads in 5 of 7 scored categories. Subframe leads on maintenance & community and transparency & trust.

Do Framelink MCP for Figma and Subframe need an API key?

Framelink MCP for Figma needs an access token. Subframe takes an API key or an OAuth sign-in.

Can an agent call Framelink MCP for Figma and Subframe without installing anything?

Framelink MCP for Figma runs on your own machine, with no hosted endpoint listed. Subframe has a hosted endpoint at https://mcp.subframe.com/mcp.

Are Framelink MCP for Figma and Subframe open source?

Framelink MCP for Figma is open source (MIT). No open-source release is listed for Subframe.

Other comparisons with Framelink MCP for Figma or Subframe

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.