{
  "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": "Excalidraw scores 54.5 (C) on agent readiness against Whimsical MCP's 52.6 (D), and leads in 4 of 7 scored categories. Whimsical MCP leads on reliability, maintenance \u0026 community and transparency \u0026 trust.",
    "b": {
      "slug": "whimsical",
      "name": "Whimsical MCP",
      "vendor": "Whimsical",
      "vendorUrl": "https://whimsical.com",
      "kind": "mcp",
      "category": "diagramming",
      "summary": "Official hosted MCP server for the Whimsical workspace.",
      "url": "https://www.anchorterminal.com/tools/whimsical",
      "markdownUrl": "https://www.anchorterminal.com/tools/whimsical.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/whimsical.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/whimsical.json",
      "repo": "https://github.com/WhimsicalCode/mcp-server-guide",
      "license": "proprietary",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.whimsical.com/mcp",
      "packages": [],
      "auth": "oauth",
      "authNotes": "OAuth 2.1 with PKCE, scopes profile, mcp:read and mcp:write. No API keys. The beta REST API also uses OAuth, with client secrets issued by support to approved workspaces.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 with 50 board objects and 50 doc blocks a month, 10 AI credits a member and watermarked exports. Pro $10 an editor a month and Business $20 billed yearly, 17 per cent less than monthly billing. Pro removes the object limit. Every MCP tool works on Free, within those limits (https://whimsical.com/pricing).",
      "priceSummary": "$10 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 18,
      "popularity": {
        "githubStars": 5,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://whimsical.com/learn/integrations/mcp",
      "registryName": "com.whimsical/mcp",
      "capabilities": [
        "diagram.create",
        "diagram.edit",
        "diagram.export"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "mcp",
        "closed-source"
      ],
      "lastRelease": "2026-09-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 52.6,
        "grade": "D",
        "agentReady": false,
        "rank": 731,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 46,
          "maintenance": 56,
          "payments": 25,
          "reliability": 60,
          "schema": 54,
          "security": 58,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "OAuth 2.1 with PKCE and separate read and write scopes. No API keys, so it can't run headless or in CI.",
        "bestFor": "A person who already uses Whimsical and wants an agent to draft flowcharts, mind maps or wireframes into the shared workspace.",
        "strengths": [
          "OAuth 2.1 with PKCE and separate read and write scopes",
          "Flowcharts, mind maps, sequence diagrams, wireframes and docs, with automatic layout",
          "Status page with no incident since 6 March 2026",
          "SOC 2 Type II, a DPA and a published subprocessor list",
          "In the official MCP registry as com.whimsical/mcp, version 1.1.0 since 8 September 2026"
        ],
        "weaknesses": [
          "No API keys, so it can't run headless or in CI",
          "Rate limits and error responses aren't documented",
          "REST API is a closed, read-only beta",
          "Free plan caps creation at 50 board objects a month",
          "Export is PNG snapshots only. No SVG, draw.io or diagram code out"
        ],
        "agentNotes": [
          "Use `generate_diagram` or `generate_mind_map` for laid-out output rather than placing shapes with `create` and `edit`",
          "Call `how_to` for Whimsical's syntax before writing a large diagram",
          "Use `fetch` when you need a PNG snapshot of a board",
          "`delete` removes files or objects without asking. Confirm with the person first"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 52.6
          }
        ],
        "editorialScores": {
          "ergonomics": 46,
          "maintenance": 56,
          "payments": 25,
          "reliability": 60,
          "schema": 54,
          "security": 58,
          "transparency": 53
        },
        "provenanceScore": 87
      },
      "connect": {
        "claudeCode": "claude mcp add --transport http whimsical https://mcp.whimsical.com/mcp",
        "config": {
          "mcpServers": {
            "whimsical": {
              "url": "https://mcp.whimsical.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/diagram.create",
        "tool": "https://letme.dev/whimsical"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "seat-month",
          "usd": 10,
          "note": "per editor, billed yearly. Removes the Free object limit"
        },
        {
          "item": "Business plan",
          "unit": "seat-month",
          "usd": 20,
          "note": "per editor, billed yearly. Adds SAML SSO and SCIM"
        }
      ],
      "provenance": {
        "legalEntity": "Whimsical, Inc.",
        "domain": "whimsical.com",
        "domainRegistered": "1998-09-26",
        "domainNote": "whimsical.com was registered in 1998, long before the product launched.",
        "endpointOnVendorDomain": true,
        "terms": "https://whimsical.com/terms",
        "privacy": "https://whimsical.com/terms/privacy",
        "statusPage": "https://status.whimsical.com",
        "changelog": "https://whimsical.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "Address in the privacy policy is 1630 Welton Street, 7th Floor, Denver, Colorado 80202, USA",
          "The status page runs on Sorry and shows the last incident on 6 March 2026",
          "The MIT-licensed GitHub repo holds a setup guide and registry manifests, not the server",
          "security.txt not rechecked on 2026-10-01; none per the 30 September check"
        ],
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/whimsical.json",
      "live": {
        "slug": "whimsical",
        "probe": {
          "target": "https://mcp.whimsical.com/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-10-10T02:07:31.088165055Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 121,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 141,
          "p95ms24h": 327,
          "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.whimsical.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:51:25.376222116Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.whimsical/mcp",
            "version": "1.1.0",
            "seenAt": "2026-10-09T02:57:46.004536428Z"
          }
        ],
        "githubStars": 5,
        "securityTxt": {
          "url": "https://whimsical.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:11.656249626Z"
        },
        "domain": {
          "domain": "whimsical.com",
          "registered": "1998-09-26",
          "source": "https://rdap.verisign.com/com/v1/domain/whimsical.com",
          "checkedAt": "2026-10-04T13:09:41.71766445Z"
        },
        "pages": [
          {
            "url": "https://whimsical.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:47:27.654457305Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e3b0c44298fc"
          },
          {
            "url": "https://whimsical.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:47:29.76289389Z",
            "changedAt": "2026-10-07T18:10:27.409239976Z",
            "fingerprint": "905ec975c078"
          },
          {
            "url": "https://whimsical.com/terms/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:47:33.887990047Z",
            "changedAt": "2026-10-07T18:10:31.508028193Z",
            "fingerprint": "ec70cf1f50af"
          },
          {
            "url": "https://whimsical.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:47:31.882860807Z",
            "changedAt": "2026-10-07T18:10:29.530100104Z",
            "fingerprint": "35cea982cfc7"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.whimsical.com/mcp",
          "checkedAt": "2026-10-09T21:40:56.148167863Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-09-30T21:57:09.851244047Z"
        },
        "updatedAt": "2026-10-10T02:07:31.088165055Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Excalidraw s.r.o.",
        "b": "Whimsical",
        "name": "Vendor"
      },
      {
        "a": "https://api.excalidraw.com/api/v1/mcp",
        "b": "https://mcp.whimsical.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth",
        "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": "18",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "com.whimsical/mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-01",
        "b": "2026-09-08",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2025-07-30",
        "name": "Terms last updated"
      },
      {
        "a": "2021-04-29",
        "b": "2025-08-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "134k stars, 676k npm/wk",
        "b": "5 stars",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Excalidraw scores 54.5 (C) on agent readiness against Whimsical MCP's 52.6 (D), and leads in 4 of 7 scored categories. Whimsical MCP leads on reliability, maintenance \u0026 community and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Excalidraw or Whimsical MCP?"
      },
      {
        "answer": "Excalidraw needs an API key. Whimsical MCP uses an OAuth sign-in.",
        "question": "Do Excalidraw and Whimsical MCP need an API key?"
      },
      {
        "answer": "Yes. Excalidraw has a hosted endpoint at https://api.excalidraw.com/api/v1/mcp and Whimsical MCP at https://mcp.whimsical.com/mcp.",
        "question": "Can an agent call Excalidraw and Whimsical 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 Whimsical MCP.",
        "question": "Are Excalidraw and Whimsical MCP open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 65 against 54",
          "Agent ergonomics, 58 against 46",
          "Security \u0026 auth, 73 against 58",
          "Payments \u0026 pricing, 35 against 25"
        ],
        "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, 60 against 50",
          "Maintenance \u0026 community, 56 against 44",
          "Transparency \u0026 trust, 70 against 63"
        ],
        "also": null,
        "goodFor": "A person who already uses Whimsical and wants an agent to draft flowcharts, mind maps or wireframes into the shared workspace.",
        "slug": "whimsical",
        "watchFor": "No API keys, so it can't run headless or in CI"
      }
    ],
    "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-whimsical.json",
        "title": "Cloudviz API vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/cloudviz-vs-whimsical"
      },
      {
        "json": "https://www.anchorterminal.com/compare/d2-vs-whimsical.json",
        "title": "D2 vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/d2-vs-whimsical"
      },
      {
        "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-whimsical.json",
        "title": "Diagrams.so API + MCP vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/diagrams-so-vs-whimsical"
      },
      {
        "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-whimsical.json",
        "title": "draw.io + MCP vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/drawio-vs-whimsical"
      },
      {
        "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-whimsical.json",
        "title": "Eraser API + MCP vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/eraser-vs-whimsical"
      },
      {
        "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-lucid.json",
        "title": "Excalidraw vs Lucid API + MCP",
        "url": "https://www.anchorterminal.com/compare/excalidraw-vs-lucid"
      },
      {
        "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/kroki-vs-whimsical.json",
        "title": "Kroki vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/kroki-vs-whimsical"
      },
      {
        "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/mermaid-chart-vs-whimsical.json",
        "title": "Mermaid Chart MCP vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/mermaid-chart-vs-whimsical"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mural-mcp-vs-whimsical.json",
        "title": "Mural MCP vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/mural-mcp-vs-whimsical"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plantuml-vs-whimsical.json",
        "title": "PlantUML vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/plantuml-vs-whimsical"
      },
      {
        "json": "https://www.anchorterminal.com/compare/structurizr-vs-whimsical.json",
        "title": "Structurizr + MCP vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/structurizr-vs-whimsical"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tldraw-vs-whimsical.json",
        "title": "tldraw SDK + MCP vs Whimsical MCP",
        "url": "https://www.anchorterminal.com/compare/tldraw-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"
      }
    ],
    "scores": [
      {
        "by": 10,
        "edge": "whimsical",
        "excalidraw": 50,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "whimsical": 60
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "edge": "excalidraw",
        "excalidraw": 65,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "whimsical": 54
      },
      {
        "by": 12,
        "edge": "excalidraw",
        "excalidraw": 58,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "whimsical": 46
      },
      {
        "by": 15,
        "edge": "excalidraw",
        "excalidraw": 73,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "whimsical": 58
      },
      {
        "by": 10,
        "edge": "excalidraw",
        "excalidraw": 35,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "whimsical": 25
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 12,
        "edge": "whimsical",
        "excalidraw": 44,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "whimsical": 56
      },
      {
        "by": 7,
        "edge": "whimsical",
        "excalidraw": 63,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "whimsical": 70
      }
    ],
    "summary": "Excalidraw scores 54.5 (C) on agent readiness against Whimsical MCP's 52.6 (D), and leads in 4 of 7 scored categories. Whimsical MCP leads on reliability, maintenance \u0026 community and transparency \u0026 trust. 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.",
      "whimsical": "OAuth 2.1 with PKCE and separate read and write scopes. No API keys, so it can't run headless or in CI."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/excalidraw-vs-whimsical",
    "json": "https://www.anchorterminal.com/compare/excalidraw-vs-whimsical.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/excalidraw-vs-whimsical.md",
    "slim": "https://www.anchorterminal.com/compare/excalidraw-vs-whimsical.min.md"
  },
  "markdown": "Excalidraw scores 54.5 (C) on agent readiness against Whimsical MCP's 52.6 (D), and leads in 4 of 7 scored categories. Whimsical MCP leads on reliability, maintenance \u0026 community and transparency \u0026 trust. 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- Whimsical MCP: grade D, 52.6/100, rank #731 of 950. Markdown https://www.anchorterminal.com/tools/whimsical.md · JSON https://www.anchorterminal.com/api/v1/tools/whimsical.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\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- Schema \u0026 documentation, 65 against 54\n- Agent ergonomics, 58 against 46\n- Security \u0026 auth, 73 against 58\n- Payments \u0026 pricing, 35 against 25\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### Whimsical MCP (D)\n\nGood for: A person who already uses Whimsical and wants an agent to draft flowcharts, mind maps or wireframes into the shared workspace.\n\nAhead on:\n- Reliability, 60 against 50\n- Maintenance \u0026 community, 56 against 44\n- Transparency \u0026 trust, 70 against 63\n\nWatch for: No API keys, so it can't run headless or in CI\n\n\n## Score by category\n\n| Category | Weight | Excalidraw | Whimsical MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 60 | Whimsical MCP +10 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 65 | 54 | Excalidraw +11 |\n| Agent ergonomics | 13% (16.2 this run) | 58 | 46 | Excalidraw +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 73 | 58 | Excalidraw +15 |\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 | 56 | Whimsical MCP +12 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 70 | Whimsical MCP +7 |\n| Negative events | ≤15 | -2 | 0 | |\n| **Total** | | **54.5 · C** | **52.6 · D** | |\n\n## Facts side by side\n\n| Fact | Excalidraw | Whimsical MCP |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Excalidraw s.r.o. | Whimsical |\n| Hosted endpoint | `https://api.excalidraw.com/api/v1/mcp` | `https://mcp.whimsical.com/mcp` |\n| Transports | HTTP, Streamable HTTP | Streamable HTTP |\n| Auth | API key | OAuth |\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 | 18 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| MCP registry | not listed | `com.whimsical/mcp` |\n| Last release | 2026-09-01 | 2026-09-08 |\n| Terms last updated | no date given | 2025-07-30 |\n| Privacy policy last updated | 2021-04-29 | 2025-08-01 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 134k stars, 676k npm/wk | 5 stars |\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**Whimsical MCP.** OAuth 2.1 with PKCE and separate read and write scopes. No API keys, so it can't run headless or in CI.\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### Whimsical MCP\n\n1. Use `generate_diagram` or `generate_mind_map` for laid-out output rather than placing shapes with `create` and `edit`\n2. Call `how_to` for Whimsical's syntax before writing a large diagram\n3. Use `fetch` when you need a PNG snapshot of a board\n4. `delete` removes files or objects without asking. Confirm with the person first\n\n## Questions\n\n### Which is better for AI agents, Excalidraw or Whimsical MCP?\n\nExcalidraw scores 54.5 (C) on agent readiness against Whimsical MCP's 52.6 (D), and leads in 4 of 7 scored categories. Whimsical MCP leads on reliability, maintenance \u0026 community and transparency \u0026 trust.\n\n### Do Excalidraw and Whimsical MCP need an API key?\n\nExcalidraw needs an API key. Whimsical MCP uses an OAuth sign-in.\n\n### Can an agent call Excalidraw and Whimsical MCP without installing anything?\n\nYes. Excalidraw has a hosted endpoint at https://api.excalidraw.com/api/v1/mcp and Whimsical MCP at https://mcp.whimsical.com/mcp.\n\n### Are Excalidraw and Whimsical 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 Whimsical MCP.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/excalidraw-vs-whimsical.json, and with the fewest tokens: https://www.anchorterminal.com/compare/excalidraw-vs-whimsical.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"excalidraw\", \"b\": \"whimsical\"}`. From a terminal: `anchor compare excalidraw whimsical`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/excalidraw.json and https://www.anchorterminal.com/api/v1/tools/whimsical.json\n\n## Other comparisons with Excalidraw or Whimsical MCP\n\n- [Cloudviz API vs Excalidraw](https://www.anchorterminal.com/compare/cloudviz-vs-excalidraw.md)\n- [Cloudviz API vs Whimsical MCP](https://www.anchorterminal.com/compare/cloudviz-vs-whimsical.md)\n- [D2 vs Whimsical MCP](https://www.anchorterminal.com/compare/d2-vs-whimsical.md)\n- [Diagrams.so API + MCP vs Excalidraw](https://www.anchorterminal.com/compare/diagrams-so-vs-excalidraw.md)\n- [Diagrams.so API + MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/diagrams-so-vs-whimsical.md)\n- [draw.io + MCP vs Excalidraw](https://www.anchorterminal.com/compare/drawio-vs-excalidraw.md)\n- [draw.io + MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/drawio-vs-whimsical.md)\n- [Eraser API + MCP vs Excalidraw](https://www.anchorterminal.com/compare/eraser-vs-excalidraw.md)\n- [Eraser API + MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/eraser-vs-whimsical.md)\n- [Excalidraw vs Kroki](https://www.anchorterminal.com/compare/excalidraw-vs-kroki.md)\n- [Excalidraw vs Lucid API + MCP](https://www.anchorterminal.com/compare/excalidraw-vs-lucid.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- [Kroki vs Whimsical MCP](https://www.anchorterminal.com/compare/kroki-vs-whimsical.md)\n- [Lucid API + MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/lucid-vs-whimsical.md)\n- [Mermaid Chart MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/mermaid-chart-vs-whimsical.md)\n- [Mural MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/mural-mcp-vs-whimsical.md)\n- [PlantUML vs Whimsical MCP](https://www.anchorterminal.com/compare/plantuml-vs-whimsical.md)\n- [Structurizr + MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/structurizr-vs-whimsical.md)\n- [tldraw SDK + MCP vs Whimsical MCP](https://www.anchorterminal.com/compare/tldraw-vs-whimsical.md)\n- [D2 vs Excalidraw](https://www.anchorterminal.com/compare/d2-vs-excalidraw.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 Whimsical MCP",
        "url": ""
      }
    ],
    "description": "Excalidraw scores 54.5 (C) to Whimsical MCP's 52.6 (D) for diagram creation. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Excalidraw C 54.5",
      "Whimsical MCP D 52.6",
      "scores"
    ],
    "h1": "Excalidraw vs Whimsical MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-excalidraw-vs-whimsical.png",
    "path": "/compare/excalidraw-vs-whimsical",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Excalidraw vs Whimsical MCP for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/excalidraw-vs-whimsical"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 680
  },
  "version": 1
}
