Replace dsh's built-in web search with search MCP servers (Tavily / Brave / Exa / Perplexity / DuckDuckGo / custom), configured from the web Settings page. When this plugin is enabled the built-in DeepSeek search provider is disabled.
Single tool 'web_search' has a clear, action-verb name and reasonable description (118 chars). Input schema is present with two parameters (query, maxResults), both typed and described. However, output schema is not documented in the source code, the description mentions 'sources with title, snippet, and published date' but no formal schema definition is visible. Parameter descriptions are adequate but lack detail on format/constraints (e.g., what constitutes a valid query, exact behavior of maxResults clamping). No error handling guidance provided. Tool is READ_ONLY, which is appropriate, but no explicit idempotent or readonly annotations visible in the code.
Search through configured MCP search servers (Tavily, Brave, Exa, Perplexity, DuckDuckGo, or custom). Returns sources with title, snippet, and published date when available.
Output schema not documented. Description mentions 'sources with title, snippet, and published date' but no formal JSON schema is visible in code. LLMs cannot plan downstream operations without knowing the exact response structure.
Parameter 'maxResults' lacks constraint details. Description says '1-50, clamped per server limits' but does not explain what 'clamped' means or how per-server limits override the global constraint. LLMs may pass invalid values expecting consistent behavior.
No error handling guidance. If a search fails (timeout, invalid API key, malformed query), the tool provides no recovery hints. LLMs cannot self-correct or decide whether to retry.
Tool annotations missing. No explicit readOnlyHint, destructiveHint, or idempotentHint in the tool definition, even though web_search is clearly read-only and idempotent. This forces LLMs to infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Query parameter description is minimal ('The search query string'). Does not explain format constraints, length limits, special character handling, or when to use quoted phrases vs. boolean operators.