A web search MCP server using Brave Search API, Google Custom Search API, and Bing Search API
Three tools with consistent naming (verb_noun pattern: brave_search, google_custom_search, bing_search) and clear descriptions (120-140 chars, within baseline 34-392 range). All tools have input schemas with type definitions and parameter descriptions. However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal (generic 'Error: ' prefix). Parameters lack enums where applicable (e.g., 'country' and 'freshness' in brave_search should be constrained). No per-tool output documentation or pagination guidance despite search tools returning result lists.
Performs a web search using the Bing Search API, ideal for general queries, news, articles, and online content.
Performs a web search using the Brave Search API, ideal for general queries, news, articles, and online content.
Performs a web search using the Google Custom Search API, ideal for general queries, news, articles, and online content.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Search tools return lists but no documentation of result format, count field, or pagination mechanism.
Parameter 'country' and 'freshness' in brave_search lack enum constraints. Free-form strings invite hallucinated values (e.g., 'INVALID_COUNTRY'). Should declare valid options as enum.
Error handling is generic ('Error: ' + message). Does not guide LLM on recovery (retry vs. user-fixable vs. fatal). No actionable error messages like 'Invalid country code. Supported: US, JP, GB, etc.'
Parameter descriptions lack format/constraint details. 'Search query (max 400 chars, 50 words)' is stated but not enforced in schema. 'Country code (default: ALL, US, JP, etc.)' lists examples instead of enum.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
google_custom_search and bing_search accept only 'query' parameter. No pagination (limit, offset, page) or result count control. Large result sets will blow context window.