Universal web collection engine — extract, monitor, and search any website through Cloudflare. Provides MCP tools for scraping, extraction, crawling, contact collection, and batch processing.
Harvest MCP exhibits significant definition quality gaps. Tool descriptions are present but generic (avg ~80 chars, below 194-char baseline). Input schemas are visible but lack parameter descriptions, critical for LLM reasoning. No output schemas documented. Tool names follow verb_noun convention (good), but parameter naming is inconsistent (e.g., 'extraction' enum vs 'format' would be clearer). Error handling and recovery guidance absent. No tool annotations (readOnlyHint/destructiveHint). The 'denseforge_ingest' and 'schedule' tools are WRITE operations but lack confirmation/dry-run patterns. Batch tool (harvest_batch) lacks pagination guidance. Overall, definitions are skeletal, sufficient for basic invocation but insufficient for robust agent planning.
Ingest a web page into DenseForge knowledge base for future retrieval
Search DenseForge knowledge base (semantic search over ingested documents)
Scrape multiple URLs in parallel and return results for each.
Extract contact information (emails, phones, social links) from a web page.
Crawl a website and extract data from multiple pages following links.
Extract structured data from a web page using LLM. Describe what you want in natural language — no CSS selectors needed.
Scrape a web page and return its content as clean Markdown. Handles Cloudflare, anti-bot, JavaScript rendering.
Parameter descriptions missing or minimal. 'selector' appears in 5 tools with identical description but no guidance on CSS selector syntax, escaping, or error handling when selector matches nothing.
No output schemas documented. Tools return results but LLM cannot predict structure (e.g., does harvest_scrape return {content, metadata, url} or {markdown, text, html}?). Agents cannot plan downstream tool chains.
WRITE operations (denseforge_ingest, schedule) lack confirmation/dry-run pattern. Agents can trigger irreversible actions (ingest data, schedule recurring jobs) without user confirmation or preview.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
Get list of available healthy proxies from the proxy pool
Scrape a URL using proxy rotation and stealth mode
Schedule a recurring scrape job with cron expression
No error handling guidance. Tools lack recovery hints (e.g., 'If selector matches nothing, try a broader selector or inspect page structure with harvest_scrape'). Agents cannot self-correct on failures.
Tool annotations missing. No readOnlyHint, destructiveHint, or idempotentHint declared. LLM cannot infer which tools are safe to retry or which modify state.