Head to head · Design files · October 2026 research run

Framelink MCP for Figma vs pen.dev

Framelink MCP for Figma scores 66.1 (B) on agent readiness against pen.dev's 43.3 (E), and leads in 5 of 7 scored categories. pen.dev 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 33
  • Schema & documentation, 87 against 36
  • Agent ergonomics, 83 against 66
  • Security & auth, 55 against 31
  • Payments & pricing, 60 against 38

Also in its favour

  • Open source

Watch for

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

pen.dev E

Best for A coding agent that designs screens beside the code and keeps them in Git, including in CI.

Ahead on

  • Maintenance & community, 59 against 41
  • Transparency & trust, 55 against 47

Watch for

No changelog. Desktop releases on GitHub had empty notes on 8 October, and the format docs reserve the right to make breaking changes

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.

Schema & documentation Framelink MCP for Figma +51

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.

pen.dev 36

The MCP tool input schemas were read from the minified npm bundle, source code no docs page shows, so they aren't a published contract, as for other MCP servers whose schemas sit only in source. The .pen format's TypeScript schema on the docs site describes the file, not the tool inputs (0 of 25). No llms.txt. The package ships SKILL.md and Markdown reference files that read_skill hands to the model (6 of 10). The execute description is one line that points to get_app_state, with the operations documented only in the skill files, while browser states each action and when to use it (12 of 20). execute takes a JavaScript snippet as one string. browser has enums for action and target (7 of 15). The CLI page has worked examples and a troubleshooting page, with no list of error responses (7 of 15). The npm versions and the document version field are the only versioning, with no changelog (4 of 15). The other lines are per the 8 October check, not re-read on 5 November 2026.

Reliability Framelink MCP for Figma +35

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.

pen.dev 33

Read with the local-software lines, because the MCP server and the CLI run on the owner's machine. @pen.dev/cli installs from npm with Node.js 22.19 or later stated, and the desktop app has downloads for macOS, Windows and Linux (20). The source is closed, so no public CI or test suite can be seen (0 of 25). The public tracker highagency/pen-desktop-releases has 14 issues opened between 28 July and 6 October 2026, none closed or answered, one of them a report that headless pen interactive saved an empty document over a 1.4 MB file with exit status 0. These are users' reports that we did not reproduce (5 of 25). No changelog, empty release notes, and the format page reserves breaking changes (0 of 15). The desktop app is at 1.2.16 and the CLI at 0.3.11 (8 of 15). Sign-in and plan limits also depend on api.pen.dev, which has no status page. Held per the 8 October check, not re-read on 5 November 2026, because pen.dev's terms of 26 October 2026 bar crawling the Services and its hosts were paused. The GitHub issue tracker couldn't be read (github.com pages answer 403).

Security & auth Framelink MCP for Figma +24

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.

pen.dev 31

The CLI uses a stored session token or an organisation-scoped CLI key that the npm README says can be created and revoked in Developer Keys. No scopes, expiry or rotation are documented (18 of 30). The MCP server has no read-only mode, and execute is annotated destructive. The integrated agent asks permission for file and command actions, with a 'Dangerously skip permissions' switch, and an owner enables each external client by hand (6 of 20). The browser tool and web import bring live page content to the model, and we found no prompt-injection guidance (2 of 15). The Agent tab lists tool activity, --usage writes token use to JSON and Pro adds usage tracking, with no audit log documented (5 of 15). No security.txt, disclosure policy, bug bounty or certification was found. The privacy policy says stored data is encrypted in transit and at rest, and an encryption statement alone isn't a security programme (0 of 20). Held per the 8 October check, not re-read on 5 November 2026.

Payments & pricing Framelink MCP for Figma +22

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.

pen.dev 38

Read with the hosted lines, because the software is free to install but needs a pen.dev account and paid plans lift its limits. No machine payment protocol (0). Plan prices are public, Pro $16 and Ultra $48 a user a month, with no per-call price (10 of 20). The Free plan includes the CLI, MCP access and personal developer keys, and sign-up takes an email address, a name and a username with no card step in the documented flow (20). The npm README documents pen signup with flags and pen login --email --code, so no browser is needed, but someone must open the verification email and read the code, and organisation keys for CI start at Pro (8 of 20). Held per the 8 October check, not re-read on 5 November 2026.

Maintenance & community pen.dev +18

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.

pen.dev 59

