◎ Discry Score
excalidraw.com
productivity · API
D
0 / 100
DISCOVERY0
COMPREHENSION0
Category leader: 92 (A)
Discry your API →
PRODUCTIVITY · RANK #20 OF 24

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.

Discry your API — freeView the docs ↗

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/100
OpenAPI specA machine-readable OpenAPI/Swagger spec agents can parse.Fail
llms.txtAn llms.txt index that points agents to the docs that matter.Fail
llms.txt qualityThe llms.txt is focused, current, and well under the size budget.Fail
llms-full.txtA full-text bundle agents can load in one request.Fail
AGENTS.mdAn AGENTS.md that tells coding agents how to build on the API.Fail
.well-known/mcp.jsonA discoverable MCP manifest at a well-known path.Fail
MCP registryThe API is listed in a public MCP registry.Pass
robots.txt AI directivesrobots.txt allows (or explicitly guides) AI crawlers.Pass
SitemapA sitemap so agents can enumerate the docs surface.Pass

Comprehension

55% of score · 75/100
Task-oriented descriptionsEndpoints described by what they accomplish, not just their shape.Pass
Realistic examplesRunnable, real-world request/response examples.Pass
Multi-step workflowsDocs that chain calls into complete jobs an agent can follow.Partial
Error-recovery guidanceDocumented failure modes and how to recover from them.Partial
Answer-first formatThe answer leads; preamble does not bury it.Pass
Capability boundariesClear limits — what the API can and cannot do.Partial
Naming consistencyConsistent, predictable naming across endpoints.Pass
Heading hierarchyClean heading structure agents can navigate.Pass
Markdown docsDocs available as clean markdown, not JS-rendered HTML only.Partial
Token efficiencyDocs are concise enough to fit an agent context window.Partial

What 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Error format documented Rate limits documented Pagination documented Idempotency documented

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.

See your own Discry Score.

Drop your API docs URL. See what an agent sees — in 60 seconds, free.

Discry your API — free