Excalidraw is Poor to agents.
Discry independently scored how well an AI agent can discover and understand the Excalidraw API from what’s public — not whether it’s usable. Below: every signal we checked, what’s costing the score, and what to change.
SCORED UNDER RUBRIC 1.2 · A full re-launch under Discry Score 2.5 — a new behavioral instrument, not comparable to these scores — is in progress.
Discovery
45% of score · 29/100Comprehension
55% of score · 75/100What we found
- An agent looking for a callable Excalidraw API hits a category mismatch: there is no REST endpoint or OpenAPI spec because the product ships as a React component library. The documented 'API' (excalidrawAPI) runs in the browser and must be embedded in a host app — an agent cannot invoke it over the network.
- Discovery signals are almost entirely absent at the root domain: llms.txt, llms-full.txt, and .well-known/mcp.json all return the SPA's index.html (HTTP 200 but HTML, not real files), and the primary excalidraw/excalidraw repo has no AGENTS.md. An agent gets false positives from the 200 responses.
- Once an agent finds docs.excalidraw.com, comprehension is strong (B/75): the Docusaurus docs convert cleanly to markdown, every API method leads with its type signature, descriptions are task-oriented ('updates the scene with the sceneData'), and examples use realistic full-element JSON across React, Next.js, Preact, and vanilla-browser setups.
- Positive discovery signal: Excalidraw is well-represented in the MCP ecosystem — an official Excalidraw+ MCP plus multiple community servers (excalidraw-mcp, yctimlin/mcp_excalidraw) are listed on registries like mcpservers.org, giving agents a real programmatic path even though the component docs don't advertise it.
- Capability boundaries and error recovery are only partially covered: the FAQ documents key 'cannot' cases (no built-in collaboration, no SSR, Preact caveats) and a few fixes, but there is no consolidated limitations page and troubleshooting is scattered — an agent would discover many edges only by failing.
What to change
Prioritized by impact on discoverability. You (or your docs platform) deploy these — Discry never touches your API.
- 01Add a real llms.txt (and ideally llms-full.txt) at docs.excalidraw.com summarizing the excalidrawAPI surface, the ExcalidrawElement schema, and links to the key guides — right now every agent probe returns the SPA shell, which is worse than a clean 404.
- 02Publish an AGENTS.md in the primary excalidraw/excalidraw repo describing the monorepo layout, the @excalidraw/excalidraw package, and how to construct valid element JSON — third-party forks and toolkits already carry this, but the canonical repo does not.
- 03Cross-link the Excalidraw+ MCP server and the .excalidraw JSON schema from the developer docs so agents discover the supported programmatic/agentic path instead of relying on community MCP servers.
- 04Consolidate a single 'Limitations & capability boundaries' page (no SSR, no built-in collaboration, zoom range 10%-100%, removed ready/readyPromise APIs, Preact/process caveats) so agents can read constraints up front rather than inferring them from FAQ fragments.
- 05Expand troubleshooting into actionable error-recovery guidance keyed to the errors developers actually hit (process is not defined, Brave anti-fingerprinting breaking text, SSR hydration), each with an explicit fix — turning the FAQ into a recovery reference.
Execution coverage · INFORMATIONAL, UNSCORED
Whether an agent can actually complete a call and recover from errors is the deeper Audit layer — documented here, but not part of the Discry Score.
Excalidraw's 'API' is the @excalidraw/excalidraw React component's imperative interface (excalidrawAPI), not a networked REST/HTTP API. There is no authentication, no HTTP error format, no rate limits, no pagination, and no idempotency to document — these execution dimensions are not applicable to a client-side library. Programmatic/agentic access to a hosted canvas exists via the separate Excalidraw+ MCP server, which is documented on plus.excalidraw.com but out of scope for the component docs.