Markdown AST parser — parses markdown into typed JSON AST
The server provides 8 well-focused markdown processing tools with consistent naming (verb-noun pattern: md_*), complete input schemas with parameter descriptions, and clear descriptions for each tool. However, output schemas are not explicitly documented in the source, parameter descriptions are minimal (typically 1-2 lines), and error handling guidance is not visible. The toolset avoids multi-responsibility concerns and all tools are read-only, reducing security risk. Names are clear and action-oriented (parse, render, extract, transform), following the baseline pattern. Description lengths average ~80 chars, which is acceptable but could be more comprehensive. All parameters have type constraints and descriptions, meeting the baseline requirement.
Validate markdown against style rules
Parse markdown string into typed JSON AST
Parse markdown file into AST (reads from path)
Extract YAML frontmatter from markdown
Render markdown to HTML
Render markdown to plain text (strip formatting)
Extract table of contents from markdown
Apply transforms to markdown (resolve links, inject anchors)
Output schemas not documented in source. Tool descriptions state what inputs are needed but do not describe return structure (e.g., md_parse returns 'typed JSON AST' but AST structure not defined). LLMs cannot plan downstream tool calls without knowing output field names and types.
Parameter descriptions are minimal (1-2 lines). They state the parameter name and basic purpose but lack actionable guidance on format, constraints, or usage context. Example: 'markdown' param described as 'Markdown string to parse into AST', does not specify encoding, size limits, or dialect support.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 13 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 61 | - | v1 |
md_transform parameter 'transforms' declares an enum constraint (add_heading_ids, resolve_relative_links, strip_html, normalize_whitespace) but tool description does not explain what each transform does, when to use them, or their interaction if multiple are applied together.
No error handling guidance visible in tool descriptions. Descriptions do not state what errors are possible, when they occur, or how the agent should recover. Example: md_parse_file does not mention what happens if the file does not exist or is not readable.
Tool descriptions lack context on when to use each tool instead of similar alternatives. For example, md_parse vs md_parse_file distinction is clear, but it's unclear whether to call md_render_html or md_render_plaintext for a given use case, or how they differ semantically.