{
  "data": {
    "a": {
      "slug": "framelink-figma-mcp",
      "name": "Framelink MCP for Figma",
      "vendor": "Framelink (Graham Lipsman)",
      "vendorUrl": "https://www.framelink.ai",
      "kind": "mcp",
      "category": "design",
      "summary": "Framelink MCP for Figma is an open-source MCP server, run locally with npx, that reads Figma files through the Figma REST API and returns simplified layout and style data and image assets to coding agents.",
      "url": "https://www.anchorterminal.com/tools/framelink-figma-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/framelink-figma-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/framelink-figma-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/framelink-figma-mcp.json",
      "dns": "framelink-figma-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/GLips/Figma-Context-MCP",
      "license": "MIT",
      "transports": [
        "stdio",
        "streamable-http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "figma-developer-mcp"
        }
      ],
      "auth": "pat",
      "authNotes": "Needs the user's own Figma credential. A Figma personal access token (`FIGMA_API_KEY` or `--figma-api-key`, sent as `X-Figma-Token`) where `file_content:read` is the one scope the server strictly needs, or a Figma OAuth access token the user already holds (`FIGMA_OAUTH_TOKEN`), which the server neither obtains nor refreshes. In HTTP mode each request can carry its own token in `X-Figma-Token` or `Authorization: Bearer`. The local HTTP server has no authentication of its own and binds 127.0.0.1 by default.",
      "pricing": "free",
      "pricingNotes": "Free and MIT-licensed, run on your own machine. Calls go to the Figma REST API under the user's Figma plan and its rate limits. The site advertises a coming team product only as early access, with no price.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "A free local server with nothing to buy. No x402, MPP or L402 in the repository or the docs (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 2,
      "popularity": {
        "githubStars": 16173,
        "npmWeekly": 162432,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.framelink.ai",
      "llmsTxt": "https://docs.framelink.ai/llms.txt",
      "registryName": "io.github.GLips/Figma-Context-MCP",
      "capabilities": [
        "design.files",
        "design.code",
        "design.components"
      ],
      "tags": [
        "open-source",
        "local",
        "mcp",
        "stdio",
        "mcp-registry",
        "llms-txt",
        "typescript",
        "community",
        "free",
        "telemetry"
      ],
      "lastRelease": "2026-06-18",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.1,
        "grade": "B",
        "agentReady": false,
        "rank": 387,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 41,
          "payments": 60,
          "reliability": 68,
          "schema": 87,
          "security": 55,
          "transparency": 47
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "Reading a Figma frame into a coding agent to build matching UI.",
        "strengths": [
          "Two tools with zod input schemas and regex checks on file keys, node IDs and file names",
          "Compact `tree` output that deduplicates repeated styles and subtrees, with `nodeId` and `depth` to narrow a read",
          "Uses a Figma personal access token that needs only `file_content:read`, or a per-request token in HTTP mode",
          "MIT, in the official MCP registry under the maintainer's GitHub namespace, with a release-please changelog",
          "Docs publish llms.txt and a Markdown copy of each page, including a full tool reference"
        ],
        "weaknesses": [
          "Last release 0.13.2 on 18 June 2026, and still below 1.0",
          "The three open issues filed since May 2026 and seven outside pull requests since July have no reply",
          "PostHog telemetry is on by default, the README doesn't mention it, and an open issue says error messages can carry file keys and node IDs",
          "Read-only on Figma, so an agent cannot change a design through it",
          "No privacy policy, terms or named company on framelink.ai"
        ],
        "agentNotes": [
          "Pass the `node-id` from the Figma link as `nodeId` so the call returns one frame, not the whole file",
          "Leave `depth` unset unless the user asks, as the tool description says",
          "Set `--image-dir` to the project folder in stdio mode, or `--skip-image-downloads` when the task only reads",
          "Set `FRAMELINK_TELEMETRY=off` or `DO_NOT_TRACK=1` in 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"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.1
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 41,
          "payments": 60,
          "reliability": 68,
          "schema": 87,
          "security": 55,
          "transparency": 57
        },
        "provenanceScore": 37,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npx -y figma-developer-mcp --stdio",
        "config": {
          "mcpServers": {
            "Framelink_Figma_MCP": {
              "args": [
                "-y",
                "figma-developer-mcp",
                "--stdio"
              ],
              "command": "npx",
              "env": {
                "FIGMA_API_KEY": "YOUR-KEY"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.files",
        "tool": "https://letme.dev/framelink-figma-mcp"
      },
      "area": "design-diagrams",
      "provenance": {
        "legalEntity": "",
        "domain": "framelink.ai",
        "domainRegistered": "2025-03-22",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/GLips/Figma-Context-MCP/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "No company is named on www.framelink.ai, whose footer reads only a copyright line. The repository, the npm package and the X account linked from the site belong to Graham Lipsman (GitHub GLips, npm glips, X glipsman).",
          "No terms of service or privacy policy linked from www.framelink.ai or docs.framelink.ai.",
          "www.framelink.ai/robots.txt sets no Disallow rules for our crawler. docs.framelink.ai/robots.txt allows all paths but /_next/ and /cdn-cgi/, with Content-Signal ai-train=yes, search=yes, ai-input=yes.",
          "RDAP gives framelink.ai a registration date of 22 March 2025.",
          "/.well-known/security.txt returns 404. SECURITY.md in the repository asks for private reports through GitHub security advisories, with acknowledgement within 48 hours."
        ],
        "score": 37
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/framelink-figma-mcp.json",
      "live": {
        "slug": "framelink-figma-mcp",
        "versions": [
          {
            "registry": "github",
            "name": "GLips/Figma-Context-MCP",
            "version": "v0.13.2",
            "released": "2026-06-18",
            "seenAt": "2026-11-06T23:26:50.051758823Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.GLips/Figma-Context-MCP",
            "version": "0.13.2",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "figma-developer-mcp",
            "version": "0.13.2",
            "seenAt": "2026-11-06T23:26:49.765537974Z"
          }
        ],
        "githubStars": 16175,
        "npmWeekly": 162432,
        "securityTxt": {
          "url": "https://framelink.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:33.444843239Z"
        },
        "llmsTxt": {
          "url": "https://docs.framelink.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:32.515548222Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/GLips/Figma-Context-MCP/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:18:23.302835389Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fd50fd2f5316"
          }
        ],
        "updatedAt": "2026-11-07T18:16:28.95801333Z"
      }
    },
    "answer": "Framelink MCP for Figma scores 66.1 (B) on agent readiness against Framer Server API's 52.5 (D), and leads in 5 of 7 scored categories. Framer Server API leads on maintenance \u0026 community and transparency \u0026 trust.",
    "b": {
      "slug": "framer",
      "name": "Framer Server API",
      "vendor": "Framer",
      "vendorUrl": "https://www.framer.com",
      "kind": "http-api",
      "category": "design",
      "summary": "Framer is a website builder with a design canvas. Its Server API and remote MCP server let scripts and AI agents edit projects, CMS content and code components, and publish sites.",
      "url": "https://www.anchorterminal.com/tools/framer",
      "markdownUrl": "https://www.anchorterminal.com/tools/framer.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/framer.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/framer.json",
      "dns": "framer.grade.anchorterminal.com",
      "license": "proprietary",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.framer.com/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "framer-api"
        },
        {
          "registry": "npm",
          "name": "@framer/agent"
        }
      ],
      "auth": "mixed",
      "authNotes": "The Server API takes one API key per project, created under Site Settings, General, and passed with the project URL to `connect()`. Framer MCP signs in with OAuth (authorization code with PKCE and dynamic client registration, one scope `mcp:project`) and acts with the account's permissions on every project it can reach. `@framer/agent` asks the user to grant access to each project in the browser, and its changes land on a branch.",
      "pricing": "freemium",
      "pricingNotes": "The Server API is free during the open beta on all plans. Framer says it'll likely charge per use with a monthly free allowance, and estimates a full hour of processing at a few dollars. The MCP Server is free during the preview on every plan, including Free, and AI usage through MCP follows the client's own plan. Site plans are Free, Basic $10 a month and Pro $30 a month billed yearly, with extra editors at $20 a month and custom Enterprise pricing (https://www.framer.com/pricing).",
      "priceSummary": "$10 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No payment support in the Server API docs.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 335756,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.framer.com/developers/server-api-introduction",
      "llmsTxt": "https://www.framer.com/llms.txt",
      "capabilities": [
        "design.files",
        "design.components",
        "design.canvas",
        "design.code"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "closed-source",
        "typescript",
        "llms-txt",
        "mcp",
        "oauth",
        "beta"
      ],
      "lastRelease": "2026-10-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 52.5,
        "grade": "D",
        "agentReady": false,
        "rank": 984,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 47,
          "maintenance": 77,
          "payments": 25,
          "reliability": 43,
          "schema": 69,
          "security": 49,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "Framer's remote MCP server and the Server API both reach the canvas, components, code files and CMS, and nothing goes live until someone publishes. Both are pre-release, with no published rate limits, post-preview price or SLA. MCP sign-in has one scope covering every project the account can reach, and Server API keys can publish with no read-only option.",
        "bestFor": "Coding agents and MCP clients that build or update Framer sites, CMS content and code components.",
        "strengths": [
          "Official remote MCP server at https://mcp.framer.com/mcp with OAuth sign-in, no local bridge and no open editor needed",
          "Same surface as the Plugin API, so canvas nodes, components, code files and CMS are writable",
          "Agent changes can go on a branch for review, by default with `@framer/agent` and on request through MCP",
          "Free on every plan during the Server API beta and the MCP preview",
          "Dated changelog with breaking changes flagged by major version"
        ],
        "weaknesses": [
          "Framer MCP's OAuth has one scope, `mcp:project`, and reaches every project the signed-in account can",
          "Framer MCP is a preview without localisation support, and Framer doesn't publish its tool list",
          "No published rate limits, post-beta price or SLA for the Server API or Framer MCP",
          "Server API calls aren't transactional, so failures can leave partial edits",
          "Server API keys can publish and deploy directly, with no read-only option"
        ],
        "agentNotes": [
          "Add https://mcp.framer.com/mcp as a Streamable HTTP server and sign in to Framer in the browser. Give the agent the full project link, not the project name",
          "Ask for a Framer branch before editing through MCP, and publish only after the person has reviewed it",
          "For localisation, use `npx @framer/agent setup`, since Framer MCP doesn't support it yet",
          "With the Server API, `connect(projectUrl, process.env.FRAMER_API_KEY)`, keep batches small and idempotent, and close the connection when done",
          "Server API `publish` creates a preview deployment. Promote it with `deploy()` only after checking it, and note v5.0.0 changed CMS array fields"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 52.5
          }
        ],
        "editorialScores": {
          "ergonomics": 47,
          "maintenance": 77,
          "payments": 25,
          "reliability": 43,
          "schema": 69,
          "security": 49,
          "transparency": 58
        },
        "provenanceScore": 92,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install framer-api",
        "claudeCode": "claude mcp add --transport http --scope user framer https://mcp.framer.com/mcp",
        "config": {
          "mcpServers": {
            "framer": {
              "url": "https://mcp.framer.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.files",
        "tool": "https://letme.dev/framer"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Basic site plan",
          "unit": "month",
          "usd": 10,
          "note": "billed yearly"
        },
        {
          "item": "Pro site plan",
          "unit": "month",
          "usd": 30,
          "note": "billed yearly"
        },
        {
          "item": "Additional editor",
          "unit": "seat-month",
          "usd": 20
        }
      ],
      "provenance": {
        "legalEntity": "Framer B.V.",
        "domain": "framer.com",
        "domainRegistered": "1996-12-30",
        "domainNote": "framer.com was registered in 1996, long before Framer B.V. acquired it.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.framer.com/legal/terms-of-service/",
        "privacy": "https://www.framer.com/legal/privacy-statement/",
        "statusPage": "https://www.framerstatus.com",
        "changelog": "https://www.framer.com/developers/changelog",
        "securityTxt": "expired",
        "checked": "2026-10-24",
        "score": 92
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/framer.json",
      "live": {
        "slug": "framer",
        "probe": {
          "target": "https://mcp.framer.com/mcp",
          "method": "get",
          "lastAt": "2026-11-07T19:22:07.862872559Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 147,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 137,
          "p95ms24h": 302,
          "samples24h": 238,
          "samples30d": 3218,
          "days": [
            {
              "date": "2026-10-25",
              "probes": 102,
              "ok": 102
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.framerstatus.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:48.294943419Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@framer/agent",
            "version": "0.0.48",
            "seenAt": "2026-11-06T23:26:54.107566953Z"
          },
          {
            "registry": "npm",
            "name": "framer-api",
            "version": "5.1.0",
            "seenAt": "2026-11-06T23:26:53.60828478Z"
          }
        ],
        "npmWeekly": 213612,
        "securityTxt": {
          "url": "https://framer.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-11-01T00:00:00.000Z",
          "checkedAt": "2026-11-07T16:00:40.530878868Z"
        },
        "llmsTxt": {
          "url": "https://www.framer.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:32.765960172Z"
        },
        "domain": {
          "domain": "framer.com",
          "registered": "1996-12-30",
          "source": "https://rdap.verisign.com/com/v1/domain/framer.com",
          "checkedAt": "2026-11-01T14:20:55.085366246Z"
        },
        "pages": [
          {
            "url": "https://www.framer.com/developers/changelog",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-07T14:28:46.1861385Z",
            "changedAt": "2026-11-06T13:49:31.427669282Z",
            "fingerprint": "460f9d699453"
          },
          {
            "url": "https://www.framer.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:28:52.226841369Z",
            "changedAt": "2026-11-06T13:49:38.733407917Z",
            "fingerprint": "7829b18af6c6"
          },
          {
            "url": "https://www.framer.com/legal/privacy-statement/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:28:48.234341919Z",
            "changedAt": "2026-11-06T13:49:34.182018798Z",
            "fingerprint": "901b66df30fd"
          },
          {
            "url": "https://www.framer.com/legal/terms-of-service/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:28:50.26383085Z",
            "changedAt": "2026-11-06T13:49:36.362394237Z",
            "fingerprint": "14a4a648f2d6"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.framer.com/mcp",
          "checkedAt": "2026-11-07T01:44:39.873757578Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:44:39.873757578Z"
        },
        "updatedAt": "2026-11-07T19:22:07.862872559Z"
      }
    },
    "edges": [
      {
        "by": 36,
        "category": "ergonomics",
        "leads": "framelink-figma-mcp",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "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.",
          "b": "The Server API has no plain HTTP request. A script opens a WebSocket session through the SDK and calls Plugin API methods, and results are whole node or collection objects. Framer MCP gives MCP clients a Streamable HTTP route with no Node or local bridge, but its tool count and size weren't readable without signing in, so this line still reads the Server API (12 of 25). Node queries by type and CMS item access exist, but we found no documented page or field controls (10 of 20). No documented error codes, and a dropped connection can stop a run halfway (8 of 20). Calls aren't transactional, but `@framer/agent` puts every change on a branch, an MCP agent works on a branch when asked, and `publish` makes a preview before `deploy` promotes it. MCP tool annotations weren't readable (10 of 20). JavaScript and TypeScript only, Node 22 or later (7 of 15). Per the 24 October check, not re-read on 4 November (framer.com paused under its Acceptable Use Policy)."
        },
        "scores": {
          "a": 83,
          "b": 47
        }
      },
      {
        "by": 36,
        "category": "maintenance",
        "leads": "framer",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "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.",
          "b": "Per the 24 October check, not re-read on 4 November, Framer MCP was published on 22 October 2026, and Plugin API v5.1.0 and `framer-api` 5.1.0 on npm on 24 September (30). In the 90 days from 6 August, v5.0.0 (8 September), v5.1.0 (24 September), `@framer/agent` 0.0.47 (15 October, per the 24 October npm reading) and the Framer MCP release (22 October) are four dated entries; v4.1.0 (4 August) has left the window (20). Closed service with a public changelog, an updates page and a community forum. We didn't test support (10 of 15). Presence of Framer MCP in the official MCP registry wasn't established; the 24 October search used the registry's JSON API, which this check doesn't use (0). One official SDK, now at the Plugin API's version (10 of 15). `framer-api` 5.1.0 declares Node 22 or later and two runtime dependencies (7 of 10). Framer's Acceptable Use Policy (version 2.0, effective 9 April 2026) bars robots and other automatic devices from accessing any content hosted by Framer, so framer.com hosts and framerstatus.com weren't re-read on 4 November and this note rests on the 24 October check."
        },
        "scores": {
          "a": 41,
          "b": 77
        }
      },
      {
        "by": 35,
        "category": "payments",
        "leads": "framelink-figma-mcp",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "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.",
          "b": "No machine payment protocol (0). The Server API is free during beta and Framer says it'll 'likely charge for this API on a per-use basis, with a monthly free allowance', with no price set. The pricing page lists the MCP Server as 'Free during preview' with no later price. Site plans are public (5 of 20). Free on every plan, including the Free site plan, during the Server API beta and the MCP preview (20). A person creates the key in Site Settings, approves `@framer/agent` in a browser or signs in to Framer to approve an MCP client. Dynamic client registration registers the client, not an account (0). Per the 24 October check, not re-read on 4 November (framer.com paused under its Acceptable Use Policy)."
        },
        "scores": {
          "a": 60,
          "b": 25
        }
      },
      {
        "by": 28,
        "category": "transparency",
        "leads": "framer",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "MIT licence in the repository and on npm (30). No privacy policy or terms on framelink.ai or the docs. Design data goes from Figma to the local model client, and the docs describe what telemetry sends, but there is no data statement to agree with (8 of 30). No deprecation policy. Breaking defaults are called out in the changelog (5 of 20). Telemetry to PostHog (us.i.posthog.com) has been on by default since 0.10.0 on 10 April 2026. The configuration page discloses it with three ways to opt out, while the README doesn't mention it, and an open issue of 16 April 2026 reports that `error_message` can include file keys and node IDs, which the source's redaction (credentials only) doesn't cover (14 of 20). 30 + 8 + 5 + 14 = 57.",
          "b": "Closed service under published terms, version 1.8 effective 16 June 2026, whose definition of the Service excludes Framer APIs. `framer-api` is MIT on npm, and `@framer/agent` 0.0.47 declares no licence (18 of 30). Privacy statement version 1.7 of 12 June 2026 names Framer B.V., gives retention periods (transaction data 7 years, account data up to 2 years after closure) and links a DPA. Its AI line only covers training 'third-party general-purpose AI models' on personal data (22 of 30). Breaking changes are flagged by major version, such as the v4.0.0 package rename and v5.0.0 CMS array fields, with no deprecation policy or notice period. The External Agents page is now labelled legacy and stays supported 'while Framer MCP reaches feature parity', with no end date (8 of 20). Transfer countries are listed in the Trust Center per the privacy statement. We didn't confirm a subprocessor list (10 of 20). Per the 24 October check, not re-read on 4 November (framer.com paused under its Acceptable Use Policy)."
        },
        "scores": {
          "a": 47,
          "b": 75
        }
      },
      {
        "by": 25,
        "category": "reliability",
        "leads": "framelink-figma-mcp",
        "name": "Reliability",
        "reasons": {
          "a": "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.",
          "b": "Per the 24 October check, not re-read on 4 November, Framer runs a Better Stack status page at framerstatus.com with App, Editor, API, Hosting, Sites, Website and Community components, and no component for Framer MCP (20). Its RSS feed showed three incidents in the 90 days to 24 October 2026, analytics collection degraded at a third-party provider for about 1 hour 15 minutes on 12 August, elevated errors in the AI tools for 1 hour 15 minutes on 22 September and the Editor unavailable for 39 minutes on 14 October, with the API component at 100 per cent over 30 days. Minor only. 25 October to 4 November is unread and gets no credit of its own (20 of 30, kept). No rate limits published for the Server API or Framer MCP (0). No 429 or retry guidance. The FAQ says the API 'is not in any way transactional' and scripts must handle partial failures themselves (3 of 15, partial kept). No SLA published. The Enterprise plan lists an 'Uptime guarantee' without published terms (0). The Server API is in open beta and Framer MCP is labelled preview on the pricing page (0 of 10). Framer's Acceptable Use Policy (version 2.0, effective 9 April 2026) bars robots and other automatic devices from accessing any content hosted by Framer, so framer.com hosts and framerstatus.com weren't re-read on 4 November and this note rests on the 24 October check."
        },
        "scores": {
          "a": 68,
          "b": 43
        }
      },
      {
        "by": 18,
        "category": "schema",
        "leads": "framelink-figma-mcp",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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.",
          "b": "No OpenAPI or REST contract. The Server API's contract is the TypeScript types in the `framer-api` SDK over a WebSocket (12 of 25). llms.txt at framer.com, re-read on 24 October (10). The Plugin API reference documents each method, and `@framer/agent` installs skills that tell coding agents how to use it (12 of 20). Typed TypeScript inputs with union types for node and field kinds (12 of 15). Quick-start examples and a REST-wrapper example on GitHub. No error reference found (8 of 15). A dated changelog with semver and breaking changes flagged, v4.1.0 on 4 August, v5.0.0 on 8 September and v5.1.0 on 24 September 2026, and a dated updates page that announced Framer MCP on 22 October (15). Framer doesn't publish Framer MCP's tool definitions and listing them needs an OAuth sign-in, so this score still reads the Server API. Per the 24 October check, not re-read on 4 November (framer.com paused under its Acceptable Use Policy)."
        },
        "scores": {
          "a": 87,
          "b": 69
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Framelink (Graham Lipsman)",
        "b": "Framer",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://mcp.framer.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "Token",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "proprietary",
        "name": "Licence"
      },
      {
        "a": "2",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.GLips/Figma-Context-MCP",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-06-18",
        "b": "2026-10-22",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "16k stars, 162k npm/wk",
        "b": "336k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Framelink MCP for Figma scores 66.1 (B) on agent readiness against Framer Server API's 52.5 (D), and leads in 5 of 7 scored categories. Framer Server API leads on maintenance \u0026 community and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Framelink MCP for Figma or Framer Server API?"
      },
      {
        "answer": "Framelink MCP for Figma needs an access token. Framer Server API takes an API key or an OAuth sign-in.",
        "question": "Do Framelink MCP for Figma and Framer Server API need an API key?"
      },
      {
        "answer": "Framelink MCP for Figma runs on your own machine, with no hosted endpoint listed. Framer Server API has a hosted endpoint at https://mcp.framer.com/mcp.",
        "question": "Can an agent call Framelink MCP for Figma and Framer Server API without installing anything?"
      },
      {
        "answer": "Framelink MCP for Figma is open source (MIT). No open-source release is listed for Framer Server API.",
        "question": "Are Framelink MCP for Figma and Framer Server API open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 68 against 43",
          "Schema \u0026 documentation, 87 against 69",
          "Agent ergonomics, 83 against 47",
          "Security \u0026 auth, 55 against 49",
          "Payments \u0026 pricing, 60 against 25"
        ],
        "also": [
          "Runs on your own machine",
          "Open source"
        ],
        "goodFor": "Reading a Figma frame into a coding agent to build matching UI.",
        "slug": "framelink-figma-mcp",
        "watchFor": "Last release 0.13.2 on 18 June 2026, and still below 1.0"
      },
      {
        "aheadOn": [
          "Maintenance \u0026 community, 77 against 41",
          "Transparency \u0026 trust, 75 against 47"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "Coding agents and MCP clients that build or update Framer sites, CMS content and code components.",
        "slug": "framer",
        "watchFor": "Framer MCP's OAuth has one scope, `mcp:project`, and reaches every project the signed-in account can"
      }
    ],
    "history": {
      "framelink-figma-mcp": null,
      "framer": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-04",
          "delta": -0.1,
          "from": 52.6,
          "fromGrade": "D",
          "to": 52.5,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.2,
          "from": 52.8,
          "fromGrade": "D",
          "to": 52.6,
          "toGrade": "D"
        }
      ]
    },
    "job": {
      "capability": "design.files",
      "name": "Design files"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/figma-mcp-vs-framelink-figma-mcp.json",
        "title": "Figma API + MCP vs Framelink MCP for Figma",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-framelink-figma-mcp"
      },
      {
        "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/framelink-figma-mcp-vs-kite-new.json",
        "title": "Framelink MCP for Figma vs Kite",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-kite-new"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-magic-patterns.json",
        "title": "Framelink MCP for Figma vs Magic Patterns",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-magic-patterns"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-melius.json",
        "title": "Framelink MCP for Figma vs Melius",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-melius"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-miro.json",
        "title": "Framelink MCP for Figma vs Miro API + MCP",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-miro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-pen-dev.json",
        "title": "Framelink MCP for Figma vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-pen-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-penpot.json",
        "title": "Framelink MCP for Figma vs Penpot API + MCP",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-penpot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-sketch.json",
        "title": "Framelink MCP for Figma vs Sketch",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-sketch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-subframe.json",
        "title": "Framelink MCP for Figma vs Subframe",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-subframe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-zeplin.json",
        "title": "Framelink MCP for Figma vs Zeplin",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-zeplin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-kite-new.json",
        "title": "Framer Server API vs Kite",
        "url": "https://www.anchorterminal.com/compare/framer-vs-kite-new"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-magic-patterns.json",
        "title": "Framer Server API vs Magic Patterns",
        "url": "https://www.anchorterminal.com/compare/framer-vs-magic-patterns"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-melius.json",
        "title": "Framer Server API vs Melius",
        "url": "https://www.anchorterminal.com/compare/framer-vs-melius"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-miro.json",
        "title": "Framer Server API vs Miro API + MCP",
        "url": "https://www.anchorterminal.com/compare/framer-vs-miro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-pen-dev.json",
        "title": "Framer Server API vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/framer-vs-pen-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-penpot.json",
        "title": "Framer Server API vs Penpot API + MCP",
        "url": "https://www.anchorterminal.com/compare/framer-vs-penpot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-sketch.json",
        "title": "Framer Server API vs Sketch",
        "url": "https://www.anchorterminal.com/compare/framer-vs-sketch"
      },
      {
        "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/framer-vs-zeplin.json",
        "title": "Framer Server API vs Zeplin",
        "url": "https://www.anchorterminal.com/compare/framer-vs-zeplin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-impeccable.json",
        "title": "Framelink MCP for Figma vs Impeccable",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-impeccable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-ux-pilot-mcp.json",
        "title": "Framelink MCP for Figma vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-ux-pilot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-impeccable.json",
        "title": "Framer Server API vs Impeccable",
        "url": "https://www.anchorterminal.com/compare/framer-vs-impeccable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-ux-pilot-mcp.json",
        "title": "Framer Server API vs UX Pilot MCP server",
        "url": "https://www.anchorterminal.com/compare/framer-vs-ux-pilot-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-uxkin-agent.json",
        "title": "Framelink MCP for Figma vs UXKIN",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-uxkin-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framer-vs-uxkin-agent.json",
        "title": "Framer Server API vs UXKIN",
        "url": "https://www.anchorterminal.com/compare/framer-vs-uxkin-agent"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 25,
        "edge": "framelink-figma-mcp",
        "framelink-figma-mcp": 68,
        "framer": 43,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 18,
        "edge": "framelink-figma-mcp",
        "framelink-figma-mcp": 87,
        "framer": 69,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 36,
        "edge": "framelink-figma-mcp",
        "framelink-figma-mcp": 83,
        "framer": 47,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 6,
        "edge": "framelink-figma-mcp",
        "framelink-figma-mcp": 55,
        "framer": 49,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 35,
        "edge": "framelink-figma-mcp",
        "framelink-figma-mcp": 60,
        "framer": 25,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 36,
        "edge": "framer",
        "framelink-figma-mcp": 41,
        "framer": 77,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 28,
        "edge": "framer",
        "framelink-figma-mcp": 47,
        "framer": 75,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Framelink MCP for Figma scores 66.1 (B) on agent readiness against Framer Server API's 52.5 (D), and leads in 5 of 7 scored categories. Framer Server API leads on maintenance \u0026 community and transparency \u0026 trust. Both do design files.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "framelink-figma-mcp": "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.",
      "framer": "Framer's remote MCP server and the Server API both reach the canvas, components, code files and CMS, and nothing goes live until someone publishes. Both are pre-release, with no published rate limits, post-preview price or SLA. MCP sign-in has one scope covering every project the account can reach, and Server API keys can publish with no read-only option."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-framer",
    "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-framer.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-framer.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-framer.min.md"
  },
  "markdown": "Framelink MCP for Figma scores 66.1 (B) on agent readiness against Framer Server API's 52.5 (D), and leads in 5 of 7 scored categories. Framer Server API leads on maintenance \u0026 community and transparency \u0026 trust. Both do design files.\n\n- 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\n- Framer Server API: grade D, 52.5/100, rank #984 of 1510. Markdown https://www.anchorterminal.com/tools/framer.md · JSON https://www.anchorterminal.com/api/v1/tools/framer.json\n- Best design workspace and canvas APIs for AI agents: https://www.anchorterminal.com/best/design/index.md\n- All 133 design comparisons: https://www.anchorterminal.com/compare/design/index.md\n\n## Which one, for what\n\n### Framelink MCP for Figma (B)\n\nGood for: Reading a Figma frame into a coding agent to build matching UI.\n\nAhead on:\n- Reliability, 68 against 43\n- Schema \u0026 documentation, 87 against 69\n- Agent ergonomics, 83 against 47\n- Security \u0026 auth, 55 against 49\n- Payments \u0026 pricing, 60 against 25\n\nAlso in its favour:\n- Runs on your own machine\n- Open source\n\nWatch for: Last release 0.13.2 on 18 June 2026, and still below 1.0\n\n### Framer Server API (D)\n\nGood for: Coding agents and MCP clients that build or update Framer sites, CMS content and code components.\n\nAhead on:\n- Maintenance \u0026 community, 77 against 41\n- Transparency \u0026 trust, 75 against 47\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: Framer MCP's OAuth has one scope, `mcp:project`, and reaches every project the signed-in account can\n\n\n## Why the edge\n\n### Agent ergonomics: Framelink MCP for Figma +36\n\n- 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.\n- Framer Server API (47): The Server API has no plain HTTP request. A script opens a WebSocket session through the SDK and calls Plugin API methods, and results are whole node or collection objects. Framer MCP gives MCP clients a Streamable HTTP route with no Node or local bridge, but its tool count and size weren't readable without signing in, so this line still reads the Server API (12 of 25). Node queries by type and CMS item access exist, but we found no documented page or field controls (10 of 20). No documented error codes, and a dropped connection can stop a run halfway (8 of 20). Calls aren't transactional, but `@framer/agent` puts every change on a branch, an MCP agent works on a branch when asked, and `publish` makes a preview before `deploy` promotes it. MCP tool annotations weren't readable (10 of 20). JavaScript and TypeScript only, Node 22 or later (7 of 15). Per the 24 October check, not re-read on 4 November (framer.com paused under its Acceptable Use Policy).\n\n### Maintenance \u0026 community: Framer Server API +36\n\n- 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.\n- Framer Server API (77): Per the 24 October check, not re-read on 4 November, Framer MCP was published on 22 October 2026, and Plugin API v5.1.0 and `framer-api` 5.1.0 on npm on 24 September (30). In the 90 days from 6 August, v5.0.0 (8 September), v5.1.0 (24 September), `@framer/agent` 0.0.47 (15 October, per the 24 October npm reading) and the Framer MCP release (22 October) are four dated entries; v4.1.0 (4 August) has left the window (20). Closed service with a public changelog, an updates page and a community forum. We didn't test support (10 of 15). Presence of Framer MCP in the official MCP registry wasn't established; the 24 October search used the registry's JSON API, which this check doesn't use (0). One official SDK, now at the Plugin API's version (10 of 15). `framer-api` 5.1.0 declares Node 22 or later and two runtime dependencies (7 of 10). Framer's Acceptable Use Policy (version 2.0, effective 9 April 2026) bars robots and other automatic devices from accessing any content hosted by Framer, so framer.com hosts and framerstatus.com weren't re-read on 4 November and this note rests on the 24 October check.\n\n### Payments \u0026 pricing: Framelink MCP for Figma +35\n\n- 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.\n- Framer Server API (25): No machine payment protocol (0). The Server API is free during beta and Framer says it'll 'likely charge for this API on a per-use basis, with a monthly free allowance', with no price set. The pricing page lists the MCP Server as 'Free during preview' with no later price. Site plans are public (5 of 20). Free on every plan, including the Free site plan, during the Server API beta and the MCP preview (20). A person creates the key in Site Settings, approves `@framer/agent` in a browser or signs in to Framer to approve an MCP client. Dynamic client registration registers the client, not an account (0). Per the 24 October check, not re-read on 4 November (framer.com paused under its Acceptable Use Policy).\n\n### Transparency \u0026 trust: Framer Server API +28\n\n- Framelink MCP for Figma (47): MIT licence in the repository and on npm (30). No privacy policy or terms on framelink.ai or the docs. Design data goes from Figma to the local model client, and the docs describe what telemetry sends, but there is no data statement to agree with (8 of 30). No deprecation policy. Breaking defaults are called out in the changelog (5 of 20). Telemetry to PostHog (us.i.posthog.com) has been on by default since 0.10.0 on 10 April 2026. The configuration page discloses it with three ways to opt out, while the README doesn't mention it, and an open issue of 16 April 2026 reports that `error_message` can include file keys and node IDs, which the source's redaction (credentials only) doesn't cover (14 of 20). 30 + 8 + 5 + 14 = 57.\n- Framer Server API (75): Closed service under published terms, version 1.8 effective 16 June 2026, whose definition of the Service excludes Framer APIs. `framer-api` is MIT on npm, and `@framer/agent` 0.0.47 declares no licence (18 of 30). Privacy statement version 1.7 of 12 June 2026 names Framer B.V., gives retention periods (transaction data 7 years, account data up to 2 years after closure) and links a DPA. Its AI line only covers training 'third-party general-purpose AI models' on personal data (22 of 30). Breaking changes are flagged by major version, such as the v4.0.0 package rename and v5.0.0 CMS array fields, with no deprecation policy or notice period. The External Agents page is now labelled legacy and stays supported 'while Framer MCP reaches feature parity', with no end date (8 of 20). Transfer countries are listed in the Trust Center per the privacy statement. We didn't confirm a subprocessor list (10 of 20). Per the 24 October check, not re-read on 4 November (framer.com paused under its Acceptable Use Policy).\n\n### Reliability: Framelink MCP for Figma +25\n\n- 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.\n- Framer Server API (43): Per the 24 October check, not re-read on 4 November, Framer runs a Better Stack status page at framerstatus.com with App, Editor, API, Hosting, Sites, Website and Community components, and no component for Framer MCP (20). Its RSS feed showed three incidents in the 90 days to 24 October 2026, analytics collection degraded at a third-party provider for about 1 hour 15 minutes on 12 August, elevated errors in the AI tools for 1 hour 15 minutes on 22 September and the Editor unavailable for 39 minutes on 14 October, with the API component at 100 per cent over 30 days. Minor only. 25 October to 4 November is unread and gets no credit of its own (20 of 30, kept). No rate limits published for the Server API or Framer MCP (0). No 429 or retry guidance. The FAQ says the API 'is not in any way transactional' and scripts must handle partial failures themselves (3 of 15, partial kept). No SLA published. The Enterprise plan lists an 'Uptime guarantee' without published terms (0). The Server API is in open beta and Framer MCP is labelled preview on the pricing page (0 of 10). Framer's Acceptable Use Policy (version 2.0, effective 9 April 2026) bars robots and other automatic devices from accessing any content hosted by Framer, so framer.com hosts and framerstatus.com weren't re-read on 4 November and this note rests on the 24 October check.\n\n### Schema \u0026 documentation: Framelink MCP for Figma +18\n\n- 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.\n- Framer Server API (69): No OpenAPI or REST contract. The Server API's contract is the TypeScript types in the `framer-api` SDK over a WebSocket (12 of 25). llms.txt at framer.com, re-read on 24 October (10). The Plugin API reference documents each method, and `@framer/agent` installs skills that tell coding agents how to use it (12 of 20). Typed TypeScript inputs with union types for node and field kinds (12 of 15). Quick-start examples and a REST-wrapper example on GitHub. No error reference found (8 of 15). A dated changelog with semver and breaking changes flagged, v4.1.0 on 4 August, v5.0.0 on 8 September and v5.1.0 on 24 September 2026, and a dated updates page that announced Framer MCP on 22 October (15). Framer doesn't publish Framer MCP's tool definitions and listing them needs an OAuth sign-in, so this score still reads the Server API. Per the 24 October check, not re-read on 4 November (framer.com paused under its Acceptable Use Policy).\n\n## Score by category\n\n| Category | Weight | Framelink MCP for Figma | Framer Server API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 43 | Framelink MCP for Figma +25 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 87 | 69 | Framelink MCP for Figma +18 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 47 | Framelink MCP for Figma +36 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 49 | Framelink MCP for Figma +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 25 | Framelink MCP for Figma +35 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 41 | 77 | Framer Server API +36 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 47 | 75 | Framer Server API +28 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **66.1 · B** | **52.5 · D** | |\n\n## Facts side by side\n\n| Fact | Framelink MCP for Figma | Framer Server API |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | Framelink (Graham Lipsman) | Framer |\n| Hosted endpoint | no (local only) | `https://mcp.framer.com/mcp` |\n| Transports | stdio, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | Token | OAuth or key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | MIT | proprietary |\n| Tools exposed | 2 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.GLips/Figma-Context-MCP` | not listed |\n| Last release | 2026-06-18 | 2026-10-22 |\n| Terms last updated | no document linked | no date given |\n| Privacy policy last updated | no document linked | no date given |\n| Customer content may train models | not read yet | not found in the text |\n| Terms restrict automated access | not read yet | not found in the text |\n| Terms restrict benchmarking | not read yet | yes |\n| Terms or service can change without notice | not read yet | not found in the text |\n| Arbitration or class-action waiver | not read yet | not found in the text |\n| Popularity | 16k stars, 162k npm/wk | 336k npm/wk |\n| Agent reviews | none | 3/5 (4) |\n\n## How the scores have moved\n\n### Framelink MCP for Figma\n\nNo score change since it was listed.\n\n### Framer Server API\n\n- -0.1 on 4 November 2026: correction\n- -0.2 on 8 October 2026: checklist\n\n## Verdicts\n\n**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.\n\n**Framer Server API.** Framer's remote MCP server and the Server API both reach the canvas, components, code files and CMS, and nothing goes live until someone publishes. Both are pre-release, with no published rate limits, post-preview price or SLA. MCP sign-in has one scope covering every project the account can reach, and Server API keys can publish with no read-only option.\n\n## Before you call either\n\n### Framelink MCP for Figma\n\n1. Pass the `node-id` from the Figma link as `nodeId` so the call returns one frame, not the whole file\n2. Leave `depth` unset unless the user asks, as the tool description says\n3. Set `--image-dir` to the project folder in stdio mode, or `--skip-image-downloads` when the task only reads\n4. Set `FRAMELINK_TELEMETRY=off` or `DO_NOT_TRACK=1` in the server's env if the user's policy forbids usage reporting\n5. On a 429 from Figma, wait and retry later; the limit is the user's Figma plan, not the server's\n\n### Framer Server API\n\n1. Add https://mcp.framer.com/mcp as a Streamable HTTP server and sign in to Framer in the browser. Give the agent the full project link, not the project name\n2. Ask for a Framer branch before editing through MCP, and publish only after the person has reviewed it\n3. For localisation, use `npx @framer/agent setup`, since Framer MCP doesn't support it yet\n4. With the Server API, `connect(projectUrl, process.env.FRAMER_API_KEY)`, keep batches small and idempotent, and close the connection when done\n5. Server API `publish` creates a preview deployment. Promote it with `deploy()` only after checking it, and note v5.0.0 changed CMS array fields\n\n## Questions\n\n### Which is better for AI agents, Framelink MCP for Figma or Framer Server API?\n\nFramelink MCP for Figma scores 66.1 (B) on agent readiness against Framer Server API's 52.5 (D), and leads in 5 of 7 scored categories. Framer Server API leads on maintenance \u0026 community and transparency \u0026 trust.\n\n### Do Framelink MCP for Figma and Framer Server API need an API key?\n\nFramelink MCP for Figma needs an access token. Framer Server API takes an API key or an OAuth sign-in.\n\n### Can an agent call Framelink MCP for Figma and Framer Server API without installing anything?\n\nFramelink MCP for Figma runs on your own machine, with no hosted endpoint listed. Framer Server API has a hosted endpoint at https://mcp.framer.com/mcp.\n\n### Are Framelink MCP for Figma and Framer Server API open source?\n\nFramelink MCP for Figma is open source (MIT). No open-source release is listed for Framer Server API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-framer.json, and with the fewest tokens: https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-framer.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"framelink-figma-mcp\", \"b\": \"framer\"}`. From a terminal: `anchor compare framelink-figma-mcp framer`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/framelink-figma-mcp.json and https://www.anchorterminal.com/api/v1/tools/framer.json\n\n## Other comparisons with Framelink MCP for Figma or Framer Server API\n\n- [Figma API + MCP vs Framelink MCP for Figma](https://www.anchorterminal.com/compare/figma-mcp-vs-framelink-figma-mcp.md)\n- [Figma API + MCP vs Framer Server API](https://www.anchorterminal.com/compare/figma-mcp-vs-framer.md)\n- [Framelink MCP for Figma vs Kite](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-kite-new.md)\n- [Framelink MCP for Figma vs Magic Patterns](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-magic-patterns.md)\n- [Framelink MCP for Figma vs Melius](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-melius.md)\n- [Framelink MCP for Figma vs Miro API + MCP](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-miro.md)\n- [Framelink MCP for Figma vs pen.dev](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-pen-dev.md)\n- [Framelink MCP for Figma vs Penpot API + MCP](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-penpot.md)\n- [Framelink MCP for Figma vs Sketch](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-sketch.md)\n- [Framelink MCP for Figma vs Subframe](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-subframe.md)\n- [Framelink MCP for Figma vs Zeplin](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-zeplin.md)\n- [Framer Server API vs Kite](https://www.anchorterminal.com/compare/framer-vs-kite-new.md)\n- [Framer Server API vs Magic Patterns](https://www.anchorterminal.com/compare/framer-vs-magic-patterns.md)\n- [Framer Server API vs Melius](https://www.anchorterminal.com/compare/framer-vs-melius.md)\n- [Framer Server API vs Miro API + MCP](https://www.anchorterminal.com/compare/framer-vs-miro.md)\n- [Framer Server API vs pen.dev](https://www.anchorterminal.com/compare/framer-vs-pen-dev.md)\n- [Framer Server API vs Penpot API + MCP](https://www.anchorterminal.com/compare/framer-vs-penpot.md)\n- [Framer Server API vs Sketch](https://www.anchorterminal.com/compare/framer-vs-sketch.md)\n- [Framer Server API vs Subframe](https://www.anchorterminal.com/compare/framer-vs-subframe.md)\n- [Framer Server API vs Zeplin](https://www.anchorterminal.com/compare/framer-vs-zeplin.md)\n- [Framelink MCP for Figma vs Impeccable](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-impeccable.md)\n- [Framelink MCP for Figma vs UX Pilot MCP server](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-ux-pilot-mcp.md)\n- [Framer Server API vs Impeccable](https://www.anchorterminal.com/compare/framer-vs-impeccable.md)\n- [Framer Server API vs UX Pilot MCP server](https://www.anchorterminal.com/compare/framer-vs-ux-pilot-mcp.md)\n- [Framelink MCP for Figma vs UXKIN](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-uxkin-agent.md)\n- [Framer Server API vs UXKIN](https://www.anchorterminal.com/compare/framer-vs-uxkin-agent.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Framelink MCP for Figma vs Framer Server API",
        "url": ""
      }
    ],
    "description": "Framelink MCP for Figma scores 66.1 (B) to Framer Server's 52.5 (D) for design files. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Framelink MCP for Figma B 66.1",
      "Framer Server API D 52.5",
      "scores"
    ],
    "h1": "Framelink MCP for Figma vs Framer Server API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/framelink-figma-mcp-vs-framer",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Framelink MCP for Figma vs Framer Server for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-framer"
  },
  "tokens": {
    "markdown": 5450,
    "slim": 3430
  },
  "version": 1
}
