{
  "data": {
    "category": {
      "area": "design-diagrams",
      "capabilities": [
        "design.files",
        "design.components",
        "design.canvas",
        "design.comments",
        "design.code"
      ],
      "description": "Design tools and shared canvases an agent can read from and write to. Files, frames, components, variables, boards and comments. Compared on what the API can change as well as read, design-to-code support, MCP servers and how access is scoped.",
      "indexed": [
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scalably-figma-mcp.json",
          "kind": "mcp",
          "name": "Figma MCP",
          "slug": "scalably-figma-mcp",
          "url": "https://www.anchorterminal.com/tools/scalably-figma-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/shippp-mcp.json",
          "kind": "mcp",
          "name": "shippp.ai MCP server",
          "slug": "shippp-mcp",
          "url": "https://www.anchorterminal.com/tools/shippp-mcp"
        }
      ],
      "indexedCount": 2,
      "json": "https://www.anchorterminal.com/categories/design.json",
      "name": "Design workspaces \u0026 canvases",
      "slug": "design",
      "test": "",
      "title": "Design workspace and canvas APIs for AI agents",
      "toolCount": 5,
      "tools": [
        "figma-mcp",
        "miro",
        "lucid",
        "framer",
        "penpot"
      ],
      "url": "https://www.anchorterminal.com/categories/design"
    },
    "tools": [
      {
        "slug": "figma-mcp",
        "name": "Figma API + MCP",
        "vendor": "Figma",
        "vendorUrl": "https://www.figma.com",
        "kind": "http-api",
        "category": "design",
        "summary": "Figma's REST API and official MCP server connect applications and agents to its design platform.",
        "url": "https://www.anchorterminal.com/tools/figma-mcp",
        "markdownUrl": "https://www.anchorterminal.com/tools/figma-mcp.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/figma-mcp.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/figma-mcp.json",
        "license": "proprietary",
        "transports": [
          "http",
          "streamable-http"
        ],
        "remoteUrl": "https://api.figma.com/v1",
        "packages": [
          {
            "registry": "npm",
            "name": "@figma/rest-api-spec"
          },
          {
            "registry": "npm",
            "name": "@figma/code-connect"
          }
        ],
        "auth": "mixed",
        "authNotes": "REST API takes a personal access token in the X-Figma-Token header, an OAuth 2 app token with per-scope grants (file_content:read, file_comments:write, file_variables:write, webhooks:write and so on) or an organisation plan access token. The MCP server signs in with Figma OAuth. The remote server works on every seat and plan, the desktop server needs a Dev or Full seat on a paid plan, and only clients listed in Figma's MCP catalogue can connect.",
        "pricing": "freemium",
        "pricingNotes": "Starter is free with a Full seat and 150 AI credits a day. Professional Full seat $16 a month, Dev seat $12, Collab seat $3. Organization Full $55, Dev $25, Collab $5 a month, billed yearly. Enterprise Full $90, Dev $35, Collab $5 a month, billed yearly. The API is on every plan but rate limits depend on seat and plan. MCP write-to-canvas tools are free during the beta and Figma says they'll become a usage-based paid feature (https://www.figma.com/pricing/).",
        "priceSummary": "$16 / seat-mo",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402 support in Figma's REST or MCP docs.",
          "endpoints": []
        },
        "toolCount": 35,
        "popularity": {
          "githubStars": null,
          "npmWeekly": 456424,
          "pypiWeekly": null,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://developers.figma.com/docs/rest-api/",
        "llmsTxt": "https://developers.figma.com/llms.txt",
        "openapi": "https://raw.githubusercontent.com/figma/rest-api-spec/main/openapi/openapi.yaml",
        "registryName": "com.figma.mcp/mcp",
        "capabilities": [
          "design.files",
          "design.components",
          "design.canvas",
          "design.comments",
          "design.code"
        ],
        "tags": [
          "official",
          "hosted",
          "oauth",
          "closed-source",
          "freemium",
          "free-tier",
          "mcp",
          "llms-txt",
          "openapi",
          "webhooks",
          "typescript"
        ],
        "lastRelease": "2026-09-24",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 66.1,
          "grade": "B",
          "agentReady": false,
          "rank": 164,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 1,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 60,
            "maintenance": 84,
            "payments": 30,
            "reliability": 59,
            "schema": 86,
            "security": 74,
            "transparency": 75
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "OpenAPI spec, TypeScript types and an llms.txt index for the REST API. View and Collab seats get 6 MCP calls a month on paid plans.",
          "strengths": [
            "OpenAPI spec, TypeScript types and an llms.txt index for the REST API",
            "OAuth scopes per resource, plus plan access tokens with allowlists and expiry",
            "MCP design context, screenshots and Code Connect for design-to-code work, with canvas writes on the remote server",
            "Published REST and MCP limits by seat and plan",
            "SOC 2 Type 2, ISO/IEC 27001 and FedRAMP listed on the security page"
          ],
          "weaknesses": [
            "View and Collab seats get 6 MCP calls a month on paid plans",
            "MCP tools were unavailable for about 4 hours on 26 August 2026",
            "Only clients in Figma's MCP catalogue can connect",
            "No prompt-injection guidance for file content and comments",
            "No machine payment, and no per-call price for MCP or the coming paid write tools"
          ],
          "agentNotes": [
            "Pass `ids=` and `depth=` to `GET /v1/files/:key`. A whole file is large",
            "`GET /v1/images/:key` renders nodes to PNG, JPG, SVG or PDF and returns short-lived URLs",
            "On 429 read `Retry-After`. Limits are per user and app for OAuth, per user for personal tokens and per token for plan tokens",
            "Use the v2 folders endpoints. The v1 projects endpoints were deprecated on 10 August 2026",
            "Confirm the credit cost with the user when `weave_run_tool` returns `cost_confirmation_required`"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3.5,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "B",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 66.1
            }
          ],
          "editorialScores": {
            "ergonomics": 60,
            "maintenance": 84,
            "payments": 30,
            "reliability": 59,
            "schema": 86,
            "security": 74,
            "transparency": 59
          },
          "provenanceScore": 90
        },
        "connect": {
          "http": "curl -H \"X-Figma-Token: $FIGMA_TOKEN\" https://api.figma.com/v1/me",
          "claudeCode": "claude mcp add --transport http figma https://mcp.figma.com/mcp",
          "config": {
            "mcpServers": {
              "figma": {
                "url": "https://mcp.figma.com/mcp"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/design.files",
          "tool": "https://letme.dev/figma-mcp"
        },
        "area": "design-diagrams",
        "unitPrices": [
          {
            "item": "Professional Full seat",
            "unit": "seat-month",
            "usd": 16,
            "note": "API on every plan. Dev and Full seats get the usable rate limits"
          },
          {
            "item": "Professional Dev seat",
            "unit": "seat-month",
            "usd": 12
          },
          {
            "item": "Organization Full seat",
            "unit": "seat-month",
            "usd": 55,
            "note": "billed yearly"
          },
          {
            "item": "Enterprise Full seat",
            "unit": "seat-month",
            "usd": 90,
            "note": "billed yearly"
          }
        ],
        "provenance": {
          "legalEntity": "Figma, Inc.",
          "domain": "figma.com",
          "domainRegistered": "1999-04-10",
          "domainNote": "figma.com blocks automated fetches of /.well-known/, so we couldn't read its security.txt.",
          "endpointOnVendorDomain": true,
          "terms": "https://figma.com/legal/tos/",
          "privacy": "https://figma.com/legal/privacy/",
          "statusPage": "https://status.figma.com",
          "changelog": "https://developers.figma.com/docs/rest-api/changelog/",
          "securityTxt": "unknown",
          "checked": "2026-09-30",
          "score": 90
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/figma-mcp.json",
        "live": {
          "slug": "figma-mcp",
          "probe": {
            "target": "https://api.figma.com/v1",
            "method": "get",
            "lastAt": "2026-10-04T22:35:23.40987982Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 160,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 159,
            "p95ms24h": 409,
            "samples24h": 272,
            "samples30d": 2040,
            "days": [
              {
                "date": "2026-09-27",
                "probes": 132,
                "ok": 132
              },
              {
                "date": "2026-09-28",
                "probes": 285,
                "ok": 285
              },
              {
                "date": "2026-09-29",
                "probes": 286,
                "ok": 286
              },
              {
                "date": "2026-09-30",
                "probes": 286,
                "ok": 286
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 256,
                "ok": 256
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.figma.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-04T22:33:55.427125599Z"
          },
          "versions": [
            {
              "registry": "mcp-registry",
              "name": "com.figma.mcp/mcp",
              "version": "1.0.3",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "registry": "npm",
              "name": "@figma/code-connect",
              "version": "2.0.1",
              "seenAt": "2026-10-04T16:27:01.194682608Z"
            },
            {
              "registry": "npm",
              "name": "@figma/rest-api-spec",
              "version": "0.43.0",
              "seenAt": "2026-10-04T16:27:00.768164266Z"
            }
          ],
          "npmWeekly": 537638,
          "securityTxt": {
            "url": "https://figma.com/.well-known/security.txt",
            "state": "valid",
            "expires": "2027-10-21T15:25:00.000Z",
            "checkedAt": "2026-10-04T15:15:53.615387231Z"
          },
          "llmsTxt": {
            "url": "https://developers.figma.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:17:45.924883236Z"
          },
          "domain": {
            "domain": "figma.com",
            "registered": "1999-04-10",
            "source": "https://rdap.verisign.com/com/v1/domain/figma.com",
            "checkedAt": "2026-10-04T13:06:54.960609996Z"
          },
          "pages": [
            {
              "url": "https://developers.figma.com/docs/rest-api/changelog/",
              "kind": "deprecations",
              "status": 304,
              "checkedAt": "2026-10-04T15:42:49.539564405Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "90e5265794aa"
            },
            {
              "url": "https://developers.figma.com/docs/rest-api/rate-limits/",
              "kind": "deprecations",
              "status": 304,
              "checkedAt": "2026-10-04T15:42:51.942286215Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "ead938dea37b"
            },
            {
              "url": "https://www.figma.com/pricing/",
              "kind": "pricing",
              "status": 304,
              "checkedAt": "2026-10-04T15:50:16.032058454Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "29626e4c8c5b"
            },
            {
              "url": "https://figma.com/legal/privacy/",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:44:41.213431176Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "5f6e803dfca4"
            },
            {
              "url": "https://figma.com/legal/tos/",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-04T15:44:43.823925855Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "b56516a89d41"
            }
          ],
          "mcpTools": {
            "url": "https://mcp.figma.com/mcp",
            "checkedAt": "2026-09-29T21:56:31.149668221Z",
            "status": "auth",
            "note": "asks for credentials before listing its tools",
            "changedAt": "2026-09-28T21:55:47.047148913Z"
          },
          "updatedAt": "2026-10-04T22:35:23.40987982Z"
        }
      },
      {
        "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-04T22:35:27.104565012Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 72,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 99.91,
            "p50ms24h": 68,
            "p95ms24h": 123,
            "samples24h": 272,
            "samples30d": 1086,
            "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": 256,
                "ok": 256
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.miro.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-04T22:34:00.789020066Z"
          },
          "versions": [
            {
              "registry": "mcp-registry",
              "name": "io.github.miroapp/mcp-server",
              "version": "1.0.2",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "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-04T22:35:27.104565012Z"
        }
      },
      {
        "slug": "lucid",
        "name": "Lucid API + MCP",
        "vendor": "Lucid Software",
        "vendorUrl": "https://lucid.co",
        "kind": "http-api",
        "category": "diagramming",
        "summary": "REST API and hosted MCP server for creating, reading and managing Lucidchart and Lucidspark diagrams.",
        "url": "https://www.anchorterminal.com/tools/lucid",
        "markdownUrl": "https://www.anchorterminal.com/tools/lucid.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/lucid.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/lucid.json",
        "license": "proprietary",
        "transports": [
          "http",
          "streamable-http"
        ],
        "remoteUrl": "https://api.lucid.co",
        "packages": [],
        "auth": "mixed",
        "authNotes": "API keys (Bearer, with grants such as DocumentEdit) from the developer portal once developer tools are enabled in user settings or an admin assigns the developer role. OAuth 2.0 with scopes such as lucidchart.document.content, which sharing and embed endpoints require. Every call needs a `Lucid-Api-Version` header. The MCP server uses OAuth with dynamic client registration, and account admins can switch it on for the whole account.",
        "pricing": "freemium",
        "pricingNotes": "Free plan with limited editable documents. Individual $9 a month and Team $10 per user a month with a 3-user minimum, billed yearly. Enterprise custom. Lucid doesn't publish API or MCP limits by plan (https://lucid.app/pricing/lucidchart).",
        "priceSummary": "$9 / seat-mo",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No payment support in the REST or MCP docs.",
          "endpoints": []
        },
        "toolCount": 9,
        "popularity": {
          "githubStars": null,
          "npmWeekly": null,
          "pypiWeekly": null,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://lucid.readme.io/reference/overview",
        "llmsTxt": "https://lucid.readme.io/llms.txt",
        "registryName": "app.lucid.mcp/lucid",
        "capabilities": [
          "diagram.create",
          "diagram.as-code",
          "diagram.edit",
          "diagram.export",
          "design.files",
          "design.canvas",
          "design.comments"
        ],
        "tags": [
          "hosted",
          "freemium",
          "free-tier",
          "closed-source",
          "mcp",
          "llms-txt",
          "diagram-as-code",
          "async-jobs",
          "enterprise"
        ],
        "lastRelease": "2026-06-15",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 60.9,
          "grade": "C",
          "agentReady": false,
          "rank": 238,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 3,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 62,
            "maintenance": 33,
            "payments": 25,
            "reliability": 67,
            "schema": 73,
            "security": 80,
            "transparency": 63
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "OAuth 2.0 scopes with `:readonly` variants, and audit log endpoints in the REST API. No public changelog for the API or the MCP server.",
          "strengths": [
            "OAuth 2.0 scopes with `:readonly` variants, and audit log endpoints in the REST API",
            "Mermaid in through REST, PlantUML sequence diagrams through MCP, both editable afterwards",
            "Per-operation rate limits in each reference page's OpenAPI fragment, such as 60 a minute on Create Mermaid Diagram",
            "Nine compact MCP tools, listed in the official registry as app.lucid.mcp/lucid at 1.0.0",
            "SOC 2 Type II, ISO 27001, FedRAMP Moderate and a HackerOne bug bounty"
          ],
          "weaknesses": [
            "No public changelog for the API or the MCP server",
            "The status page doesn't monitor the API or the MCP server",
            "No single OpenAPI file and no official REST SDK",
            "Developer tools and MCP depend on user settings or admin approval",
            "No published price for API or MCP use beyond seat plans"
          ],
          "agentNotes": [
            "Always send `Lucid-Api-Version: 1`, or prefix the path with /v1",
            "For flowcharts and sequence diagrams, post Mermaid markup (up to 100,000 characters) instead of building Standard Import JSON",
            "Request `:readonly` scopes when the agent only reads documents",
            "On 429, wait 60 seconds or back off. Create Mermaid Diagram allows 60 calls a minute",
            "Sharing and embed endpoints need an OAuth token. An API key won't work there"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "C",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 60.9
            }
          ],
          "editorialScores": {
            "ergonomics": 62,
            "maintenance": 33,
            "payments": 25,
            "reliability": 67,
            "schema": 73,
            "security": 80,
            "transparency": 61
          },
          "provenanceScore": 65
        },
        "connect": {
          "http": "curl https://api.lucid.co/users/me/profile -H \"Authorization: Bearer $LUCID_API_KEY\" -H \"Lucid-Api-Version: 1\"",
          "claudeCode": "claude mcp add --transport http lucid https://mcp.lucid.app/mcp",
          "config": {
            "mcpServers": {
              "lucid": {
                "url": "https://mcp.lucid.app/mcp"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/diagram.create",
          "tool": "https://letme.dev/lucid"
        },
        "alsoIn": [
          "design"
        ],
        "area": "design-diagrams",
        "unitPrices": [
          {
            "item": "Individual plan",
            "unit": "seat-month",
            "usd": 9,
            "note": "billed yearly"
          },
          {
            "item": "Team plan",
            "unit": "seat-month",
            "usd": 10,
            "note": "billed yearly, 3-user minimum"
          }
        ],
        "provenance": {
          "legalEntity": "Lucid Software Inc.",
          "domain": "lucid.co",
          "domainRegistered": "",
          "domainNote": "The .co registry has no RDAP service we could query, so the registration date is blank. The MCP server runs on lucid.app, Lucid's product domain.",
          "endpointOnVendorDomain": true,
          "terms": "https://lucid.co/tos",
          "privacy": "https://lucid.co/privacy",
          "statusPage": "https://status.lucid.co",
          "changelog": "",
          "securityTxt": "none",
          "checked": "2026-10-01",
          "notes": [
            "The status page has no API or MCP component",
            "security.txt not rechecked on 2026-10-01; none per the 30 September check"
          ],
          "score": 65
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/lucid.json",
        "live": {
          "slug": "lucid",
          "probe": {
            "target": "https://api.lucid.co",
            "method": "get",
            "lastAt": "2026-10-04T22:35:26.22864377Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 344,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 200,
            "p95ms24h": 500,
            "samples24h": 272,
            "samples30d": 1086,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 256,
                "ok": 256
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.lucid.co",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-04T22:34:00.104455365Z"
          },
          "versions": [
            {
              "registry": "mcp-registry",
              "name": "app.lucid.mcp/lucid",
              "version": "1.0.0",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            }
          ],
          "securityTxt": {
            "url": "https://lucid.co/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:47.429149689Z"
          },
          "llmsTxt": {
            "url": "https://lucid.readme.io/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:17:57.566091069Z"
          },
          "domain": {
            "domain": "lucid.co",
            "checkedAt": "2026-10-04T13:08:39.466296912Z"
          },
          "pages": [
            {
              "url": "https://lucid.app/pricing/lucidchart",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:45:42.868386873Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "ba6244b9a39a"
            },
            {
              "url": "https://lucid.co/privacy",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:45:45.033679014Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "42182e432bc9"
            },
            {
              "url": "https://lucid.co/tos",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-04T15:45:47.182091401Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "522f8449b0a1"
            }
          ],
          "updatedAt": "2026-10-04T22:35:26.22864377Z"
        }
      },
      {
        "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"
        }
      },
      {
        "slug": "penpot",
        "name": "Penpot API + MCP",
        "vendor": "Penpot (Kaleidos)",
        "vendorUrl": "https://penpot.app",
        "kind": "http-api",
        "category": "design",
        "summary": "Open-source design and prototyping tool, used as SaaS at design.penpot.app or self-hosted.",
        "url": "https://www.anchorterminal.com/tools/penpot",
        "markdownUrl": "https://www.anchorterminal.com/tools/penpot.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/penpot.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/penpot.json",
        "repo": "https://github.com/penpot/penpot",
        "license": "MPL-2.0",
        "transports": [
          "http",
          "streamable-http"
        ],
        "remoteUrl": "https://design.penpot.app/api/rpc/command",
        "packages": [
          {
            "registry": "npm",
            "name": "@penpot/mcp"
          }
        ],
        "auth": "pat",
        "authNotes": "Personal access tokens from account settings, sent as `Authorization: Token \u003ctoken\u003e`. The hosted MCP URL takes a separate MCP key in the `userToken` query parameter. The local MCP server (`npx @penpot/mcp@stable`) talks to the plugin over a WebSocket on localhost.",
        "pricing": "freemium",
        "pricingNotes": "Cloud Professional plan is free with unlimited files and team members. Unlimited $7 per editor a month, capped at $175 a month. Enterprise $25 per member a month, minimum $950 a month. Private server $50,000 a year. Self-hosting the community edition is free under MPL-2.0, and self-hosted Enterprise starts at $950 a month (https://penpot.app/pricing).",
        "priceSummary": "$7 / seat-mo",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No payment support in the API or MCP docs.",
          "endpoints": []
        },
        "toolCount": 5,
        "popularity": {
          "githubStars": 60534,
          "npmWeekly": 1259,
          "pypiWeekly": null,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://help.penpot.app/technical-guide/integration/",
        "openapi": "https://design.penpot.app/api/main/doc/openapi",
        "capabilities": [
          "design.files",
          "design.components",
          "design.canvas",
          "design.comments",
          "design.code"
        ],
        "tags": [
          "open-source",
          "self-hosted",
          "local",
          "hosted",
          "freemium",
          "free-tier",
          "no-card",
          "mcp",
          "openapi",
          "webhooks"
        ],
        "lastRelease": "2026-10-01",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 43.8,
          "grade": "E",
          "agentReady": false,
          "rank": 408,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 4,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 41,
            "maintenance": 76,
            "payments": 30,
            "reliability": 46,
            "schema": 66,
            "security": 33,
            "transparency": 69
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": -5,
          "negativeNotes": [
            "-3: 2026-05-19, three advisories published together, a critical pre-authenticated account takeover through team-invitation tokens (GHSA-4937-35vc-hqjj), an MCP REPL server bound to 0.0.0.0 with an unauthenticated /execute endpoint allowing remote code execution (GHSA-22qr-rp27-j9wm, high) and authenticated SSRF in remote image import (GHSA-35g2-w7f6-8v9h, high). Fixed and published, so the deduction is reduced (https://github.com/penpot/penpot/security).",
            "-1: 2026-02-16, arbitrary file read through the create-font-variant RPC endpoint (GHSA-xp3f-g8rq-9px2, high). Fixed and published (https://github.com/penpot/penpot/security).",
            "-1: 2.18.0 (2026-09-23) fixed MCP keys being usable as full API access tokens, while the documented hosted setup puts that key in a URL query string, and fixed the MCP REPL starting in multi-user mode on the main bind address. Fixed in the changelog with no advisory (https://github.com/penpot/penpot/blob/develop/CHANGES.md)."
          ],
          "verdict": "MPL-2.0 and self-hostable, with API, webhooks and MCP on the free cloud plan. Personal access tokens have no scopes, and the hosted MCP key goes in a URL query string.",
          "strengths": [
            "MPL-2.0 and self-hostable, with API, webhooks and MCP on the free cloud plan",
            "MCP `execute_code` reaches the whole plugin API, so an agent can create, move, restyle and delete shapes",
            "OpenAPI description served by every instance",
            "Five releases between 22 July and 1 October 2026, with issues labelled and milestoned within a day"
          ],
          "weaknesses": [
            "Personal access tokens have no scopes, and the hosted MCP key goes in a URL query string",
            "No annotations on MCP tools and no read-only mode",
            "Four advisories in 2026, including MCP REPL remote code execution",
            "The MCP server needs the Penpot plugin open in a browser tab, so it can't run headless",
            "No status page, published rate limits or webhook documentation"
          ],
          "agentNotes": [
            "Call `get-profile` first to check the token, then `get-teams`, `get-projects` and `get-file` to walk down",
            "Ask for JSON with `Accept: application/json`, since some commands default to Transit",
            "Call `high_level_overview` and `penpot_api_info` before `execute_code`. They tell the model what the plugin API can do",
            "Keep the Penpot tab in the foreground. A backgrounded or frozen tab stalls MCP calls",
            "Give tokens an expiry. They carry full account access"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 2.5,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 43.8
            }
          ],
          "editorialScores": {
            "ergonomics": 41,
            "maintenance": 76,
            "payments": 30,
            "reliability": 46,
            "schema": 66,
            "security": 33,
            "transparency": 61
          },
          "provenanceScore": 76
        },
        "connect": {
          "http": "curl -H \"Authorization: Token $PENPOT_TOKEN\" https://design.penpot.app/api/rpc/command/get-profile",
          "claudeCode": "claude mcp add --transport http penpot \"https://design.penpot.app/mcp/stream?userToken=$PENPOT_MCP_KEY\"",
          "config": {
            "mcpServers": {
              "penpot": {
                "url": "https://design.penpot.app/mcp/stream?userToken=${PENPOT_MCP_KEY}"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/design.files",
          "tool": "https://letme.dev/penpot"
        },
        "area": "design-diagrams",
        "unitPrices": [
          {
            "item": "Unlimited plan",
            "unit": "seat-month",
            "usd": 7,
            "note": "per editor, capped at $175 a month"
          },
          {
            "item": "Enterprise plan",
            "unit": "seat-month",
            "usd": 25,
            "note": "minimum $950 a month"
          }
        ],
        "provenance": {
          "legalEntity": "Kaleidos Subsidiary SL",
          "domain": "penpot.app",
          "domainRegistered": "2020-05-26",
          "domainNote": "The site footer names KALEIDOS Subsidiary SL; Penpot is built by Kaleidos in Madrid.",
          "endpointOnVendorDomain": true,
          "terms": "https://penpot.app/terms",
          "privacy": "https://penpot.app/privacy",
          "statusPage": "",
          "changelog": "https://github.com/penpot/penpot/blob/develop/CHANGES.md",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "score": 76
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/penpot.json",
        "live": {
          "slug": "penpot",
          "probe": {
            "target": "https://design.penpot.app/api/rpc/command",
            "method": "get",
            "lastAt": "2026-10-04T22:35:28.75267133Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 55,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 62,
            "p95ms24h": 127,
            "samples24h": 272,
            "samples30d": 1086,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 256,
                "ok": 256
              }
            ]
          },
          "versions": [
            {
              "registry": "github",
              "name": "penpot/penpot",
              "version": "2.18.1",
              "released": "2026-10-01",
              "seenAt": "2026-10-04T16:36:28.006932933Z"
            },
            {
              "registry": "npm",
              "name": "@penpot/mcp",
              "version": "2.15.4",
              "seenAt": "2026-10-04T16:36:27.156471232Z"
            }
          ],
          "githubStars": 60692,
          "npmWeekly": 1371,
          "securityTxt": {
            "url": "https://penpot.app/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:47.794701224Z"
          },
          "domain": {
            "domain": "penpot.app",
            "registered": "2020-05-26",
            "source": "https://pubapi.registry.google/rdap/domain/penpot.app",
            "checkedAt": "2026-10-04T13:04:30.014939182Z"
          },
          "pages": [
            {
              "url": "https://raw.githubusercontent.com/penpot/penpot/develop/CHANGES.md",
              "kind": "changelog",
              "status": 304,
              "checkedAt": "2026-10-04T15:47:51.411949949Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "1fd9afe4e019"
            },
            {
              "url": "https://penpot.app/pricing",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:46:39.612388012Z",
              "changedAt": "2026-10-02T15:22:53.103729165Z",
              "fingerprint": "8115f46015d2"
            },
            {
              "url": "https://penpot.app/privacy",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:46:41.891573285Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "1ca40b39e068"
            },
            {
              "url": "https://penpot.app/terms",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:46:43.78052384Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "a9376c975871"
            }
          ],
          "updatedAt": "2026-10-04T22:35:28.75267133Z"
        }
      }
    ]
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/categories/design",
    "json": "https://www.anchorterminal.com/categories/design.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/categories/design.md",
    "slim": "https://www.anchorterminal.com/categories/design.min.md"
  },
  "markdown": "Design tools and shared canvases an agent can read from and write to. Files, frames, components, variables, boards and comments. Compared on what the API can change as well as read, design-to-code support, MCP servers and how access is scoped.\n\n- Tools ranked: 5 · agent-ready (BB or better): 0 · accept x402: 0 · hosted endpoints: 4 · desk reviews by the panel: 10\n- JSON: https://www.anchorterminal.com/api/v1/tools.json (list) · https://www.anchorterminal.com/api/v1/rankings.json (ranked) · https://www.anchorterminal.com/api/v1/x402.json (payable) · https://www.anchorterminal.com/api/v1/capabilities.json (by capability)\n- Grades run AA, A, BB, B, C, D, E, F · methodology: https://www.anchorterminal.com/benchmark/\n\n- Capabilities in this category: design.files, design.components, design.canvas, design.comments, design.code\n- https://letme.dev/design.files picks the top-graded tool in this list and says how to call it direct; calling through letme comes later (https://www.anchorterminal.com/letme/index.md)\n\n## Ranking\n\n| # | Tool | Vendor | Kind | Category | Grade | Score | Confidence | x402 | Auth | Where | Reviews | Page |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 164 | Figma API + MCP | Figma | HTTP API | Design | B | 66.1 | medium | no | OAuth or key | hosted | 3.5/5 (2) | https://www.anchorterminal.com/tools/figma-mcp.md |\n| 175 | Miro API + MCP | Miro | HTTP API | Design | B | 65.3 | medium | no | OAuth | hosted | 4/5 (2) | https://www.anchorterminal.com/tools/miro.md |\n| 238 | Lucid API + MCP | Lucid Software | HTTP API | Diagrams | C | 60.9 | medium | no | OAuth or key | hosted | 3/5 (2) | https://www.anchorterminal.com/tools/lucid.md |\n| 340 | Framer Server API | Framer | HTTP API | Design | D | 52.8 | medium | no | API key | local | 3/5 (2) | https://www.anchorterminal.com/tools/framer.md |\n| 408 | Penpot API + MCP | Penpot (Kaleidos) | HTTP API | Design | E | 43.8 | medium | no | Token | hosted | 2.5/5 (2) | https://www.anchorterminal.com/tools/penpot.md |\n\nScores are from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/), with Performance and Task success pending. p95 latency and context cost come from our probes, which haven't run yet.\n\n## Summaries\n\n### 164. Figma API + MCP, B (66.1)\n\nFigma's REST API and official MCP server connect applications and agents to its design platform. OpenAPI spec, TypeScript types and an llms.txt index for the REST API. View and Collab seats get 6 MCP calls a month on paid plans.\n\n- Page: https://www.anchorterminal.com/tools/figma-mcp · Markdown: https://www.anchorterminal.com/tools/figma-mcp.md · JSON: https://www.anchorterminal.com/api/v1/tools/figma-mcp.json\n- Capabilities: design.files, design.components, design.canvas, design.comments, design.code · endpoint: `https://api.figma.com/v1`\n\n### 175. Miro API + MCP, B (65.3)\n\nMiro'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. 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- Page: https://www.anchorterminal.com/tools/miro · Markdown: https://www.anchorterminal.com/tools/miro.md · JSON: https://www.anchorterminal.com/api/v1/tools/miro.json\n- Capabilities: design.files, design.canvas, design.comments, diagram.create, diagram.edit · endpoint: `https://api.miro.com/v2`\n\n### 238. Lucid API + MCP, C (60.9)\n\nREST API and hosted MCP server for creating, reading and managing Lucidchart and Lucidspark diagrams. OAuth 2.0 scopes with `:readonly` variants, and audit log endpoints in the REST API. No public changelog for the API or the MCP server.\n\n- Page: https://www.anchorterminal.com/tools/lucid · Markdown: https://www.anchorterminal.com/tools/lucid.md · JSON: https://www.anchorterminal.com/api/v1/tools/lucid.json\n- Capabilities: diagram.create, diagram.as-code, diagram.edit, diagram.export, design.files, design.canvas, design.comments · endpoint: `https://api.lucid.co`\n\n### 340. Framer Server API, D (52.8)\n\nFramer is a website builder with a design canvas. 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- Page: https://www.anchorterminal.com/tools/framer · Markdown: https://www.anchorterminal.com/tools/framer.md · JSON: https://www.anchorterminal.com/api/v1/tools/framer.json\n- Capabilities: design.files, design.components, design.canvas, design.code\n\n### 408. Penpot API + MCP, E (43.8)\n\nOpen-source design and prototyping tool, used as SaaS at design.penpot.app or self-hosted. MPL-2.0 and self-hostable, with API, webhooks and MCP on the free cloud plan. Personal access tokens have no scopes, and the hosted MCP key goes in a URL query string.\n\n- Page: https://www.anchorterminal.com/tools/penpot · Markdown: https://www.anchorterminal.com/tools/penpot.md · JSON: https://www.anchorterminal.com/api/v1/tools/penpot.json\n- Capabilities: design.files, design.components, design.canvas, design.comments, design.code · endpoint: `https://design.penpot.app/api/rpc/command`\n\n## Indexed, not reviewed (2)\n\nSorted into this category from public catalogues, with facts and our own checks but no score, grade or rank (https://www.anchorterminal.com/indexed/index.md).\n\n| Listing | Kind | What it does | Why it's here |\n| --- | --- | --- | --- |\n| [Figma MCP](https://www.anchorterminal.com/tools/scalably-figma-mcp.md) | MCP server | Figma MCP: list frames in a file and fetch one frame's JSON and image safely. 2 tools. | vendor's own |\n| [shippp.ai MCP server](https://www.anchorterminal.com/tools/shippp-mcp.md) | MCP server | Deterministic Chakra UI code from your Shippp design files, straight into your IDE agent. | vendor's own |\n\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "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": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Design workspaces \u0026 canvases",
        "url": ""
      }
    ],
    "description": "5 design workspaces \u0026 canvases ranked by the Anchor benchmark. Leader Figma API + MCP (B). Design tools and shared canvases an agent can read from and write to. Files, frames, components, variables, boards and comments. Compared on what the API can change as well as read, design-to-code support, MCP servers and how access is scoped.",
    "facts": [
      "Figma API + MCP B",
      "Miro API + MCP B",
      "Lucid API + MCP C"
    ],
    "h1": "Design workspace and canvas APIs for AI agents",
    "image": "https://www.anchorterminal.com/assets/og/categories-design.png",
    "path": "/categories/design",
    "published": "",
    "section": "tools",
    "title": "Design workspace and canvas APIs for AI agents, ranked",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/categories/design"
  },
  "tokens": {
    "markdown": 1700,
    "slim": 380
  },
  "version": 1
}
