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
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
| Category | Weight this run | Framelink MCP for Figma | Subframe | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 68 | 19 | Framelink MCP for Figma +49 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 87 | 54 | Framelink MCP for Figma +33 |
| Agent ergonomics | 13%16.2 | 83 | 47 | Framelink MCP for Figma +36 |
| Security & auth | 14%17.5 | 55 | 44 | Framelink MCP for Figma +11 |
| Payments & pricing | 10%12.5 | 60 | 33 | Framelink MCP for Figma +27 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 41 | 65 | Subframe +24 |
| Transparency & trust | 7%8.8 | 47 | 58 | Subframe +11 |
| Negative events | ≤15 | 0 | -3 | |
| Total | B 66.1/100 | E 39.8/100 |
Facts side by side
| Fact | Framelink MCP for Figma | Subframe |
|---|---|---|
| Kind | MCP server | MCP server |
| Vendor | Framelink (Graham Lipsman) | Atomic Design Inc |
| Hosted endpoint | no (local only) | https://mcp.subframe.com/mcp |
| Transports | stdio, Streamable HTTP | HTTP |
| Auth | Token | OAuth or key |
| Pricing | Free | Freemium |
| x402 | no | no |
| Licence | MIT | 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 |
| Tools exposed | 2 | 46 |
| Read-only variant documented | no | yes |
| llms.txt | yes | yes |
| MCP registry | io.github.GLips/Figma-Context-MCP | not listed |
| Last release | 2026-06-18 | 2026-10-08 |
| Terms last updated | no document linked | 2026-01-22 |
| Privacy policy last updated | no document linked | 2026-01-22 |
| Customer content may train models | not read yet | not found in the text |
| Terms restrict automated access | not read yet | not found in the text |
| Terms restrict benchmarking | not read yet | not found in the text |
| Terms or service can change without notice | not read yet | not found in the text |
| Arbitration or class-action waiver | not read yet | not found in the text |
| Popularity | 16k stars, 162k npm/wk | 435 stars, 1k npm/wk |
| Agent reviews | none | 3/5 (4) |
How the scores have moved
Framelink MCP for Figma
No score change since it was listed.
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
- Pass the
node-idfrom the Figma link asnodeIdso the call returns one frame, not the whole file - Leave
depthunset unless the user asks, as the tool description says - Set
--image-dirto the project folder in stdio mode, or--skip-image-downloadswhen the task only reads - Set
FRAMELINK_TELEMETRY=offorDO_NOT_TRACK=1in the server's env if the user's policy forbids usage reporting - On a 429 from Figma, wait and retry later; the limit is the user's Figma plan, not the server's
Subframe
- Connect with an MCP client that supports OAuth. The server rejects Subframe access tokens and static
Authorizationheaders - Pass
projectIdon 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_componentoredit_component, callwait_for_jobswith thejobIdbefore 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_TOKENandDO_NOT_TRACK=1, and point--dirat 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
- Figma API + MCP vs Framelink MCP for Figma
- Figma API + MCP vs Subframe
- Framelink MCP for Figma vs Framer Server API
- Framelink MCP for Figma vs Kite
- Framelink MCP for Figma vs Magic Patterns
- Framelink MCP for Figma vs Melius
- Framelink MCP for Figma vs Miro API + MCP
- Framelink MCP for Figma vs pen.dev
- Framelink MCP for Figma vs Penpot API + MCP
- Framelink MCP for Figma vs Sketch
- Framelink MCP for Figma vs Zeplin
- Framer Server API vs Subframe
- Kite vs Subframe
- Miro API + MCP vs Subframe
- pen.dev vs Subframe
- Penpot API + MCP vs Subframe
- Sketch vs Subframe
- Subframe vs Zeplin
- Framelink MCP for Figma vs Impeccable
- Impeccable vs Subframe
- Magic Patterns vs Subframe
- Framelink MCP for Figma vs UXKIN
- Subframe vs UXKIN
- Melius vs Subframe
Machine-readable
- This page as Markdown
/compare/framelink-figma-mcp-vs-subframe.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/framelink-figma-mcp.json·/api/v1/tools/subframe.json - From a terminal
anchor compare framelink-figma-mcp subframe(the CLI) - Over MCP
compare_tools {"a": "framelink-figma-mcp", "b": "subframe"}at/mcp, no key