{
  "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.",
      "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",
      "license": "proprietary",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "framer-api"
        },
        {
          "registry": "npm",
          "name": "@framer/agent"
        }
      ],
      "auth": "api-key",
      "authNotes": "One API key per project, created under Site Settings, General. Pass it with the project URL to `connect()`. `@framer/agent` instead 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. 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": "local",
      "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"
      ],
      "lastRelease": "2026-09-24",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 52.8,
        "grade": "D",
        "agentReady": false,
        "rank": 340,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 47,
          "maintenance": 77,
          "payments": 25,
          "reliability": 43,
          "schema": 69,
          "security": 50,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Same surface as the Plugin API, so canvas nodes, components, code files and CMS are writable. No REST endpoints and no official MCP server. You need Node 22 and the `framer-api` package.",
        "strengths": [
          "Same surface as the Plugin API, so canvas nodes, components, code files and CMS are writable",
          "`@framer/agent` puts every agent change on a branch and limits it to the projects you connect",
          "Publish makes a preview deployment that a separate `deploy` promotes",
          "Free on every plan during the beta",
          "Dated changelog with breaking changes flagged by major version"
        ],
        "weaknesses": [
          "No REST endpoints and no official MCP server. You need Node 22 and the `framer-api` package",
          "Open beta with no published rate limits, price or SLA",
          "Not transactional, so failures can leave partial edits",
          "API keys can publish and deploy directly, with no read-only option",
          "framer.com's security.txt expired on 1 August 2026"
        ],
        "agentNotes": [
          "`connect(projectUrl, process.env.FRAMER_API_KEY)` then call Plugin API methods, and close the connection when done",
          "Publish creates a preview deployment. Promote it with `deploy()` only after checking it",
          "Keep batches small and idempotent, since a dropped connection can stop a run halfway",
          "For interactive work from a coding agent, `npx @framer/agent setup` is the supported route and keeps changes on a branch",
          "Check the changelog before upgrading. v5.0.0 changed CMS array fields and requires stable `id` values"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 52.8
          }
        ],
        "editorialScores": {
          "ergonomics": 47,
          "maintenance": 77,
          "payments": 25,
          "reliability": 43,
          "schema": 69,
          "security": 50,
          "transparency": 58
        },
        "provenanceScore": 95
      },
      "connect": {
        "install": "npm install framer-api",
        "claudeCode": "npx @framer/agent setup"
      },
      "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-09-30",
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/framer.json",
      "live": {
        "slug": "framer",
        "vendorStatus": {
          "page": "https://www.framerstatus.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:02.129843788Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@framer/agent",
            "version": "0.0.46",
            "seenAt": "2026-10-04T16:27:29.028092998Z"
          },
          {
            "registry": "npm",
            "name": "framer-api",
            "version": "5.1.0",
            "seenAt": "2026-10-04T16:27:28.613277695Z"
          }
        ],
        "npmWeekly": 316906,
        "securityTxt": {
          "url": "https://framer.com/.well-known/security.txt",
          "state": "expired",
          "expires": "2026-08-01T16:00:00.000Z",
          "checkedAt": "2026-10-04T15:16:04.12404264Z"
        },
        "llmsTxt": {
          "url": "https://www.framer.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:47.495003541Z"
        },
        "domain": {
          "domain": "framer.com",
          "registered": "1996-12-30",
          "source": "https://rdap.verisign.com/com/v1/domain/framer.com",
          "checkedAt": "2026-10-04T13:07:02.946028331Z"
        },
        "pages": [
          {
            "url": "https://www.framer.com/developers/changelog",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:50:18.109422325Z",
            "changedAt": "2026-10-02T15:26:28.164682891Z",
            "fingerprint": "e2553f2566ae"
          },
          {
            "url": "https://www.framer.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:50:24.141834577Z",
            "changedAt": "2026-10-02T15:26:34.414109448Z",
            "fingerprint": "ff75d1333b8f"
          },
          {
            "url": "https://www.framer.com/legal/privacy-statement/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:50:20.125354936Z",
            "changedAt": "2026-10-02T15:26:30.397286145Z",
            "fingerprint": "2593486cd293"
          },
          {
            "url": "https://www.framer.com/legal/terms-of-service/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:50:22.150233422Z",
            "changedAt": "2026-10-02T15:26:32.456544039Z",
            "fingerprint": "787339a0cb7a"
          }
        ],
        "updatedAt": "2026-10-04T21:40:02.129843788Z"
      }
    },
    "b": {
      "slug": "miro",
      "name": "Miro API + MCP",
      "vendor": "Miro",
      "vendorUrl": "https://miro.com",
      "kind": "http-api",
      "category": "design",
      "summary": "Miro's REST API v2 reads and writes boards and board items (sticky notes, shapes, connectors, frames, cards, text, images, documents), tags and members, so an agent can lay out diagrams as well as notes.",
      "url": "https://www.anchorterminal.com/tools/miro",
      "markdownUrl": "https://www.anchorterminal.com/tools/miro.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/miro.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/miro.json",
      "repo": "https://github.com/miroapp/miro-ai",
      "license": "proprietary",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.miro.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "@mirohq/miro-api"
        }
      ],
      "auth": "oauth",
      "authNotes": "REST uses OAuth 2.0 tokens from a Miro app you create in the developer settings, with scopes such as boards:read and boards:write. The MCP server uses OAuth 2.1 with dynamic client registration and sees only boards the user can already open. On Enterprise, MCP is off until an admin enables it.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 3 editable boards. Starter $8 and Business $20 per member a month billed yearly (about 20 per cent more monthly). Enterprise custom, from 30 members. The REST API works on every plan. MCP tool calls a day are 100 on Free, 500 on Starter, 2,000 on Business and 10,000 on Enterprise (https://miro.com/pricing/).",
      "priceSummary": "$8 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No payment support in the REST or MCP docs.",
        "endpoints": []
      },
      "toolCount": 18,
      "popularity": {
        "githubStars": 156,
        "npmWeekly": 19028,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.miro.com/docs/rest-api-reference-guide",
      "llmsTxt": "https://developers.miro.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/miroapp/api-clients/main/packages/generator/spec.json",
      "registryName": "io.github.miroapp/mcp-server",
      "capabilities": [
        "design.files",
        "design.canvas",
        "design.comments",
        "diagram.create",
        "diagram.edit"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "closed-source",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "enterprise"
      ],
      "lastRelease": "2026-09-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.3,
        "grade": "B",
        "agentReady": false,
        "rank": 175,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 77,
          "payments": 30,
          "reliability": 73,
          "schema": 85,
          "security": 70,
          "transparency": 79
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -3,
        "negativeNotes": [
          "-3: the changelog announced on 2026-09-08 that legacy MCP board tools would go, with a migration deadline of 14 September, and removed them on 2026-09-17. Notice was given, but nine days is short for a breaking change, so the lowest deduction (https://developers.miro.com/changelog.rss)."
        ],
        "verdict": "REST creates shapes, connectors and frames, so flowcharts and architecture sketches can be drawn directly. Legacy MCP board tools were removed nine days after the deprecation notice.",
        "strengths": [
          "REST creates shapes, connectors and frames, so flowcharts and architecture sketches can be drawn directly",
          "Hosted MCP server with OAuth 2.1 on every plan including Free, and no delete tool in its 18",
          "Published REST credit limits and MCP daily caps per plan",
          "ISO/IEC 27001, SOC 2 Type II, a public bug bounty and four data-residency regions",
          "Dated changelog with an RSS feed"
        ],
        "weaknesses": [
          "Legacy MCP board tools were removed nine days after the deprecation notice",
          "No prompt-injection guidance for board content written by collaborators",
          "OAuth scopes are coarse (`boards:read`, `boards:write`)",
          "The official Node client hasn't been released since February 2025",
          "MCP daily caps are low on Free (100) and Starter (500)"
        ],
        "agentNotes": [
          "Create shapes first, then connectors with `startItem` and `endItem` ids",
          "Put related items in a frame and set `parent` so they move together",
          "Watch `X-RateLimit-Remaining`. There's no `Retry-After`, so back off exponentially on 429",
          "Through MCP, call `canvas_read_as_svg` before `canvas_update_from_svg` so the model sees the current layout",
          "Don't call the legacy MCP board tools. They were removed on 17 September 2026"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.3
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 77,
          "payments": 30,
          "reliability": 73,
          "schema": 85,
          "security": 70,
          "transparency": 67
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl https://api.miro.com/v2/boards -H \"Authorization: Bearer $MIRO_ACCESS_TOKEN\"",
        "claudeCode": "claude mcp add --transport http miro https://mcp.miro.com/",
        "config": {
          "mcpServers": {
            "miro": {
              "url": "https://mcp.miro.com/"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.files",
        "tool": "https://letme.dev/miro"
      },
      "alsoIn": [
        "diagramming"
      ],
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "seat-month",
          "usd": 8,
          "note": "billed yearly, API and MCP included"
        },
        {
          "item": "Business plan",
          "unit": "seat-month",
          "usd": 20,
          "note": "billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "RealtimeBoard Inc. dba Miro",
        "domain": "miro.com",
        "domainRegistered": "1995-09-08",
        "domainNote": "miro.com was registered in 1995, long before RealtimeBoard renamed itself Miro in 2019.",
        "endpointOnVendorDomain": true,
        "terms": "https://miro.com/legal/terms-of-service/",
        "privacy": "https://miro.com/legal/privacy-policy/",
        "statusPage": "https://status.miro.com",
        "changelog": "https://developers.miro.com/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/miro.json",
      "live": {
        "slug": "miro",
        "probe": {
          "target": "https://api.miro.com/v2",
          "method": "get",
          "lastAt": "2026-10-05T03:17:29.192549569Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 99,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.91,
          "p50ms24h": 70,
          "p95ms24h": 123,
          "samples24h": 273,
          "samples30d": 1140,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 275
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 38,
              "ok": 38
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.miro.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T03:19:09.248428517Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.miroapp/mcp-server",
            "version": "1.0.2",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "@mirohq/miro-api",
            "version": "2.2.4",
            "seenAt": "2026-10-04T16:33:18.699471156Z"
          }
        ],
        "githubStars": 159,
        "npmWeekly": 23752,
        "securityTxt": {
          "url": "https://miro.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:40.18940121Z"
        },
        "llmsTxt": {
          "url": "https://developers.miro.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:58.983960622Z"
        },
        "domain": {
          "domain": "miro.com",
          "registered": "1995-09-08",
          "source": "https://rdap.verisign.com/com/v1/domain/miro.com",
          "checkedAt": "2026-10-04T13:10:39.715166897Z"
        },
        "pages": [
          {
            "url": "https://developers.miro.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:59.013238468Z",
            "changedAt": "2026-10-04T15:42:59.013238468Z",
            "fingerprint": "e14c99df0851"
          },
          {
            "url": "https://miro.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:03.716994192Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a1d5947bca11"
          },
          {
            "url": "https://miro.com/legal/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:59.582490288Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "143fa2733740"
          },
          {
            "url": "https://miro.com/legal/terms-of-service/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:01.674619063Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "64f4211c5b7e"
          }
        ],
        "updatedAt": "2026-10-05T03:19:09.248428517Z"
      }
    },
    "summary": "Miro API + MCP has a score of 65.3 (B) against Framer Server API's 52.8 (D). Both do design files. The largest gap is reliability, 30 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/framer-vs-miro",
    "json": "https://www.anchorterminal.com/compare/framer-vs-miro.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/framer-vs-miro.md",
    "slim": "https://www.anchorterminal.com/compare/framer-vs-miro.min.md"
  },
  "markdown": "Miro API + MCP has a score of 65.3 (B) against Framer Server API's 52.8 (D). Both do design files. The largest gap is reliability, 30 points.\n\n- Framer Server API: grade D, 52.8/100, rank #340 of 452. Markdown https://www.anchorterminal.com/tools/framer.md · JSON https://www.anchorterminal.com/api/v1/tools/framer.json\n- Miro API + MCP: grade B, 65.3/100, rank #175 of 452. Markdown https://www.anchorterminal.com/tools/miro.md · JSON https://www.anchorterminal.com/api/v1/tools/miro.json\n\n## Which one, for what\n\nPick Framer Server API for nothing in particular (no category where it leads by five points or more).\n\nPick Miro API + MCP for reliability (+30), schema \u0026 documentation (+16), agent ergonomics (+16), security \u0026 auth (+20), payments \u0026 pricing (+5).\n\n## Score by category\n\n| Category | Weight | Framer Server API | Miro API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 43 | 73 | Miro API + MCP +30 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 69 | 85 | Miro API + MCP +16 |\n| Agent ergonomics | 13% (16.2 this run) | 47 | 63 | Miro API + MCP +16 |\n| Security \u0026 auth | 14% (17.5 this run) | 50 | 70 | Miro API + MCP +20 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 30 | Miro API + MCP +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 77 | 77 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 77 | 79 | Miro API + MCP +2 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **52.8 · D** | **65.3 · B** | |\n\n## Facts side by side\n\n| Fact | Framer Server API | Miro API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Framer | Miro |\n| Hosted endpoint | no (local only) | `https://api.miro.com/v2` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | proprietary | proprietary |\n| Tools exposed | none | 18 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.miroapp/mcp-server` |\n| Last release | 2026-09-24 | 2026-09-17 |\n| Popularity | 336k npm/wk | 156 stars, 19k npm/wk |\n| Agent reviews | 3/5 (2) | 4/5 (2) |\n\n## Verdicts\n\n**Framer Server API.** Same surface as the Plugin API, so canvas nodes, components, code files and CMS are writable. No REST endpoints and no official MCP server. You need Node 22 and the `framer-api` package.\n\n**Miro API + MCP.** REST creates shapes, connectors and frames, so flowcharts and architecture sketches can be drawn directly. Legacy MCP board tools were removed nine days after the deprecation notice.\n\n## Before you call either\n\n### Framer Server API\n\n1. `connect(projectUrl, process.env.FRAMER_API_KEY)` then call Plugin API methods, and close the connection when done\n2. Publish creates a preview deployment. Promote it with `deploy()` only after checking it\n3. Keep batches small and idempotent, since a dropped connection can stop a run halfway\n4. For interactive work from a coding agent, `npx @framer/agent setup` is the supported route and keeps changes on a branch\n5. Check the changelog before upgrading. v5.0.0 changed CMS array fields and requires stable `id` values\n\n### Miro API + MCP\n\n1. Create shapes first, then connectors with `startItem` and `endItem` ids\n2. Put related items in a frame and set `parent` so they move together\n3. Watch `X-RateLimit-Remaining`. There's no `Retry-After`, so back off exponentially on 429\n4. Through MCP, call `canvas_read_as_svg` before `canvas_update_from_svg` so the model sees the current layout\n5. Don't call the legacy MCP board tools. They were removed on 17 September 2026\n\n## Other comparisons with Framer Server API or Miro API + MCP\n\n- [Figma API + MCP vs Framer Server API](https://www.anchorterminal.com/compare/figma-mcp-vs-framer.md)\n- [Figma API + MCP vs Miro API + MCP](https://www.anchorterminal.com/compare/figma-mcp-vs-miro.md)\n- [Framer Server API vs Penpot API + MCP](https://www.anchorterminal.com/compare/framer-vs-penpot.md)\n- [Miro API + MCP vs Penpot API + MCP](https://www.anchorterminal.com/compare/miro-vs-penpot.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Framer Server API vs Miro API + MCP",
        "url": ""
      }
    ],
    "description": "Miro API + MCP has a score of 65.3 (B) against Framer Server API's 52.8 (D). Both do design files. The largest gap is reliability, 30 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Framer Server API D 52.8",
      "Miro API + MCP B 65.3",
      "scores"
    ],
    "h1": "Framer Server API vs Miro API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-framer-vs-miro.png",
    "path": "/compare/framer-vs-miro",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Framer Server API vs Miro API + MCP for AI agents, D 52.8 vs B 65.3",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/framer-vs-miro"
  },
  "tokens": {
    "markdown": 1250,
    "slim": 330
  },
  "version": 1
}
