Rust MCP Server for Brave Search API integration, providing web search, news search, and location search capabilities
Three tools with complete input schemas and descriptions, but descriptions are generic and lack LLM-optimized guidance. All parameters have types and descriptions, meeting baseline requirements. However, descriptions average ~60 chars (well below the 194-char production baseline) and lack context on WHEN to use each tool or dependencies between them. No output schemas documented. Error handling is absent from tool definitions. Parameters like 'freshness' lack enum constraints despite accepting only specific values (pd, pw, pm, py). No tool annotations (readOnlyHint, etc.) despite all being read-only operations.
Search for local locations using Brave Search API
Search news using Brave Search API
Search the web using Brave Search API
Descriptions are too generic and lack LLM-optimized guidance. All three tools have ~60-char descriptions that do not explain WHEN to use each variant (web vs news vs local) or dependencies. Production baseline is 194 chars; these are 30% of that.
'freshness' parameter accepts only specific values (pd, pw, pm, py) but is defined as free-form string, not enum. This invites hallucinated values from LLMs.
No output schemas documented. LLMs cannot plan downstream operations or extract required fields (e.g., URLs, titles, metadata) without knowing response structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
No tool annotations despite all three tools being read-only. Missing readOnlyHint annotation prevents clients from optimizing caching and retry logic.
No error handling guidance in tool definitions. LLMs cannot distinguish between retryable failures (rate limit, timeout) and user-fixable errors (invalid query, unsupported country).