Streamable Excalidraw diagram MCP App server
Three tools with mixed quality. read_me and restore_checkpoint have adequate descriptions but minimal schemas. create_view has a detailed description and partial schema (elements array documented, but element object structure not formally defined). No parameter descriptions for any tool inputs. No error handling guidance. No output schemas documented. Naming is reasonable (verb_noun pattern) but schemas lack rigor expected for production tools.
Create or update an Excalidraw diagram with streaming elements. Emits elements progressively for smooth animation. Supports camera updates, checkpoints, and element deletion.
Read the Excalidraw element format guide and color palette reference. Do NOT call it again in this conversation — you will not see anything new.
Restore a previously saved diagram checkpoint by ID. Returns the saved elements and viewport state.
Input schemas lack parameter descriptions. All three tools have empty or undescribed input objects. LLMs cannot infer what 'elements' array should contain or what 'checkpoint_id' format is expected.
Output schemas not documented. No specification of what read_me returns, what create_view returns after streaming, or what restore_checkpoint returns. LLMs cannot plan downstream operations.
create_view 'elements' parameter lacks formal schema. Description mentions 'rectangles, ellipses, diamonds, text, arrows, camera updates, checkpoints, deletions' but no JSON Schema defines the element object structure, required fields, or valid types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next (e.g., if checkpoint_id is invalid).
create_view description warns 'Do NOT call it again in this conversation' but this is a tool behavior constraint, not a parameter constraint. Should be enforced server-side or documented as a usage pattern, not a user-facing warning.