# Framelink MCP for Figma vs Subframe

> Framelink MCP for Figma scores 66.1 (B) to Subframe's 39.8 (E) for design files. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-subframe
- Markdown: https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-subframe.md (~5,250 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

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.

- Framelink MCP for Figma: grade B, 66.1/100, rank #387 of 1510. Markdown https://www.anchorterminal.com/tools/framelink-figma-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/framelink-figma-mcp.json
- Subframe: grade E, 39.8/100, rank #1332 of 1510. Markdown https://www.anchorterminal.com/tools/subframe.md · JSON https://www.anchorterminal.com/api/v1/tools/subframe.json
- Best design workspace and canvas APIs for AI agents: https://www.anchorterminal.com/best/design/index.md
- All 133 design comparisons: https://www.anchorterminal.com/compare/design/index.md

## Which one, for what

### Framelink MCP for Figma (B)

Good 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)

Good 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

### 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 | Framelink MCP for Figma | Subframe | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 68 | 19 | Framelink MCP for Figma +49 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 87 | 54 | Framelink MCP for Figma +33 |
| Agent ergonomics | 13% (16.2 this run) | 83 | 47 | Framelink MCP for Figma +36 |
| Security & auth | 14% (17.5 this run) | 55 | 44 | Framelink MCP for Figma +11 |
| Payments & pricing | 10% (12.5 this run) | 60 | 33 | Framelink MCP for Figma +27 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 41 | 65 | Subframe +24 |
| Transparency & trust | 7% (8.8 this run) | 47 | 58 | Subframe +11 |
| Negative events | ≤15 | 0 | -3 | |
| **Total** | | **66.1 · B** | **39.8 · E** | |

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

### Subframe

- -0.1 on 28 October 2026: correction
- +0.2 on 27 October 2026: checklist

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


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-subframe.json, and with the fewest tokens: https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-subframe.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "framelink-figma-mcp", "b": "subframe"}`. From a terminal: `anchor compare framelink-figma-mcp subframe`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/framelink-figma-mcp.json and https://www.anchorterminal.com/api/v1/tools/subframe.json

## Other comparisons with Framelink MCP for Figma or Subframe

- [Figma API + MCP vs Framelink MCP for Figma](https://www.anchorterminal.com/compare/figma-mcp-vs-framelink-figma-mcp.md)
- [Figma API + MCP vs Subframe](https://www.anchorterminal.com/compare/figma-mcp-vs-subframe.md)
- [Framelink MCP for Figma vs Framer Server API](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-framer.md)
- [Framelink MCP for Figma vs Kite](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-kite-new.md)
- [Framelink MCP for Figma vs Magic Patterns](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-magic-patterns.md)
- [Framelink MCP for Figma vs Melius](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-melius.md)
- [Framelink MCP for Figma vs Miro API + MCP](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-miro.md)
- [Framelink MCP for Figma vs pen.dev](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-pen-dev.md)
- [Framelink MCP for Figma vs Penpot API + MCP](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-penpot.md)
- [Framelink MCP for Figma vs Sketch](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-sketch.md)
- [Framelink MCP for Figma vs Zeplin](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-zeplin.md)
- [Framer Server API vs Subframe](https://www.anchorterminal.com/compare/framer-vs-subframe.md)
- [Kite vs Subframe](https://www.anchorterminal.com/compare/kite-new-vs-subframe.md)
- [Miro API + MCP vs Subframe](https://www.anchorterminal.com/compare/miro-vs-subframe.md)
- [pen.dev vs Subframe](https://www.anchorterminal.com/compare/pen-dev-vs-subframe.md)
- [Penpot API + MCP vs Subframe](https://www.anchorterminal.com/compare/penpot-vs-subframe.md)
- [Sketch vs Subframe](https://www.anchorterminal.com/compare/sketch-vs-subframe.md)
- [Subframe vs Zeplin](https://www.anchorterminal.com/compare/subframe-vs-zeplin.md)
- [Framelink MCP for Figma vs Impeccable](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-impeccable.md)
- [Framelink MCP for Figma vs UX Pilot MCP server](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-ux-pilot-mcp.md)
- [Impeccable vs Subframe](https://www.anchorterminal.com/compare/impeccable-vs-subframe.md)
- [Magic Patterns vs Subframe](https://www.anchorterminal.com/compare/magic-patterns-vs-subframe.md)
- [Melius vs Subframe](https://www.anchorterminal.com/compare/melius-vs-subframe.md)
- [Subframe vs UX Pilot MCP server](https://www.anchorterminal.com/compare/subframe-vs-ux-pilot-mcp.md)
- [Framelink MCP for Figma vs UXKIN](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-uxkin-agent.md)
- [Subframe vs UXKIN](https://www.anchorterminal.com/compare/subframe-vs-uxkin-agent.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
