MCP server for browser-based search functionality with multiple engine support and fallback options
Critical issues: 11 tools listed but only 6 unique tool names (search_web, extract_content, bulk_search, analyze_domain, cache_stats, search_web_fallback, fetch_page, visit_page). Duplicate tool registrations with identical or near-identical schemas create confusion. Most descriptions are generic (50-100 chars) and lack actionable context for LLM selection. Parameters present but many lack descriptions (e.g., 'check_subdomains' in analyze_domain has no description). No output schemas documented anywhere. Error handling guidance absent. Naming follows verb_noun pattern but lacks specificity, 'search_web' appears 4 times with different implementations, violating single-responsibility principle.
Analyze a domain for basic information
Perform multiple searches in parallel
Get cache statistics
Extract and analyze content from a webpage
Extract content from a specific webpage
Fetch a webpage and extract content using HTTP requests
Search the web using a browser with full JavaScript support
Search the web with advanced filtering and caching
Duplicate tool registrations: search_web appears 4 times, extract_content appears 2 times with nearly identical schemas. This violates single-responsibility principle and forces LLMs to guess which variant to use.
No output schemas documented. Tools return results but LLMs cannot plan downstream calls or extract required fields. Missing pagination info, field types, and chaining IDs.
Parameter descriptions missing or incomplete. 'check_subdomains' in analyze_domain has no description. 'content_type' enum values lack explanation of when to use 'article' vs 'all' vs 'text_only'.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
Search the web with multiple engine support
Search the web using HTTP requests (fallback method when browser is not available)
Visit a specific webpage using a browser and extract content
Generic tool descriptions (30-50 chars) lack context for LLM selection. 'Get cache statistics' tells LLM nothing about when to call it. 'Analyze a domain for basic information' is vague, what analysis? What information?
No error handling guidance. Tools lack recovery hints, retryability classification, or actionable error messages. LLMs cannot self-correct on failures.