MCP server: convert Markdown to HTML with frontmatter and inline-formula support.
Two simple tools with basic schemas and descriptions. Both tools have input schemas with proper types and required fields. Descriptions are present but minimal (under 100 chars). No parameter descriptions provided, LLMs cannot infer what 'markdown' or 'text' parameters control beyond the tool description. No output schemas documented. Error handling is present but generic ('markdown failed: ...'). Tools are read-only and low-risk, but lack the depth needed for production-grade agent integration.
Parse leading `---`-delimited YAML frontmatter and return { meta, body }.
Render Markdown to HTML. GFM enabled (tables, fenced code, task lists).
No parameter descriptions. 'markdown' and 'text' parameters lack descriptions explaining what they accept, format constraints, or size limits. LLMs cannot infer parameter semantics from names alone.
No output schema documented. Callers cannot predict the structure of responses. 'to_html' returns HTML string; 'extract_frontmatter' returns {meta, body} object. LLMs need explicit output schemas to plan downstream operations.
Generic error messages. Errors like 'markdown failed: ...' do not guide recovery. No distinction between retryable vs fatal errors. No suggestions for next steps.
No input validation guidance in descriptions. No mention of size limits, encoding, or edge cases (e.g., 'extract_frontmatter' silently returns {meta: null, body: text} if no frontmatter found, this behavior should be documented).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Tool names lack action verbs. 'to_html' uses 'to_' prefix (non-standard); 'extract_frontmatter' is acceptable but could be 'parse_frontmatter' for consistency. Baseline: 90% of A+ tools start with get_, list_, create_, search_, update_, delete_, send_.