@pen.dev/cli 0.3.11 and desktop v1.2.16 were published on 8 October 2026, 28 days before this check, and the release repository's clone on 5 November 2026 holds tags up to v1.2.21, five tags added since (30). The CLI had 13 versions between 9 July and 8 October, and desktop v1.2.17 to v1.2.21 were tagged between 8 October and 5 November (20). None of the 14 issues in the current tracker had a reply on 8 October, and one of 25 in the older pencil-desktop-releases tracker was closed; the trackers weren't re-read on 5 November (github.com pages answer 403), and the Discord server wasn't read (4 of 25). No readable registry page shows an entry from the vendor; the 8 October search used the registry's data API, which this method no longer reads (0). Dependencies in 0.3.11 are current major versions, with no public CI (5 of 10).

Agent ergonomics Framelink MCP for Figma +17

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.

pen.dev 66

Four standard tools with short definitions and two conditional ones, though the model must load skill files before execute is usable (22 of 25). Output size is in the agent's hands through Get callbacks with skipChildren and Print, and screenshots of chosen nodes, with no documented paging (12 of 20). A failed execute returns an editId so the agent patches the snippet with edits, and --verbose-mcp prints full tool errors, but the docs warn that an export failure can exit with status 0 (10 of 20). All tools carry readOnlyHint, destructiveHint, idempotentHint and openWorldHint annotations in the 0.3.11 package, and --in with a separate --out leaves the source untouched. No idempotency keys (14 of 20). Few required parameters and a one-line headless command. No SDK in any language (8 of 15). Held per the 8 October check, not re-read on 5 November 2026.

Score by category

CategoryWeight this runFramelink MCP for Figmapen.devEdge
Reliability16%206833Framelink MCP for Figma +35
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28736Framelink MCP for Figma +51
Agent ergonomics13%16.28366Framelink MCP for Figma +17
Security & auth14%17.55531Framelink MCP for Figma +24
Payments & pricing10%12.56038Framelink MCP for Figma +22
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.84159pen.dev +18
Transparency & trust7%8.84755pen.dev +8
Negative events≤1500
TotalB 66.1/100E 43.3/100

Facts side by side

FactFramelink MCP for Figmapen.dev
KindMCP serverMCP server
VendorFramelink (Graham Lipsman)High Agency, Inc.
Hosted endpointno (local only)no (local only)
Transportsstdio, Streamable HTTPstdio
AuthTokenOAuth or key
PricingFreeFreemium
x402nono
LicenceMITProprietary. The CLI package on npm carries a proprietary licence file, and the apps fall under the vendor's EULA
Tools exposed26
Read-only variant documentednono
llms.txtyesno
MCP registryio.github.GLips/Figma-Context-MCPnot listed
Last release2026-06-182026-10-08
Terms last updatedno document linked2026-10-06
Privacy policy last updatedno document linked2026-10-06
Customer content may train modelsnot read yetnot found in the text
Terms restrict automated accessnot read yetyes
Terms restrict benchmarkingnot read yetyes
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/wknone
Agent reviewsnone2.8/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.

pen.dev

An agent can create, edit and export .pen designs without a GUI through the pen CLI, with four compact MCP tools that carry annotations and a documented JSON format. The software is closed and needs a pen.dev account. Tool schemas sit only in the package code, and no changelog, status page or security contact was 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

pen.dev

  1. Call read_skill(), then read_skill({ path: "pen-schema.md" }) and read_skill({ path: "execute.md" }) before the first execute. The tool description alone doesn't document the operations
  2. Call get_app_state() and confirm the active document before editing. The MCP server works on whichever .pen file is open in the app
  3. In headless pen interactive, call save() before exit(), and keep --in and --out on different paths to preserve the source
  4. Check that an export file exists. The docs say an export failure can print an error without a nonzero exit status
  5. In CI set PEN_CLI_KEY plus a provider key such as ANTHROPIC_API_KEY. Run pen version, since pen --version is not a flag

Questions

Which is better for AI agents, Framelink MCP for Figma or pen.dev?

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

Do Framelink MCP for Figma and pen.dev need an API key?

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

Can an agent call Framelink MCP for Figma and pen.dev without installing anything?

Framelink MCP for Figma runs on your own machine, with no hosted endpoint listed. pen.dev runs on your own machine, with no hosted endpoint listed.

Are Framelink MCP for Figma and pen.dev open source?

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

Other comparisons with Framelink MCP for Figma or pen.dev

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.