A Model Context Protocol server for web and local search using the Brave Search API
Brave Search MCP has clear, well-structured tool definitions with comprehensive descriptions and properly typed schemas. Both tools follow verb_noun naming convention (brave_web_search, brave_local_search) and include detailed descriptions explaining when to use each. Input schemas are complete with type definitions and descriptions for all parameters. However, output schemas are not documented, parameter descriptions lack some constraint details (e.g., exact character limits), and error handling guidance is minimal. The server demonstrates solid production baseline quality but falls short of A-grade excellence due to missing output documentation and incomplete constraint specification.
Searches for local businesses and places using Brave's Local Search API. Best for queries related to physical locations, businesses, restaurants, services, etc. Returns detailed information including: - Business names and addresses - Ratings and review counts - Phone numbers and opening hours Use this when the query implies 'near me' or mentions specific locations. Automatically falls back to web search if no local results are found.
Performs a web search using the Brave Search API, ideal for general queries, news, articles, and online content. Use this for broad information gathering, recent events, or when you need diverse web sources. Supports pagination, content filtering, and freshness controls. Maximum 20 results per request, with offset for pagination.
Output schemas not documented. LLMs cannot plan downstream operations or extract required fields without knowing the response structure for each tool.
Parameter descriptions lack formal constraint specifications. Query max 400 chars and 50 words limits stated in description text but should be formalized as maxLength/pattern in schema; offset max 9 and count range 1-20 missing from parameter descriptions even though they appear in tool descriptions.
No error handling guidance. Tool descriptions do not explain what happens if queries fail, if local search falls back to web search, or how LLMs should recover from errors. Users are told about fallback behavior ('Automatically falls back to web search') but error conditions are not addressed.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 65 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Query parameter descriptions do not specify expected format or content type. 'Search query (max 400 chars, 50 words)' for web_search and 'Local search query (e.g. pizza near Central Park)' for local_search contain an example value ('pizza near Central Park') which LLMs may reuse literally rather than adapting to context.
No pagination result metadata. brave_web_search accepts offset and count but response structure does not document whether total result count, next_offset, or hasMore flag is returned. This prevents agents from iterating safely.