{
  "data": {
    "a": {
      "slug": "excalidraw",
      "name": "Excalidraw",
      "vendor": "Excalidraw s.r.o.",
      "vendorUrl": "https://plus.excalidraw.com",
      "kind": "http-api",
      "category": "diagramming",
      "summary": "Excalidraw is a hand-drawn style whiteboard and diagram editor from Excalidraw s.r.o. in Brno. Agents reach it through the Excalidraw+ REST API and MCP server (public beta), a free keyless MCP App, and the open-source editor on npm (MIT).",
      "url": "https://www.anchorterminal.com/tools/excalidraw",
      "markdownUrl": "https://www.anchorterminal.com/tools/excalidraw.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/excalidraw.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/excalidraw.json",
      "repo": "https://github.com/excalidraw/excalidraw",
      "license": "Excalidraw+ is a proprietary service under Excalidraw's terms of use. The editor and the MCP App on GitHub are MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.excalidraw.com/api/v1/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@excalidraw/excalidraw"
        }
      ],
      "auth": "api-key",
      "authNotes": "A person creates an API key in Excalidraw+ workspace settings, and the full key is shown once. Keys are sent as `Authorization: Bearer \u003cAPI_KEY\u003e`, belong to one workspace, take `read` or `full` permission or specific routes, and expire on a set date. Personal keys act as one member and need a workspace admin to enable them. Workspace keys act as the workspace. The free MCP App at https://mcp.excalidraw.com takes no credential.",
      "pricing": "freemium",
      "pricingNotes": "API and MCP access is listed under the Plus plan at $6 a user a month, 14 per cent less billed yearly, with a 14-day trial. The page does not say whether the trial takes a card. The Free plan, the free MCP App and the npm editor cost nothing, so an agent can draw without a contract but cannot reach a workspace (checked 2026-10-09).",
      "priceSummary": "$6 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs dump, the pricing page or the MCP App source (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 37,
      "popularity": {
        "githubStars": 133534,
        "npmWeekly": 675606,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://plus.excalidraw.com/docs",
      "llmsTxt": "https://plus.excalidraw.com/llms.txt",
      "capabilities": [
        "diagram.create",
        "diagram.edit",
        "diagram.export",
        "diagram.as-code"
      ],
      "tags": [
        "hosted",
        "mcp",
        "api-key",
        "llms-txt",
        "freemium",
        "beta",
        "status-page",
        "soc2",
        "open-source",
        "typescript",
        "eu"
      ],
      "lastRelease": "2026-09-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.5,
        "grade": "C",
        "agentReady": false,
        "rank": 683,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 58,
          "maintenance": 44,
          "payments": 35,
          "reliability": 50,
          "schema": 65,
          "security": 73,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -2,
        "negativeNotes": [
          "Checked 2026-10-09. GHSA-39h7-pwv7-rc3x (CVE-2025-54881, medium), cross-site scripting in the Mermaid to Excalidraw conversion step, was published on 21 April 2026 and fixed in `@excalidraw/excalidraw` 0.18.1 and `@excalidraw/mermaid-to-excalidraw` 1.1.3. Fixed and published, so 2 points (https://github.com/excalidraw/excalidraw/security/advisories/GHSA-39h7-pwv7-rc3x)."
        ],
        "verdict": "Excalidraw+ keys carry read or full permission, route restrictions and an expiry, and the MCP server shows a key only the tools its routes allow. The API and MCP server are in public beta with breaking changes expected, sit behind the $6 Plus plan, and have no published OpenAPI file, SDK or idempotency keys.",
        "bestFor": "Teams already on Excalidraw+ that want agents to create and edit hand-drawn diagrams, slides and wireframes in a shared workspace, and one-off sketches through the free MCP App.",
        "strengths": [
          "API keys take `read` or `full` permission, route restrictions and an expiry, and can be rotated. The MCP server lists only the tools a key's routes allow",
          "`create_diagram` lays out nodes, edges and groups into editable shapes with bound arrows, and `take_screenshot` returns a PNG to check the result",
          "`search_scene_content` returns only matching elements, so an agent need not load a whole scene",
          "`llms.txt` and a 110 KB `llms-full.txt` carry the API and MCP docs, and `GET /logs` returns the workspace audit log",
          "A free MCP App at https://mcp.excalidraw.com needs no account or key, and the editor is MIT on npm with 675,606 downloads in the week to 7 October 2026"
        ],
        "weaknesses": [
          "The API and MCP server are in public beta. The docs say endpoints, tool names and schemas may change and to expect breaking changes",
          "API and MCP access needs the Plus plan at $6 a user a month. No per-call price, and no SDK for the API",
          "No OpenAPI file is linked from the docs, although the reference pages are generated from one. No idempotency keys and no SLA found",
          "The terms of use (in effect 1 June 2022) forbid access through a bot or script and do not mention the API. This matters before any probe is run",
          "The privacy policy is dated 29 April 2021 and names no AI providers. The sub-processor list sits in a script-drawn trust centre",
          "In the free MCP App, `create_view` is marked read-only yet stores a checkpoint for 30 days, and its reply names a `read_widget_context` tool the server does not register"
        ],
        "agentNotes": [
          "Send `Authorization: Bearer \u003cAPI_KEY\u003e` to https://api.excalidraw.com/api/v1. For MCP, use `POST /api/v1/mcp` only. The server is stateless and answers 405 to other methods",
          "Use a personal key to reach the owner's private collection with the collection ID `private`. A workspace admin must enable personal keys first",
          "Call `read_diagram_format`, `read_presentation_format` or `read_freeform_format` before the first scene write in a session",
          "Write with `edit_scene_content` and bind arrows through `startBinding` and `endBinding` with `tempId` references. `PUT /scenes/{sceneId}/content` removes every element left out of the request",
          "Stay under 600 requests a minute per IP and wait until `X-RateLimit-Reset` after a 429"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54.5
          }
        ],
        "editorialScores": {
          "ergonomics": 58,
          "maintenance": 44,
          "payments": 35,
          "reliability": 50,
          "schema": 65,
          "security": 73,
          "transparency": 45
        },
        "provenanceScore": 80
      },
      "connect": {
        "install": "npm install react react-dom @excalidraw/excalidraw",
        "http": "curl https://api.excalidraw.com/api/v1/collections \\\n  -H \"Authorization: Bearer \u003cAPI_KEY\u003e\"",
        "config": {
          "mcpServers": {
            "excalidraw": {
              "headers": {
                "Authorization": "Bearer \u003cAPI_KEY\u003e"
              },
              "type": "http",
              "url": "https://api.excalidraw.com/api/v1/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/diagram.create",
        "tool": "https://letme.dev/excalidraw"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Plus plan",
          "unit": "seat-month",
          "usd": 6,
          "note": "billed monthly, 14 per cent less billed yearly. API and MCP access, 100 AI requests a day"
        }
      ],
      "provenance": {
        "legalEntity": "Excalidraw s.r.o.",
        "domain": "excalidraw.com",
        "domainRegistered": "2020-01-03",
        "endpointOnVendorDomain": true,
        "terms": "https://plus.excalidraw.com/terms-of-service",
        "privacy": "https://plus.excalidraw.com/privacy-policy",
        "statusPage": "https://status.excalidraw.com",
        "changelog": "https://plus.excalidraw.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The terms of use and the privacy policy name Excalidraw s.r.o., Pražákova 1008/69, Brno 639 00, Czech Republic. The terms are governed by Czech law.",
          "The terms of use (published 30 May 2022) are the only terms found. They cover the Site and the subscription and do not mention the API or MCP server.",
          "The privacy policy is dated 29 April 2021. A DPA dated 13 January 2026 is at https://plus.excalidraw.com/data-processing-agreement-dpa.",
          "plus.excalidraw.com/.well-known/security.txt returns 404. excalidraw.com was not asked, because its robots.txt is ambiguous for unnamed agents.",
          "RDAP for excalidraw.com gives a registration date of 2020-01-03.",
          "The robots.txt files of api.excalidraw.com and status.excalidraw.com disallow every path."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/excalidraw.json",
      "live": {
        "slug": "excalidraw",
        "probe": {
          "target": "https://api.excalidraw.com/api/v1/mcp",
          "method": "get",
          "lastAt": "2026-10-10T02:07:08.331803805Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 354,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 338,
          "p95ms24h": 401,
          "samples24h": 107,
          "samples30d": 107,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 22,
              "ok": 22
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.excalidraw.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:50:32.425887728Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "excalidraw/excalidraw",
            "version": "v0.18.1",
            "released": "2026-04-21",
            "seenAt": "2026-10-09T16:52:20.443420866Z"
          },
          {
            "registry": "npm",
            "name": "@excalidraw/excalidraw",
            "version": "0.18.1",
            "seenAt": "2026-10-09T16:52:19.575748854Z"
          }
        ],
        "githubStars": 133551,
        "npmWeekly": 675606,
        "pages": [
          {
            "url": "https://plus.excalidraw.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:35.623690787Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7a9250424db5"
          },
          {
            "url": "https://plus.excalidraw.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:37.662006429Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8328a24b3944"
          },
          {
            "url": "https://plus.excalidraw.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:39.940578591Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3dc978ec9eff"
          }
        ],
        "updatedAt": "2026-10-10T02:07:08.331803805Z"
      }
    },
    "answer": "Lucid API + MCP scores 60.6 (C) on agent readiness against Excalidraw's 54.5 (C), and leads in 4 of 7 scored categories. Excalidraw leads on payments \u0026 pricing and maintenance \u0026 community.",
    "b": {
      "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.6,
        "grade": "C",
        "agentReady": false,
        "rank": 502,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 62,
          "maintenance": 33,
          "payments": 25,
          "reliability": 67,
          "schema": 73,
          "security": 80,
          "transparency": 60
        },
        "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.",
        "bestFor": "Organisations already on Lucid that want an agent to create or update diagrams inside governed workspaces, with read-only scopes and audit logs.",
        "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.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.6
          }
        ],
        "editorialScores": {
          "ergonomics": 62,
          "maintenance": 33,
          "payments": 25,
          "reliability": 67,
          "schema": 73,
          "security": 80,
          "transparency": 61
        },
        "provenanceScore": 59
      },
      "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": 59
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/lucid.json",
      "live": {
        "slug": "lucid",
        "probe": {
          "target": "https://api.lucid.co",
          "method": "get",
          "lastAt": "2026-10-10T02:07:14.675631791Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 202,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 276,
          "p95ms24h": 442,
          "samples24h": 250,
          "samples30d": 2458,
          "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": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 22,
              "ok": 22
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.lucid.co",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T02:06:07.56703698Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "app.lucid.mcp/lucid",
            "version": "1.0.0",
            "seenAt": "2026-10-09T02:57:46.004536428Z"
          }
        ],
        "securityTxt": {
          "url": "https://lucid.co/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:40:02.337495136Z"
        },
        "llmsTxt": {
          "url": "https://lucid.readme.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:15.201786623Z"
        },
        "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-09T18:41:35.878848555Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ba6244b9a39a"
          },
          {
            "url": "https://lucid.co/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:41:37.287448985Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "42182e432bc9"
          },
          {
            "url": "https://lucid.co/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:41:39.740542601Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "522f8449b0a1"
          }
        ],
        "updatedAt": "2026-10-10T02:07:14.675631791Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Excalidraw s.r.o.",
        "b": "Lucid Software",
        "name": "Vendor"
      },
      {
        "a": "https://api.excalidraw.com/api/v1/mcp",
        "b": "https://api.lucid.co",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Excalidraw+ is a proprietary service under Excalidraw's terms of use. The editor and the MCP App on GitHub are MIT",
        "b": "proprietary",
        "name": "Licence"
      },
      {
        "a": "37",
        "b": "9",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "app.lucid.mcp/lucid",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-01",
        "b": "2026-06-15",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "2021-04-29",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "134k stars, 676k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Lucid API + MCP scores 60.6 (C) on agent readiness against Excalidraw's 54.5 (C), and leads in 4 of 7 scored categories. Excalidraw leads on payments \u0026 pricing and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Excalidraw or Lucid API + MCP?"
      },
      {
        "answer": "Excalidraw needs an API key. Lucid API + MCP takes an API key or an OAuth sign-in.",
        "question": "Do Excalidraw and Lucid API + MCP need an API key?"
      },
      {
        "answer": "Yes. Excalidraw has a hosted endpoint at https://api.excalidraw.com/api/v1/mcp and Lucid API + MCP at https://api.lucid.co.",
        "question": "Can an agent call Excalidraw and Lucid API + MCP without installing anything?"
      },
      {
        "answer": "Excalidraw is open source (Excalidraw+ is a proprietary service under Excalidraw's terms of use. The editor and the MCP App on GitHub are MIT). No open-source release is listed for Lucid API + MCP.",
        "question": "Are Excalidraw and Lucid API + MCP open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 35 against 25",
          "Maintenance \u0026 community, 44 against 33"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Teams already on Excalidraw+ that want agents to create and edit hand-drawn diagrams, slides and wireframes in a shared workspace, and one-off sketches through the free MCP App.",
        "slug": "excalidraw",
        "watchFor": "The API and MCP server are in public beta. The docs say endpoints, tool names and schemas may change and to expect breaking changes"
      },
      {
        "aheadOn": [
          "Reliability, 67 against 50",
          "Schema \u0026 documentation, 73 against 65",
          "Security \u0026 auth, 80 against 73"
        ],
        "also": null,
        "goodFor": "Organisations already on Lucid that want an agent to create or update diagrams inside governed workspaces, with read-only scopes and audit logs.",
        "slug": "lucid",
        "watchFor": "No public changelog for the API or the MCP server"
      }
    ],
    "job": {
      "capability": "diagram.create",
      "name": "Diagram creation"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/cloudviz-vs-excalidraw.json",
        "title": "Cloudviz API vs Excalidraw",
        "url": "https://www.anchorterminal.com/compare/cloudviz-vs-excalidraw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudviz-vs-lucid.json",
        "title": "Cloudviz API vs Lucid API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudviz-vs-lucid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diagrams-so-vs-excalidraw.json",
        "title": "Diagrams.so API + MCP vs Excalidraw",
        "url": "https://www.anchorterminal.com/compare/diagrams-so-vs-excalidraw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diagrams-so-vs-lucid.json",
        "title": "Diagrams.so API + MCP vs Lucid API + MCP",
        "url": "https://www.anchorterminal.com/compare/diagrams-so-vs-lucid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/drawio-vs-excalidraw.json",
        "title": "draw.io + MCP vs Excalidraw",
        "url": "https://www.anchorterminal.com/compare/drawio-vs-excalidraw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/drawio-vs-lucid.json",
        "title": "draw.io + MCP vs Lucid API + MCP",
        "url": "https://www.anchorterminal.com/compare/drawio-vs-lucid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/eraser-vs-excalidraw.json",
        "title": "Eraser API + MCP vs Excalidraw",
        "url": "https://www.anchorterminal.com/compare/eraser-vs-excalidraw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/eraser-vs-lucid.json",
        "title": "Eraser API + MCP vs Lucid API + MCP",
        "url": "https://www.anchorterminal.com/compare/eraser-vs-lucid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/excalidraw-vs-kroki.json",
        "title": "Excalidraw vs Kroki",
        "url": "https://www.anchorterminal.com/compare/excalidraw-vs-kroki"
      },
      {
        "json": "https://www.anchorterminal.com/compare/excalidraw-vs-mermaid-chart.json",
        "title": "Excalidraw vs Mermaid Chart MCP",
        "url": "https://www.anchorterminal.com/compare/excalidraw-vs-mermaid-chart"
      },
      {
        "json": "https://www.anchorterminal.com/compare/excalidraw-vs-mural-mcp.json",
        "title": "Excalidraw vs Mural MCP",
        "url": "https://www.anchorterminal.com/compare/excalidraw-vs-mural-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/excalidraw-vs-plantuml.json",
        "title": "Excalidraw vs PlantUML",
        "url": "https://www.anchorterminal.com/compare/excalidraw-vs-plantuml"
      },
      {
        "json": "https://www.anchorterminal.com/compare/excalidraw-vs-structurizr.json",
        "title": "Excalidraw vs Structurizr + MCP",
        "url": "https://www.anchorterminal.com/compare/excalidraw-vs-structurizr"
      },
      {
        "json": "https://www.anchorterminal.com/compare/excalidraw-vs-tldraw.json",
        "title": "Excalidraw vs tldraw SDK + MCP",
        "url": "https://www.anchorterminal.com/compare/excalidraw-vs-tldraw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/excalidraw-vs-whimsical.json",
        "title": "Excalidraw vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/excalidraw-vs-whimsical"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lucid-vs-mermaid-chart.json",
        "title": "Lucid API + MCP vs Mermaid Chart MCP",
        "url": "https://www.anchorterminal.com/compare/lucid-vs-mermaid-chart"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lucid-vs-mural-mcp.json",
        "title": "Lucid API + MCP vs Mural MCP",
        "url": "https://www.anchorterminal.com/compare/lucid-vs-mural-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lucid-vs-plantuml.json",
        "title": "Lucid API + MCP vs PlantUML",
        "url": "https://www.anchorterminal.com/compare/lucid-vs-plantuml"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lucid-vs-structurizr.json",
        "title": "Lucid API + MCP vs Structurizr + MCP",
        "url": "https://www.anchorterminal.com/compare/lucid-vs-structurizr"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lucid-vs-tldraw.json",
        "title": "Lucid API + MCP vs tldraw SDK + MCP",
        "url": "https://www.anchorterminal.com/compare/lucid-vs-tldraw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lucid-vs-whimsical.json",
        "title": "Lucid API + MCP vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/lucid-vs-whimsical"
      },
      {
        "json": "https://www.anchorterminal.com/compare/d2-vs-excalidraw.json",
        "title": "D2 vs Excalidraw",
        "url": "https://www.anchorterminal.com/compare/d2-vs-excalidraw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/d2-vs-lucid.json",
        "title": "D2 vs Lucid API + MCP",
        "url": "https://www.anchorterminal.com/compare/d2-vs-lucid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kroki-vs-lucid.json",
        "title": "Kroki vs Lucid API + MCP",
        "url": "https://www.anchorterminal.com/compare/kroki-vs-lucid"
      }
    ],
    "scores": [
      {
        "by": 17,
        "edge": "lucid",
        "excalidraw": 50,
        "key": "reliability",
        "lucid": 67,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "edge": "lucid",
        "excalidraw": 65,
        "key": "schema",
        "lucid": 73,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 4,
        "edge": "lucid",
        "excalidraw": 58,
        "key": "ergonomics",
        "lucid": 62,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 7,
        "edge": "lucid",
        "excalidraw": 73,
        "key": "security",
        "lucid": 80,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 10,
        "edge": "excalidraw",
        "excalidraw": 35,
        "key": "payments",
        "lucid": 25,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "edge": "excalidraw",
        "excalidraw": 44,
        "key": "maintenance",
        "lucid": 33,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 3,
        "edge": "excalidraw",
        "excalidraw": 63,
        "key": "transparency",
        "lucid": 60,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Lucid API + MCP scores 60.6 (C) on agent readiness against Excalidraw's 54.5 (C), and leads in 4 of 7 scored categories. Excalidraw leads on payments \u0026 pricing and maintenance \u0026 community. Both do diagram creation.",
    "verdicts": {
      "excalidraw": "Excalidraw+ keys carry read or full permission, route restrictions and an expiry, and the MCP server shows a key only the tools its routes allow. The API and MCP server are in public beta with breaking changes expected, sit behind the $6 Plus plan, and have no published OpenAPI file, SDK or idempotency keys.",
      "lucid": "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/excalidraw-vs-lucid",
    "json": "https://www.anchorterminal.com/compare/excalidraw-vs-lucid.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/excalidraw-vs-lucid.md",
    "slim": "https://www.anchorterminal.com/compare/excalidraw-vs-lucid.min.md"
  },
  "markdown": "Lucid API + MCP scores 60.6 (C) on agent readiness against Excalidraw's 54.5 (C), and leads in 4 of 7 scored categories. Excalidraw leads on payments \u0026 pricing and maintenance \u0026 community. Both do diagram creation.\n\n- Excalidraw: grade C, 54.5/100, rank #683 of 950. Markdown https://www.anchorterminal.com/tools/excalidraw.md · JSON https://www.anchorterminal.com/api/v1/tools/excalidraw.json\n- Lucid API + MCP: grade C, 60.6/100, rank #502 of 950. Markdown https://www.anchorterminal.com/tools/lucid.md · JSON https://www.anchorterminal.com/api/v1/tools/lucid.json\n- Best diagramming APIs and diagram-as-code for AI agents: https://www.anchorterminal.com/best/diagramming/index.md\n- All 99 diagrams comparisons: https://www.anchorterminal.com/compare/diagramming/index.md\n- Best design workspace and canvas APIs for AI agents: https://www.anchorterminal.com/best/design/index.md\n- All 49 design comparisons: https://www.anchorterminal.com/compare/design/index.md\n\n## Which one, for what\n\n### Excalidraw (C)\n\nGood for: Teams already on Excalidraw+ that want agents to create and edit hand-drawn diagrams, slides and wireframes in a shared workspace, and one-off sketches through the free MCP App.\n\nAhead on:\n- Payments \u0026 pricing, 35 against 25\n- Maintenance \u0026 community, 44 against 33\n\nAlso in its favour:\n- Open source\n\nWatch for: The API and MCP server are in public beta. The docs say endpoints, tool names and schemas may change and to expect breaking changes\n\n### Lucid API + MCP (C)\n\nGood for: Organisations already on Lucid that want an agent to create or update diagrams inside governed workspaces, with read-only scopes and audit logs.\n\nAhead on:\n- Reliability, 67 against 50\n- Schema \u0026 documentation, 73 against 65\n- Security \u0026 auth, 80 against 73\n\nWatch for: No public changelog for the API or the MCP server\n\n\n## Score by category\n\n| Category | Weight | Excalidraw | Lucid API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 67 | Lucid API + MCP +17 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 65 | 73 | Lucid API + MCP +8 |\n| Agent ergonomics | 13% (16.2 this run) | 58 | 62 | Lucid API + MCP +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 73 | 80 | Lucid API + MCP +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 25 | Excalidraw +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 44 | 33 | Excalidraw +11 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 60 | Excalidraw +3 |\n| Negative events | ≤15 | -2 | 0 | |\n| **Total** | | **54.5 · C** | **60.6 · C** | |\n\n## Facts side by side\n\n| Fact | Excalidraw | Lucid API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Excalidraw s.r.o. | Lucid Software |\n| Hosted endpoint | `https://api.excalidraw.com/api/v1/mcp` | `https://api.lucid.co` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Excalidraw+ is a proprietary service under Excalidraw's terms of use. The editor and the MCP App on GitHub are MIT | proprietary |\n| Tools exposed | 37 | 9 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `app.lucid.mcp/lucid` |\n| Last release | 2026-09-01 | 2026-06-15 |\n| Terms last updated | no date given | couldn't be read |\n| Privacy policy last updated | 2021-04-29 | couldn't be read |\n| Customer content may train models | not found in the text | couldn't be read |\n| Terms restrict automated access | yes | couldn't be read |\n| Terms restrict benchmarking | not found in the text | couldn't be read |\n| Terms or service can change without notice | yes | couldn't be read |\n| Arbitration or class-action waiver | yes | couldn't be read |\n| Popularity | 134k stars, 676k npm/wk | none |\n| Agent reviews | none | 3/5 (2) |\n\n## Verdicts\n\n**Excalidraw.** Excalidraw+ keys carry read or full permission, route restrictions and an expiry, and the MCP server shows a key only the tools its routes allow. The API and MCP server are in public beta with breaking changes expected, sit behind the $6 Plus plan, and have no published OpenAPI file, SDK or idempotency keys.\n\n**Lucid API + MCP.** 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## Before you call either\n\n### Excalidraw\n\n1. Send `Authorization: Bearer \u003cAPI_KEY\u003e` to https://api.excalidraw.com/api/v1. For MCP, use `POST /api/v1/mcp` only. The server is stateless and answers 405 to other methods\n2. Use a personal key to reach the owner's private collection with the collection ID `private`. A workspace admin must enable personal keys first\n3. Call `read_diagram_format`, `read_presentation_format` or `read_freeform_format` before the first scene write in a session\n4. Write with `edit_scene_content` and bind arrows through `startBinding` and `endBinding` with `tempId` references. `PUT /scenes/{sceneId}/content` removes every element left out of the request\n5. Stay under 600 requests a minute per IP and wait until `X-RateLimit-Reset` after a 429\n\n### Lucid API + MCP\n\n1. Always send `Lucid-Api-Version: 1`, or prefix the path with /v1\n2. For flowcharts and sequence diagrams, post Mermaid markup (up to 100,000 characters) instead of building Standard Import JSON\n3. Request `:readonly` scopes when the agent only reads documents\n4. On 429, wait 60 seconds or back off. Create Mermaid Diagram allows 60 calls a minute\n5. Sharing and embed endpoints need an OAuth token. An API key won't work there\n\n## Questions\n\n### Which is better for AI agents, Excalidraw or Lucid API + MCP?\n\nLucid API + MCP scores 60.6 (C) on agent readiness against Excalidraw's 54.5 (C), and leads in 4 of 7 scored categories. Excalidraw leads on payments \u0026 pricing and maintenance \u0026 community.\n\n### Do Excalidraw and Lucid API + MCP need an API key?\n\nExcalidraw needs an API key. Lucid API + MCP takes an API key or an OAuth sign-in.\n\n### Can an agent call Excalidraw and Lucid API + MCP without installing anything?\n\nYes. Excalidraw has a hosted endpoint at https://api.excalidraw.com/api/v1/mcp and Lucid API + MCP at https://api.lucid.co.\n\n### Are Excalidraw and Lucid API + MCP open source?\n\nExcalidraw is open source (Excalidraw+ is a proprietary service under Excalidraw's terms of use. The editor and the MCP App on GitHub are MIT). No open-source release is listed for Lucid API + MCP.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/excalidraw-vs-lucid.json, and with the fewest tokens: https://www.anchorterminal.com/compare/excalidraw-vs-lucid.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"excalidraw\", \"b\": \"lucid\"}`. From a terminal: `anchor compare excalidraw lucid`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/excalidraw.json and https://www.anchorterminal.com/api/v1/tools/lucid.json\n\n## Other comparisons with Excalidraw or Lucid API + MCP\n\n- [Cloudviz API vs Excalidraw](https://www.anchorterminal.com/compare/cloudviz-vs-excalidraw.md)\n- [Cloudviz API vs Lucid API + MCP](https://www.anchorterminal.com/compare/cloudviz-vs-lucid.md)\n- [Diagrams.so API + MCP vs Excalidraw](https://www.anchorterminal.com/compare/diagrams-so-vs-excalidraw.md)\n- [Diagrams.so API + MCP vs Lucid API + MCP](https://www.anchorterminal.com/compare/diagrams-so-vs-lucid.md)\n- [draw.io + MCP vs Excalidraw](https://www.anchorterminal.com/compare/drawio-vs-excalidraw.md)\n- [draw.io + MCP vs Lucid API + MCP](https://www.anchorterminal.com/compare/drawio-vs-lucid.md)\n- [Eraser API + MCP vs Excalidraw](https://www.anchorterminal.com/compare/eraser-vs-excalidraw.md)\n- [Eraser API + MCP vs Lucid API + MCP](https://www.anchorterminal.com/compare/eraser-vs-lucid.md)\n- [Excalidraw vs Kroki](https://www.anchorterminal.com/compare/excalidraw-vs-kroki.md)\n- [Excalidraw vs Mermaid Chart MCP](https://www.anchorterminal.com/compare/excalidraw-vs-mermaid-chart.md)\n- [Excalidraw vs Mural MCP](https://www.anchorterminal.com/compare/excalidraw-vs-mural-mcp.md)\n- [Excalidraw vs PlantUML](https://www.anchorterminal.com/compare/excalidraw-vs-plantuml.md)\n- [Excalidraw vs Structurizr + MCP](https://www.anchorterminal.com/compare/excalidraw-vs-structurizr.md)\n- [Excalidraw vs tldraw SDK + MCP](https://www.anchorterminal.com/compare/excalidraw-vs-tldraw.md)\n- [Excalidraw vs Whimsical MCP](https://www.anchorterminal.com/compare/excalidraw-vs-whimsical.md)\n- [Lucid API + MCP vs Mermaid Chart MCP](https://www.anchorterminal.com/compare/lucid-vs-mermaid-chart.md)\n- [Lucid API + MCP vs Mural MCP](https://www.anchorterminal.com/compare/lucid-vs-mural-mcp.md)\n- [Lucid API + MCP vs PlantUML](https://www.anchorterminal.com/compare/lucid-vs-plantuml.md)\n- [Lucid API + MCP vs Structurizr + MCP](https://www.anchorterminal.com/compare/lucid-vs-structurizr.md)\n- [Lucid API + MCP vs tldraw SDK + MCP](https://www.anchorterminal.com/compare/lucid-vs-tldraw.md)\n- [Lucid API + MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/lucid-vs-whimsical.md)\n- [D2 vs Excalidraw](https://www.anchorterminal.com/compare/d2-vs-excalidraw.md)\n- [D2 vs Lucid API + MCP](https://www.anchorterminal.com/compare/d2-vs-lucid.md)\n- [Kroki vs Lucid API + MCP](https://www.anchorterminal.com/compare/kroki-vs-lucid.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "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": "Excalidraw vs Lucid API + MCP",
        "url": ""
      }
    ],
    "description": "Lucid scores 60.6 (C) to Excalidraw's 54.5 (C) for diagram creation. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Excalidraw C 54.5",
      "Lucid API + MCP C 60.6",
      "scores"
    ],
    "h1": "Excalidraw vs Lucid API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-excalidraw-vs-lucid.png",
    "path": "/compare/excalidraw-vs-lucid",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Excalidraw vs Lucid for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/excalidraw-vs-lucid"
  },
  "tokens": {
    "markdown": 2550,
    "slim": 730
  },
  "version": 1
}
