MCP server for SearXNG — private web search for Claude Code
searxng-mcp has 7 tools with mostly complete schemas and descriptions. Tool names follow verb_noun convention (search, fetch, crawl, clear). Descriptions are present and adequate (50-150 chars typical). However, several parameters lack type constraints (enums for category, time_range, domain_profile), and output schemas are not documented in the source. Error handling guidance is absent. The 'clear_cache' tool is destructive but has no confirmation pattern. Parameter descriptions are generic ('Search query' vs 'Natural language search query, 2-500 chars'). No per-tool output schema documentation visible.
Clear the in-process and distributed caches
Crawl and extract content from a website with manifest generation
Get aggregated domain capability statistics and tier success rates
Fetch and parse content from a specific URL with multi-tier fallback
Search using SearXNG with optional reranking
Search using SearXNG and fetch full content from top results
Destructive tool 'clear_cache' lacks confirmation pattern and error recovery guidance. No dry-run or confirmation step before cache wipe.
Parameter 'category', 'time_range', and 'domain_profile' accept free-form strings instead of enums. LLMs will hallucinate invalid values like 'recent' or 'prod' instead of constrained options.
Output schemas not documented in source. LLMs cannot plan downstream tool calls or extract required fields (e.g., does search return 'url' or 'link'? 'title' or 'name'?).
Parameter descriptions are generic. 'Search query' does not specify length limits, character restrictions, or when to use vs. other search tools. Baseline: 72 chars per param; these average ~40.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Search using SearXNG, fetch content, and generate AI summaries
No error handling guidance. Tools do not document retryable vs. fatal errors, or what the LLM should do if a fetch fails or cache clear is denied.