{
  "data": {
    "a": {
      "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": 978,
        "ranked": true,
        "rankOf": 1486,
        "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-07T18:20:25.73128669Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 151,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 137,
          "p95ms24h": 305,
          "samples24h": 239,
          "samples30d": 3208,
          "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": 187,
              "ok": 187
            }
          ]
        },
        "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-07T18:20:25.73128669Z"
      }
    },
    "answer": "Magic Patterns scores 63.4 (B) on agent readiness against Framer Server API's 52.5 (D), and leads in 4 of 7 scored categories. Framer Server API leads on maintenance \u0026 community and transparency \u0026 trust.",
    "b": {
      "slug": "magic-patterns",
      "name": "Magic Patterns",
      "vendor": "North Park Labs, Inc. (Magic Patterns)",
      "vendorUrl": "https://www.magicpatterns.com",
      "kind": "mcp",
      "category": "design",
      "summary": "Magic Patterns is an AI design workspace where product teams generate interactive React prototypes from prompts and their own design system. Agents reach it through a hosted MCP server and a v3 REST API that mirrors it.",
      "url": "https://www.anchorterminal.com/tools/magic-patterns",
      "markdownUrl": "https://www.anchorterminal.com/tools/magic-patterns.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/magic-patterns.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/magic-patterns.json",
      "dns": "magic-patterns.grade.anchorterminal.com",
      "license": "Closed service under the Magic Patterns terms of service (last updated 1 April 2025)",
      "transports": [
        "streamable-http",
        "http"
      ],
      "remoteUrl": "https://mcp.magicpatterns.com/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "The hosted MCP server signs in with OAuth 2.1 (PKCE S256, dynamic client registration, client ID metadata documents and a device flow, at oauth.magicpatterns.com on WorkOS). Scopes are identity only (openid, email, profile, offline_access), so access follows the user's workspace role. An API key from Settings \u003e API Keys, shown once, works for MCP as `Authorization: Bearer` and for REST as `x-mp-api-key`. A read-only MCP endpoint at /mcp/readonly takes the same credentials.",
      "pricing": "freemium",
      "pricingNotes": "MCP access needs a paid plan, Starter $20 a seat a month ($17 yearly) with 1,000 credits on top of the free monthly credits, or Business $100 ($85 yearly) with 5,000. On-demand credits beyond that cost $0.02 each on paid plans. One generation typically uses about 70 credits per the docs. Free plan $0 with free monthly credits.",
      "priceSummary": "$20 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Subscription credits billed through Stripe. No x402, MPP or L402 in the docs, the v3 OpenAPI or llms.txt (checked 2026-11-06). Out of credits returns 402 with no payment requirements.",
        "endpoints": []
      },
      "toolCount": 24,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://www.magicpatterns.com/docs",
      "llmsTxt": "https://www.magicpatterns.com/docs/llms.txt",
      "openapi": "https://www.magicpatterns.com/docs/api/create-design.md",
      "capabilities": [
        "design.code",
        "design.files",
        "design.components",
        "design.canvas"
      ],
      "tags": [
        "hosted",
        "mcp",
        "remote-mcp",
        "oauth",
        "api-key",
        "read-only-mode",
        "llms-txt",
        "openapi",
        "freemium",
        "status-page",
        "yc"
      ],
      "lastRelease": "2026-11-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.4,
        "grade": "B",
        "agentReady": false,
        "rank": 517,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 4,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 70,
          "payments": 23,
          "reliability": 75,
          "schema": 84,
          "security": 55,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Agents can create, prompt, read and edit coded prototypes through 24 documented MCP tools or a matching REST API, with a read-only endpoint and 409 conflict checks on writes. MCP access needs a paid seat from $20 a month, OAuth scopes don't narrow access below the user's role, and the status page doesn't track the API or MCP server.",
        "bestFor": "Generating and iterating on coded React prototypes from a coding agent, and pulling a design into a codebase.",
        "strengths": [
          "A read-only MCP endpoint that does not register the 13 tools that create, change or publish",
          "Workflows, polling intervals and tool order documented for agents, with llms.txt and Markdown pages",
          "v3 REST API with an OpenAPI 3.0.3 description that mirrors the MCP tools, so one key works for both",
          "Writes carry a base artifact ID and fail with 409 on a concurrent change",
          "Dated product changelog with entries from 2026-08-03 to 2026-11-05"
        ],
        "weaknesses": [
          "MCP and API-key access need a paid seat, Starter at $20 a month",
          "OAuth scopes are identity only, so a token can do whatever the user's workspace role allows",
          "No 429 or backoff guidance and no idempotency keys; generations take 2 to 10 minutes and must be polled",
          "The status page tracks the web platform and Figma plugin, not the API or MCP server",
          "Free plan inputs and designs may be used for training and shown publicly, per the terms"
        ],
        "agentNotes": [
          "Use https://mcp.magicpatterns.com/mcp/readonly when the task only reads designs",
          "Call `get_design_status` before any change and poll it no more than once every 60 seconds",
          "Pass `baseArtifactId` from `get_design_system` on writes, and on 409 re-read before retrying",
          "Treat a 402 as out of credits and ask the user; read tools keep working",
          "Send `x-mp-agent-name` so the user sees which agent made a change"
        ],
        "metrics": {
          "kind": "remote",
          "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": 63.4
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 70,
          "payments": 23,
          "reliability": 75,
          "schema": 84,
          "security": 55,
          "transparency": 42
        },
        "provenanceScore": 78,
        "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": {
        "http": "curl https://api.magicpatterns.com/api/v3/health -H \"x-mp-api-key: mp_live_...\"",
        "claudeCode": "claude mcp add --transport http magic-patterns https://mcp.magicpatterns.com/mcp",
        "config": {
          "mcpServers": {
            "magic-patterns": {
              "url": "https://mcp.magicpatterns.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.code",
        "tool": "https://letme.dev/magic-patterns"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Starter seat",
          "unit": "seat-month",
          "usd": 20,
          "note": "$17 billed yearly, 1,000 credits on top of the free monthly credits"
        },
        {
          "item": "Business seat",
          "unit": "seat-month",
          "usd": 100,
          "note": "$85 billed yearly, 5,000 credits on top of the free monthly credits"
        },
        {
          "item": "On-demand credit",
          "unit": "credit",
          "usd": 0.02,
          "note": "Paid plans only, after monthly credits run out. A generation typically uses about 70 credits"
        }
      ],
      "provenance": {
        "legalEntity": "North Park Labs, Inc.",
        "domain": "magicpatterns.com",
        "domainRegistered": "2023-10-23",
        "endpointOnVendorDomain": true,
        "terms": "https://www.magicpatterns.com/docs/documentation/legal/terms",
        "privacy": "https://www.magicpatterns.com/docs/documentation/legal/privacy",
        "statusPage": "https://magicpatterns.statuspage.io/",
        "changelog": "https://www.magicpatterns.com/docs/documentation/feature-releases/changelog",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The terms and privacy policy, both last updated 1 April 2025, name North Park Labs, Inc. d.b.a. Magic Patterns, under Delaware law.",
          "The terms forbid accessing or searching the Services by any means other than the provided interfaces (for example, scraping) and bots that send requests faster than a person could. Public docs pages were read as data.",
          "www.magicpatterns.com/robots.txt disallows /private/, /settings/, /api/ and /_next/ and allows the docs. magicpatterns.statuspage.io/robots.txt disallows /api/ and /embed/, so status history was read from the page and its Atom feed.",
          "/.well-known/security.txt returns 404. The security docs page links a Trust Center at trust.magicpatterns.com for SOC 2 reports and subprocessors, which is drawn by script and wasn't read.",
          "RDAP gives magicpatterns.com a registration date of 23 October 2023. The company was founded in 2023 per its Y Combinator page."
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/magic-patterns.json",
      "live": {
        "slug": "magic-patterns",
        "probe": {
          "target": "https://mcp.magicpatterns.com/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-11-07T18:20:36.546371661Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 191,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 200,
          "p95ms24h": 512,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://magicpatterns.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T18:21:21.341572331Z"
        },
        "securityTxt": {
          "url": "https://magicpatterns.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:36.740973899Z"
        },
        "llmsTxt": {
          "url": "https://www.magicpatterns.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:55.846864963Z"
        },
        "pages": [
          {
            "url": "https://www.magicpatterns.com/docs/documentation/feature-releases/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:31:04.926757349Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1d6fc782fb69"
          },
          {
            "url": "https://www.magicpatterns.com/docs/documentation/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:31:07.60138431Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "98e04acdbe99"
          },
          {
            "url": "https://www.magicpatterns.com/docs/documentation/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:31:09.211996324Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "264ce0076e25"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.magicpatterns.com/mcp",
          "checkedAt": "2026-11-07T01:46:04.045898155Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:46:04.045898155Z"
        },
        "updatedAt": "2026-11-07T18:21:21.341572331Z"
      }
    },
    "edges": [
      {
        "by": 32,
        "category": "reliability",
        "leads": "magic-patterns",
        "name": "Reliability",
        "reasons": {
          "a": "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.",
          "b": "Hosted lines, for the MCP server and v3 API. A Statuspage at magicpatterns.statuspage.io with incident history, but its two components are Web Platform and Figma Plugin, with nothing for the API or MCP server (15 of 20). The history page and Atom feed post no incident since 9 January 2026, so the 90 days before this check are clean as far as the page covers (30). The page's /api/ path is disallowed by its robots.txt, so the JSON feeds weren't used. Rate limit published as 1,000 generations per 10 hours per key, with polling no faster than once every 60 seconds (15). No 429, Retry-After or backoff guidance and no idempotency keys. Design-system writes take a `baseArtifactId` and return 409 on a concurrent change, with re-read-and-retry advice (5 of 15). No SLA found below Enterprise's custom contracts (0). The MCP server and v3 API carry no beta label (10). 15 + 30 + 15 + 5 + 0 + 10 = 75."
        },
        "scores": {
          "a": 43,
          "b": 75
        }
      },
      {
        "by": 20,
        "category": "ergonomics",
        "leads": "magic-patterns",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "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).",
          "b": "24 documented tools (15 for 11 to 30), plus 5 back for the read-only endpoint that registers only 12 (20 of 25). Message history pages by 10 and version history by 20 with `skip`, and file reads take a list of names (14 of 20). Documented status codes, a 402 that leaves reads working and non-blocking `validationErrors` on design-system writes (15 of 20). No idempotency keys; 409 conflict checks on design-system writes, and annotations couldn't be read on the closed server (10 of 20). `create_design` needs no parameter and makes a blank scaffold, but there is no official SDK (8 of 15). 20 + 14 + 15 + 10 + 8 = 67."
        },
        "scores": {
          "a": 47,
          "b": 67
        }
      },
      {
        "by": 15,
        "category": "schema",
        "leads": "magic-patterns",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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).",
          "b": "The MCP server is closed, so its tool definitions weren't read. The v3 API has an OpenAPI 3.0.3 description, served as a block in each API reference page; the file llms.txt links at /docs/openapi-v3.yml answered with a not-found page (20 of 25). llms.txt and a Markdown copy of every docs page (10). The tools page sets out four workflows with call order, says when to poll and how often, splits read from write tools and warns that the user may edit at any time (17 of 20). Parameters are typed and marked required, the feedback `category` is an enum, and file writes take an array of name and content pairs (10 of 15). Request and response examples, an error table (400, 401, 402, 403) and 409 behaviour on writes (12 of 15). Versioned /v3 paths, a v2 deprecation notice and a dated product changelog (15). 20 + 10 + 17 + 10 + 12 + 15 = 84."
        },
        "scores": {
          "a": 69,
          "b": 84
        }
      },
      {
        "by": 15,
        "category": "transparency",
        "leads": "framer",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "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).",
          "b": "Closed service under terms of service last updated 1 April 2025 (15). The privacy policy of the same date keeps personal data as long as necessary with no periods. The terms let Magic Patterns train on Free plan inputs and outputs and show Free plan designs publicly, and rule out training on paid plans. The subprocessor list sits in the Trust Center, which wasn't readable (14 of 30). No deprecation policy. v2 is 'being deprecated and will be removed in a future release' with no date, and the terms allow any part of the service to be discontinued at any time (5 of 20). The security page names Render and MongoDB Atlas as hosting, and the full subprocessor list wasn't read (8 of 20). 15 + 14 + 5 + 8 = 42."
        },
        "scores": {
          "a": 75,
          "b": 60
        }
      },
      {
        "by": 7,
        "category": "maintenance",
        "leads": "framer",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "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.",
          "b": "Changelog entry on 5 November 2026, the day before this check (30). Entries on twelve dates since 8 August, among them 23 September and 12 to 30 October (20). Closed service with a public changelog, email support within one to two business days, in-app chat and a Slack community. We didn't test them (12 of 15). Not in the official MCP registry (searches for magic-patterns and magicpatterns returned nothing of theirs). Official Claude connector, Cursor plugin and Codex plugin, and no SDKs (5 of 15). No public package or repository to check (3 of 10). 30 + 20 + 12 + 5 + 3 = 70."
        },
        "scores": {
          "a": 77,
          "b": 70
        }
      },
      {
        "by": 6,
        "category": "security",
        "leads": "magic-patterns",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "One Server API key per project, created under Site Settings, that can't reach other projects. We didn't find rotation or revocation documented for Server API keys. `@framer/agent` grants access per project in the browser and Framer says it can be revoked at any time. Framer MCP signs in with OAuth (authorization code with PKCE S256 and dynamic client registration, per its metadata), but publishes one scope, `mcp:project`, and acts with the account's permissions on every project it can reach, so it doesn't earn the 30 for scoped OAuth. Revoking an MCP grant isn't documented in the pages read (20 of 30). No read-only key or MCP mode. The key can publish and deploy directly. `@framer/agent` keeps changes on a branch until someone merges or publishes, and MCP changes stay unpublished until the person or the agent publishes (12 of 20). CMS content and code files come back as they are, mostly the customer's own, with no injection guidance (5 of 15). We found no API or MCP call log for operators (5 of 15). Per the 24 October check, framer.com's security.txt lists vulnerability-disclosure@framer.com and carries an expired Expires date of 1 August 2026. trust.framer.com redirects to a Vanta page whose robots.txt disallows crawlers, so certifications weren't checked. A disclosure address with no acknowledgement time, bounty or readable certification takes the run's settled 7 (7 of 20). Not re-read on 4 November (framer.com paused under its Acceptable Use Policy).",
          "b": "OAuth 2.1 with PKCE S256, dynamic registration and a device flow, issued by oauth.magicpatterns.com with WorkOS keys. Scopes are openid, email, profile and offline_access only, so a token carries the user's whole workspace role. API keys are shown once, with no scopes, expiry or rotation documented (22 of 30). The read-only endpoint doesn't register the 13 tools that create, change or publish. There is no confirmation step on the write endpoint (14 of 20). Tools return design code and chat history that collaborators wrote, and no prompt-injection guidance was found (3 of 15). `x-mp-agent-name` attributes changes in the UI, and audit logs come with Enterprise only (8 of 15). The security page describes encryption, logging and the Render and MongoDB Atlas setup and points to SOC 2 reports in a Trust Center drawn by script, which wasn't read. No security.txt, disclosure policy or bug bounty found (8 of 20). 22 + 14 + 3 + 8 + 8 = 55."
        },
        "scores": {
          "a": 49,
          "b": 55
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Framer",
        "b": "North Park Labs, Inc. (Magic Patterns)",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.framer.com/mcp",
        "b": "https://mcp.magicpatterns.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "Streamable HTTP, HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "proprietary",
        "b": "Closed service under the Magic Patterns terms of service (last updated 1 April 2025)",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "24",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-22",
        "b": "2026-11-05",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2025-04-01",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2025-04-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "336k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Magic Patterns scores 63.4 (B) on agent readiness against Framer Server API's 52.5 (D), and leads in 4 of 7 scored categories. Framer Server API leads on maintenance \u0026 community and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Framer Server API or Magic Patterns?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Framer Server API and Magic Patterns need an API key?"
      },
      {
        "answer": "Yes. Framer Server API has a hosted endpoint at https://mcp.framer.com/mcp and Magic Patterns at https://mcp.magicpatterns.com/mcp.",
        "question": "Can an agent call Framer Server API and Magic Patterns without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Maintenance \u0026 community, 77 against 70",
          "Transparency \u0026 trust, 75 against 60"
        ],
        "also": null,
        "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"
      },
      {
        "aheadOn": [
          "Reliability, 75 against 43",
          "Schema \u0026 documentation, 84 against 69",
          "Agent ergonomics, 67 against 47",
          "Security \u0026 auth, 55 against 49"
        ],
        "also": null,
        "goodFor": "Generating and iterating on coded React prototypes from a coding agent, and pulling a design into a codebase.",
        "slug": "magic-patterns",
        "watchFor": "MCP and API-key access need a paid seat, Starter at $20 a month"
      }
    ],
    "history": {
      "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"
        }
      ],
      "magic-patterns": null
    },
    "job": {
      "capability": "design.files",
      "name": "Design files"
    },
    "others": [
      {
        "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/figma-mcp-vs-magic-patterns.json",
        "title": "Figma API + MCP vs Magic Patterns",
        "url": "https://www.anchorterminal.com/compare/figma-mcp-vs-magic-patterns"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-framer.json",
        "title": "Framelink MCP for Figma vs Framer Server API",
        "url": "https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-framer"
      },
      {
        "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/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-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/kite-new-vs-magic-patterns.json",
        "title": "Kite vs Magic Patterns",
        "url": "https://www.anchorterminal.com/compare/kite-new-vs-magic-patterns"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-miro.json",
        "title": "Magic Patterns vs Miro API + MCP",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-miro"
      },
      {
        "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/impeccable-vs-magic-patterns.json",
        "title": "Impeccable vs Magic Patterns",
        "url": "https://www.anchorterminal.com/compare/impeccable-vs-magic-patterns"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-pen-dev.json",
        "title": "Magic Patterns vs pen.dev",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-pen-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-penpot.json",
        "title": "Magic Patterns vs Penpot API + MCP",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-penpot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-sketch.json",
        "title": "Magic Patterns vs Sketch",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-sketch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-subframe.json",
        "title": "Magic Patterns vs Subframe",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-subframe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-zeplin.json",
        "title": "Magic Patterns vs Zeplin",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-zeplin"
      },
      {
        "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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-uxkin-agent.json",
        "title": "Magic Patterns vs UXKIN",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-uxkin-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-patterns-vs-melius.json",
        "title": "Magic Patterns vs Melius",
        "url": "https://www.anchorterminal.com/compare/magic-patterns-vs-melius"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 32,
        "edge": "magic-patterns",
        "framer": 43,
        "key": "reliability",
        "magic-patterns": 75,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "edge": "magic-patterns",
        "framer": 69,
        "key": "schema",
        "magic-patterns": 84,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 20,
        "edge": "magic-patterns",
        "framer": 47,
        "key": "ergonomics",
        "magic-patterns": 67,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 6,
        "edge": "magic-patterns",
        "framer": 49,
        "key": "security",
        "magic-patterns": 55,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 2,
        "edge": "framer",
        "framer": 25,
        "key": "payments",
        "magic-patterns": 23,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "edge": "framer",
        "framer": 77,
        "key": "maintenance",
        "magic-patterns": 70,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 15,
        "edge": "framer",
        "framer": 75,
        "key": "transparency",
        "magic-patterns": 60,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Magic Patterns scores 63.4 (B) on agent readiness against Framer Server API's 52.5 (D), and leads in 4 of 7 scored categories. Framer Server API leads on maintenance \u0026 community and transparency \u0026 trust. Both do design files.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "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.",
      "magic-patterns": "Agents can create, prompt, read and edit coded prototypes through 24 documented MCP tools or a matching REST API, with a read-only endpoint and 409 conflict checks on writes. MCP access needs a paid seat from $20 a month, OAuth scopes don't narrow access below the user's role, and the status page doesn't track the API or MCP server."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/framer-vs-magic-patterns",
    "json": "https://www.anchorterminal.com/compare/framer-vs-magic-patterns.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/framer-vs-magic-patterns.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/framer-vs-magic-patterns.min.md"
  },
  "markdown": "Magic Patterns scores 63.4 (B) on agent readiness against Framer Server API's 52.5 (D), and leads in 4 of 7 scored categories. Framer Server API leads on maintenance \u0026 community and transparency \u0026 trust. Both do design files.\n\n- Framer Server API: grade D, 52.5/100, rank #978 of 1486. Markdown https://www.anchorterminal.com/tools/framer.md · JSON https://www.anchorterminal.com/api/v1/tools/framer.json\n- Magic Patterns: grade B, 63.4/100, rank #517 of 1486. Markdown https://www.anchorterminal.com/tools/magic-patterns.md · JSON https://www.anchorterminal.com/api/v1/tools/magic-patterns.json\n- Best design workspace and canvas APIs for AI agents: https://www.anchorterminal.com/best/design/index.md\n- All 120 design comparisons: https://www.anchorterminal.com/compare/design/index.md\n\n## Which one, for what\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 70\n- Transparency \u0026 trust, 75 against 60\n\nWatch for: Framer MCP's OAuth has one scope, `mcp:project`, and reaches every project the signed-in account can\n\n### Magic Patterns (B)\n\nGood for: Generating and iterating on coded React prototypes from a coding agent, and pulling a design into a codebase.\n\nAhead on:\n- Reliability, 75 against 43\n- Schema \u0026 documentation, 84 against 69\n- Agent ergonomics, 67 against 47\n- Security \u0026 auth, 55 against 49\n\nWatch for: MCP and API-key access need a paid seat, Starter at $20 a month\n\n\n## Why the edge\n\n### Reliability: Magic Patterns +32\n\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- Magic Patterns (75): Hosted lines, for the MCP server and v3 API. A Statuspage at magicpatterns.statuspage.io with incident history, but its two components are Web Platform and Figma Plugin, with nothing for the API or MCP server (15 of 20). The history page and Atom feed post no incident since 9 January 2026, so the 90 days before this check are clean as far as the page covers (30). The page's /api/ path is disallowed by its robots.txt, so the JSON feeds weren't used. Rate limit published as 1,000 generations per 10 hours per key, with polling no faster than once every 60 seconds (15). No 429, Retry-After or backoff guidance and no idempotency keys. Design-system writes take a `baseArtifactId` and return 409 on a concurrent change, with re-read-and-retry advice (5 of 15). No SLA found below Enterprise's custom contracts (0). The MCP server and v3 API carry no beta label (10). 15 + 30 + 15 + 5 + 0 + 10 = 75.\n\n### Agent ergonomics: Magic Patterns +20\n\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- Magic Patterns (67): 24 documented tools (15 for 11 to 30), plus 5 back for the read-only endpoint that registers only 12 (20 of 25). Message history pages by 10 and version history by 20 with `skip`, and file reads take a list of names (14 of 20). Documented status codes, a 402 that leaves reads working and non-blocking `validationErrors` on design-system writes (15 of 20). No idempotency keys; 409 conflict checks on design-system writes, and annotations couldn't be read on the closed server (10 of 20). `create_design` needs no parameter and makes a blank scaffold, but there is no official SDK (8 of 15). 20 + 14 + 15 + 10 + 8 = 67.\n\n### Schema \u0026 documentation: Magic Patterns +15\n\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- Magic Patterns (84): The MCP server is closed, so its tool definitions weren't read. The v3 API has an OpenAPI 3.0.3 description, served as a block in each API reference page; the file llms.txt links at /docs/openapi-v3.yml answered with a not-found page (20 of 25). llms.txt and a Markdown copy of every docs page (10). The tools page sets out four workflows with call order, says when to poll and how often, splits read from write tools and warns that the user may edit at any time (17 of 20). Parameters are typed and marked required, the feedback `category` is an enum, and file writes take an array of name and content pairs (10 of 15). Request and response examples, an error table (400, 401, 402, 403) and 409 behaviour on writes (12 of 15). Versioned /v3 paths, a v2 deprecation notice and a dated product changelog (15). 20 + 10 + 17 + 10 + 12 + 15 = 84.\n\n### Transparency \u0026 trust: Framer Server API +15\n\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- Magic Patterns (60): Closed service under terms of service last updated 1 April 2025 (15). The privacy policy of the same date keeps personal data as long as necessary with no periods. The terms let Magic Patterns train on Free plan inputs and outputs and show Free plan designs publicly, and rule out training on paid plans. The subprocessor list sits in the Trust Center, which wasn't readable (14 of 30). No deprecation policy. v2 is 'being deprecated and will be removed in a future release' with no date, and the terms allow any part of the service to be discontinued at any time (5 of 20). The security page names Render and MongoDB Atlas as hosting, and the full subprocessor list wasn't read (8 of 20). 15 + 14 + 5 + 8 = 42.\n\n### Maintenance \u0026 community: Framer Server API +7\n\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- Magic Patterns (70): Changelog entry on 5 November 2026, the day before this check (30). Entries on twelve dates since 8 August, among them 23 September and 12 to 30 October (20). Closed service with a public changelog, email support within one to two business days, in-app chat and a Slack community. We didn't test them (12 of 15). Not in the official MCP registry (searches for magic-patterns and magicpatterns returned nothing of theirs). Official Claude connector, Cursor plugin and Codex plugin, and no SDKs (5 of 15). No public package or repository to check (3 of 10). 30 + 20 + 12 + 5 + 3 = 70.\n\n### Security \u0026 auth: Magic Patterns +6\n\n- Framer Server API (49): One Server API key per project, created under Site Settings, that can't reach other projects. We didn't find rotation or revocation documented for Server API keys. `@framer/agent` grants access per project in the browser and Framer says it can be revoked at any time. Framer MCP signs in with OAuth (authorization code with PKCE S256 and dynamic client registration, per its metadata), but publishes one scope, `mcp:project`, and acts with the account's permissions on every project it can reach, so it doesn't earn the 30 for scoped OAuth. Revoking an MCP grant isn't documented in the pages read (20 of 30). No read-only key or MCP mode. The key can publish and deploy directly. `@framer/agent` keeps changes on a branch until someone merges or publishes, and MCP changes stay unpublished until the person or the agent publishes (12 of 20). CMS content and code files come back as they are, mostly the customer's own, with no injection guidance (5 of 15). We found no API or MCP call log for operators (5 of 15). Per the 24 October check, framer.com's security.txt lists vulnerability-disclosure@framer.com and carries an expired Expires date of 1 August 2026. trust.framer.com redirects to a Vanta page whose robots.txt disallows crawlers, so certifications weren't checked. A disclosure address with no acknowledgement time, bounty or readable certification takes the run's settled 7 (7 of 20). Not re-read on 4 November (framer.com paused under its Acceptable Use Policy).\n- Magic Patterns (55): OAuth 2.1 with PKCE S256, dynamic registration and a device flow, issued by oauth.magicpatterns.com with WorkOS keys. Scopes are openid, email, profile and offline_access only, so a token carries the user's whole workspace role. API keys are shown once, with no scopes, expiry or rotation documented (22 of 30). The read-only endpoint doesn't register the 13 tools that create, change or publish. There is no confirmation step on the write endpoint (14 of 20). Tools return design code and chat history that collaborators wrote, and no prompt-injection guidance was found (3 of 15). `x-mp-agent-name` attributes changes in the UI, and audit logs come with Enterprise only (8 of 15). The security page describes encryption, logging and the Render and MongoDB Atlas setup and points to SOC 2 reports in a Trust Center drawn by script, which wasn't read. No security.txt, disclosure policy or bug bounty found (8 of 20). 22 + 14 + 3 + 8 + 8 = 55.\n\n## Score by category\n\n| Category | Weight | Framer Server API | Magic Patterns | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 43 | 75 | Magic Patterns +32 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 69 | 84 | Magic Patterns +15 |\n| Agent ergonomics | 13% (16.2 this run) | 47 | 67 | Magic Patterns +20 |\n| Security \u0026 auth | 14% (17.5 this run) | 49 | 55 | Magic Patterns +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 23 | Framer Server API +2 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 77 | 70 | Framer Server API +7 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 60 | Framer Server API +15 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **52.5 · D** | **63.4 · B** | |\n\n## Facts side by side\n\n| Fact | Framer Server API | Magic Patterns |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Framer | North Park Labs, Inc. (Magic Patterns) |\n| Hosted endpoint | `https://mcp.framer.com/mcp` | `https://mcp.magicpatterns.com/mcp` |\n| Transports | HTTP, Streamable HTTP | Streamable HTTP, HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | proprietary | Closed service under the Magic Patterns terms of service (last updated 1 April 2025) |\n| Tools exposed | none | 24 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-10-22 | 2026-11-05 |\n| Terms last updated | no date given | 2025-04-01 |\n| Privacy policy last updated | no date given | 2025-04-01 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 336k npm/wk | none |\n| Agent reviews | 3/5 (4) | none |\n\n## How the scores have moved\n\n### Framer Server API\n\n- -0.1 on 4 November 2026: correction\n- -0.2 on 8 October 2026: checklist\n\n### Magic Patterns\n\nNo score change since it was listed.\n\n## Verdicts\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**Magic Patterns.** Agents can create, prompt, read and edit coded prototypes through 24 documented MCP tools or a matching REST API, with a read-only endpoint and 409 conflict checks on writes. MCP access needs a paid seat from $20 a month, OAuth scopes don't narrow access below the user's role, and the status page doesn't track the API or MCP server.\n\n## Before you call either\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### Magic Patterns\n\n1. Use https://mcp.magicpatterns.com/mcp/readonly when the task only reads designs\n2. Call `get_design_status` before any change and poll it no more than once every 60 seconds\n3. Pass `baseArtifactId` from `get_design_system` on writes, and on 409 re-read before retrying\n4. Treat a 402 as out of credits and ask the user; read tools keep working\n5. Send `x-mp-agent-name` so the user sees which agent made a change\n\n## Questions\n\n### Which is better for AI agents, Framer Server API or Magic Patterns?\n\nMagic Patterns scores 63.4 (B) on agent readiness against Framer Server API's 52.5 (D), and leads in 4 of 7 scored categories. Framer Server API leads on maintenance \u0026 community and transparency \u0026 trust.\n\n### Do Framer Server API and Magic Patterns need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Framer Server API and Magic Patterns without installing anything?\n\nYes. Framer Server API has a hosted endpoint at https://mcp.framer.com/mcp and Magic Patterns at https://mcp.magicpatterns.com/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/framer-vs-magic-patterns.json, and with the fewest tokens: https://www.anchorterminal.com/compare/framer-vs-magic-patterns.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"framer\", \"b\": \"magic-patterns\"}`. From a terminal: `anchor compare framer magic-patterns`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/framer.json and https://www.anchorterminal.com/api/v1/tools/magic-patterns.json\n\n## Other comparisons with Framer Server API or Magic Patterns\n\n- [Figma API + MCP vs Framer Server API](https://www.anchorterminal.com/compare/figma-mcp-vs-framer.md)\n- [Figma API + MCP vs Magic Patterns](https://www.anchorterminal.com/compare/figma-mcp-vs-magic-patterns.md)\n- [Framelink MCP for Figma vs Framer Server API](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-framer.md)\n- [Framelink MCP for Figma vs Magic Patterns](https://www.anchorterminal.com/compare/framelink-figma-mcp-vs-magic-patterns.md)\n- [Framer Server API vs Kite](https://www.anchorterminal.com/compare/framer-vs-kite-new.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- [Kite vs Magic Patterns](https://www.anchorterminal.com/compare/kite-new-vs-magic-patterns.md)\n- [Magic Patterns vs Miro API + MCP](https://www.anchorterminal.com/compare/magic-patterns-vs-miro.md)\n- [Framer Server API vs Impeccable](https://www.anchorterminal.com/compare/framer-vs-impeccable.md)\n- [Impeccable vs Magic Patterns](https://www.anchorterminal.com/compare/impeccable-vs-magic-patterns.md)\n- [Magic Patterns vs pen.dev](https://www.anchorterminal.com/compare/magic-patterns-vs-pen-dev.md)\n- [Magic Patterns vs Penpot API + MCP](https://www.anchorterminal.com/compare/magic-patterns-vs-penpot.md)\n- [Magic Patterns vs Sketch](https://www.anchorterminal.com/compare/magic-patterns-vs-sketch.md)\n- [Magic Patterns vs Subframe](https://www.anchorterminal.com/compare/magic-patterns-vs-subframe.md)\n- [Magic Patterns vs Zeplin](https://www.anchorterminal.com/compare/magic-patterns-vs-zeplin.md)\n- [Framer Server API vs UXKIN](https://www.anchorterminal.com/compare/framer-vs-uxkin-agent.md)\n- [Magic Patterns vs UXKIN](https://www.anchorterminal.com/compare/magic-patterns-vs-uxkin-agent.md)\n- [Magic Patterns vs Melius](https://www.anchorterminal.com/compare/magic-patterns-vs-melius.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": "Framer Server API vs Magic Patterns",
        "url": ""
      }
    ],
    "description": "Magic Patterns scores 63.4 (B) to Framer Server's 52.5 (D) for design files. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Framer Server API D 52.5",
      "Magic Patterns B 63.4",
      "scores"
    ],
    "h1": "Framer Server API vs Magic Patterns",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/framer-vs-magic-patterns",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Framer Server vs Magic Patterns for AI agents (2026) | Anchor Terminal",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/framer-vs-magic-patterns"
  },
  "tokens": {
    "markdown": 5500,
    "slim": 3680
  },
  "version": 1
}
