MCP server providing web search functionality through SearXNG, enabling models to search the web using multiple search engines and categories
Single tool 'web_search' has a complete input schema with 6 parameters and proper type definitions. However, the tool description is in Chinese and lacks LLM-optimized clarity about WHEN to use it vs alternatives. Parameter descriptions are present but generic (e.g., 'search query' for 'query'). No output schema is documented, the tool returns formatted text but the structure is not specified. Error handling exists but lacks recovery guidance. The tool does one thing (search) which is good, but lacks the depth expected for production use.
使用SearXNG搜索网络信息
Tool description is in Chinese ('使用SearXNG搜索网络信息') and lacks LLM-optimized English clarity. Descriptions should explain WHAT the tool does, WHEN to use it, and any prerequisites in the LLM's working language.
Output schema is not documented. The tool returns formatted text via format_search_results(), but the structure (fields, types, pagination) is not specified. LLMs cannot plan downstream calls or extract data reliably without knowing the response shape.
Parameter descriptions are generic and lack actionable constraints. E.g., 'search query' does not explain length limits, special characters, or language requirements. 'time_range' lists examples ('day', 'week', 'month', 'year') in description instead of using an enum constraint.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Error handling returns generic McpError with message only. Does not categorize errors as retryable, user-fixable, or fatal, and does not provide recovery guidance (e.g., 'Try a simpler query' or 'Check SearXNG instance URL').
No pagination support. The tool accepts max_results but does not return a total count, next_cursor, or offset. Large result sets will be truncated silently, and agents cannot iterate through all results.