MCP server that turns your schema (SQL, Prisma, Drizzle, TypeORM, SQLAlchemy) into a Mermaid ERD, writes it straight into your docs, and flags when the diagram drifts from the schema. Zero dependencies.
erdlens has clear, well-structured tool definitions with good descriptions (avg 180 chars) and complete input schemas. All 5 tools are explicitly registered with name, description, and inputSchema. However, parameter descriptions are sparse or missing entirely, most params lack guidance on format, constraints, or when to use them. Output schemas are not documented, forcing LLMs to infer result structure. Error handling is minimal (generic 'Error: ' prefix). Tool naming is verb-forward but could be more specific (e.g., 'render_erd' vs 'write_erd_to_disk'). No tool annotations (readOnlyHint/destructiveHint) despite clear read/write semantics.
Check whether an ERD embedded in a doc (a .mmd file or a markdown file with a ```mermaid erDiagram block) still matches the current schema. Reports tables/columns/relations added or removed since the diagram was written. Use this in CI or before shipping docs.
Generate a Mermaid ERD from a schema and WRITE it to disk so it can be embedded directly in a document with no copy-paste. Writes out_path (.mmd), a sibling .md with the fenced block, and a self-contained .html preview.
Generate a Mermaid flowchart from a workflow spec and WRITE it to disk (.mmd + embeddable .md + .html preview). Same as render_erd but for workflows/pipelines.
Turn a database schema into a Mermaid erDiagram. Accepts SQL DDL, Prisma, Drizzle, TypeORM, or SQLAlchemy — pass a file path or the text directly. Returns the Mermaid source plus a ```mermaid fenced block you can paste straight into markdown.
Turn a workflow spec into a Mermaid flowchart. Accepts a tiny text DSL (`a -> b`, `a -> b : label`, chains, `?` decisions, start/end) or a JSON array of steps. Returns the Mermaid source + a ```mermaid fenced block.
Parameter descriptions missing or incomplete. 'source_path', 'source_text', 'source_type', 'out_path', 'direction' lack guidance on format, constraints, or mutual exclusivity. LLMs cannot infer whether to pass file path or text, or what 'auto' detection entails.
Output schemas not documented. Tools return text strings but LLMs need to know: Is it Mermaid source? Markdown block? Both? File paths written? Success/failure indicators? Undocumented outputs force LLMs to guess and risk misuse.
No tool annotations (readOnlyHint/destructiveHint). 'schema_to_erd' and 'drift_check' are read-only; 'render_erd' and 'render_workflow' write to disk. Annotations would clarify safety and retry semantics for agents.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Error handling is generic. Catch block returns 'Error: ' + message with no recovery guidance. If schema parsing fails, LLM has no hint to try a different source_type or check file syntax.
Mutually exclusive parameters not documented. 'source_path' and 'source_text' are alternatives, but no description states this. LLMs may pass both or neither, causing ambiguous failures.