A Mermaid diagram editor with native UI support and MCP mode for integration with Claude and other AI assistants
Critical gaps across all dimensions. Tool descriptions are present but minimal (10-50 chars, well below 194-char baseline). Input schemas lack proper type definitions and parameter descriptions, most parameters have no description field at all. No output schemas documented. Error handling absent. Security concerns: quit tool is destructive with no confirmation pattern. Tools appear inferred from HTTP handlers rather than explicitly registered with full MCP schemas. No pagination, no idempotency markers, no recovery guidance.
Download diagram content as a file with specified filename and content type
Bring the editor window to the foreground (macOS native window focus)
Retrieve the current diagram content and version
Retrieve text from the system clipboard (platform-specific)
Retrieve user preferences stored in the editor
Shut down the editor application
Update the diagram content from a file or string
Save user preferences to the editor state
No input schemas visible for 5 of 8 tools (get_diagram, get_preferences, get_native_clipboard, focus, quit). Tools with empty input {} have no parameter descriptions or type constraints.
Descriptions are 10-50 characters (well below 194-char baseline). Examples: 'Retrieve the current diagram content and version' (50 chars) lacks WHEN to use, prerequisites, or return structure. LLMs cannot reliably select tools with such minimal guidance.
No output schemas documented. Callers cannot know what fields to expect from get_diagram, get_preferences, or download. This breaks tool chaining and forces LLMs to guess response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 31 | 2026-07-28+ | v2 |
Destructive tool 'quit' has no confirmation pattern, dry-run, or recovery guidance. An LLM could terminate the editor without user consent. Violates irreversible-operation safety pattern.
Parameters in set_diagram and download lack descriptions. 'source' param in set_diagram has no guidance on valid values (e.g., is 'cli' the only option?). 'encoding' in download is undocumented. LLMs cannot validate inputs.