MCP server for MarkUDown — connect AI agents to web scraping, search, and extraction
markudown-mcp provides 12 tools with complete Zod schemas and descriptions. Naming is action-oriented (scrape, crawl, search, extract). Descriptions are adequate (100-200 chars typical) but lack specificity on when to use each tool vs. alternatives. Parameters are well-typed with enums where appropriate (formats: ['markdown','summary']). Critical gap: output schemas are NOT documented, responses are JSON-stringified but structure is opaque to LLMs. Error handling returns basic messages but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint). The 'agent' tool (WRITE risk) lacks confirmation/dry-run pattern. Social media tools (instagram, x) accept sessionCookie as parameter, violates secret-injection pattern.
Run an autonomous agent on a URL with a given prompt. The agent can navigate, click, fill forms, and take screenshots to accomplish tasks.
Scrape multiple URLs in parallel. Returns markdown content for all provided URLs. More efficient than calling scrape repeatedly.
Monitor a URL for changes and return the current content.
Recursively crawl a website starting from a URL, following internal links up to a specified depth. Returns markdown content for each page visited.
Scrape multiple URLs and synthesize their content using an LLM to answer a research question. Ideal for comparative analysis or summarizing information across several sources.
Extract structured data from a URL using a natural language prompt. Describe what you want to extract and the API returns it as structured JSON.
Output schemas not documented. Responses are JSON-stringified but LLMs cannot infer field structure, types, or chaining IDs. Breaks downstream tool composition and forces LLMs to parse unstructured text.
sessionCookie parameter exposed in instagram and x tools violates secret-injection pattern. Credentials must never appear as tool parameters; use server-side injection via environment variables.
agent tool (WRITE risk) lacks confirmation/dry-run pattern. Autonomous agents can navigate, click, and fill forms, destructive actions should require explicit confirmation before execution.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Scrape Instagram data for a given resource and target.
Discover all URLs on a website by crawling its sitemap and link graph. Returns a list of URLs found on the site.
Scrape a single URL and return its content as clean markdown. Ideal for reading articles, documentation, or any public web page.
Take a full-page screenshot of a URL. Returns metadata about the screenshot. Note: binary image data cannot be returned as text; the response will contain a reference or base64 note from the API.
Run a Google search and optionally scrape the content of the top results. Returns search result URLs and, when enabled, their full markdown content.
Scrape X (Twitter) data for a given resource and target.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe read-only tools from destructive ones without explicit hints. Only 'agent' is marked WRITE; others lack annotations.
Error messages lack recovery guidance. Errors return raw messages (e.g. 'Error: <message>') without actionable next steps or error classification (retryable vs. user-fixable vs. fatal).