HTML to clean Markdown API — converts web pages, documents, and YouTube videos to Markdown via MCP and HTTP REST API
md-succ-ai exposes 3 well-named tools with generally clear descriptions and valid JSON Schema input definitions. All tools start with action verbs (convert_, extract_, batch_) and serve distinct purposes. Descriptions are adequate (100-180 chars range) and explain what the tools do. However, there are meaningful gaps: output schemas are not formally documented in the visible code; error handling guidance is minimal; parameters lack some constraint details (e.g., max URL count for batch_convert is stated but not enforced via schema maxItems); and some parameter descriptions could be more actionable. The server is HTTP-based and appears stateless, which aligns with current MCP standards, but tool annotations (readOnlyHint, idempotentHint) are not present. Tool composition is reasonable, each tool has a single responsibility, and related tools (convert_url, batch_convert) have complementary interfaces. Parameter naming is verb_noun compliant and generally clear.
Convert multiple URLs to Markdown in parallel. Maximum 20 URLs per batch. Partial failures are reported per-URL.
Convert a URL to clean, readable Markdown. Supports articles, docs, blogs, and any web page.
Extract structured data from a web page using a JSON schema. Fetches the page, converts to markdown, then extracts fields matching the schema via LLM.
Output schemas are not formally documented in tool definitions. Callers must infer response structure from runtime behavior or code inspection.
Tool annotations (readOnlyHint, idempotentHint, destructiveHint) are absent. All three tools are read-only, but this is not declared in the schema or via annotations.
Numeric and array constraints are under-specified. batch_convert documents 'Maximum 20 URLs' but schema lacks maxItems. max_tokens lacks min/max bounds. This forces LLMs to guess valid ranges.
Error handling is generic and lacks recovery guidance. 'Error converting URL' or 'Error extracting from URL' does not tell the LLM whether to retry, simplify the request, or escalate.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 62 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
extract_data schema parameter is typed as 'object' with no validation details. Description mentions 'JSON schema' but does not clarify what subset of JSON Schema is supported, whether custom types are allowed, or how extraction maps fields to the schema.
Parameter descriptions are sometimes under-specified. E.g., 'links' parameter description states 'Link style: inline (default) or citations (numbered references)' but does not explain the semantic difference for the user (when to choose one vs the other?).