MCP server for markdown linting, front matter validation, and Mermaid SVG rendering
Server has 4 tools with clear verb-noun naming (lint_markdown, validate_front_matter, render_mermaid_diagrams, extract_mermaid_from_svg). All tools have descriptions (avg 180 chars, within 10-1024 baseline). Input schemas use Zod with type definitions and descriptions. However, output schemas are not documented, responses are JSON-stringified without field-level documentation. Parameter descriptions are present but some lack format/constraint details (e.g., 'attachments_dir' lacks example format). No error handling guidance visible in tool definitions. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles (render_mermaid_diagrams is WRITE, others READ_ONLY). Missing pagination for potential list results.
Extract the original Mermaid diagram source embedded in an SVG file created by render_mermaid_diagrams. Returns the raw source and a ready-to-use mermaid code block that can replace the image link in the markdown for editing. Pass the SVG file content as a string (read it from disk first).
Lint markdown content and return errors with a corrected version. Pass the contents of .markdownlint.json as config if available.
Extract all mermaid code blocks from markdown content, render each to SVG, and return the modified markdown with GitHub-style image links replacing the code blocks. The Mermaid source is embedded base64-encoded in each SVG metadata element. Failed blocks are left unchanged. The front matter is updated with mermaid_svg_source: base64-embedded. SVGs are returned as base64-encoded data for the client to write to disk.
Validate the YAML front matter of a markdown file against a JSON Schema. The schema should be read from .schemas/{type}.json where type is the value of the "type" field in the front matter.
Output schemas not documented. Tools return JSON-stringified results without field-level documentation. LLMs cannot plan downstream operations or extract specific fields reliably.
Tool annotations missing. render_mermaid_diagrams is destructive (WRITE risk) but lacks destructiveHint. lint_markdown and others are read-only but lack readOnlyHint. Agents cannot determine retry safety or side-effect scope.
Parameter format constraints incomplete. 'attachments_dir' and 'document_title' lack examples or format guidance (e.g., 'relative path like attachments/ or docs/assets'). 'theme' enum is clear, but 'background' accepts free-form strings without validation hints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
No error handling guidance in tool descriptions. Tools do not document failure modes (e.g., 'If Mermaid rendering fails, the block is left unchanged' is mentioned but not actionable recovery steps). LLMs lack guidance on retry vs. user-fixable errors.
No pagination or result limits documented. If lint_markdown or validate_front_matter process large files or return many errors, no limit or pagination mechanism is visible. Could exhaust context window.