{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-brave-search","slug":"brave-search","name":"Brave Search","type":"mcp","url":"https://github.com/modelcontextprotocol/servers-archived/tree/main/src/brave-search","page_url":"https://unfragile.ai/brave-search","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-brave-search__cap_0","uri":"capability://search.retrieval.web.search.via.brave.api","name":"web-search-via-brave-api","description":"Executes web searches through Brave's Search API using MCP's standardized tool-calling interface, translating LLM function calls into HTTP requests to Brave's search endpoints and returning structured result sets with URLs, snippets, and metadata. Implements the MCP server pattern where search queries are exposed as callable tools that clients (like Claude) can invoke with natural language intent, abstracting away API authentication and response parsing.","intents":["I need to search the web for current information without leaving my AI conversation","I want my AI agent to autonomously look up facts and verify claims during reasoning","I need to integrate web search into an MCP-compatible client without writing custom API code"],"best_for":["AI application developers building agents that need real-time web information","Teams deploying Claude or other MCP-compatible LLMs that require search capabilities","Developers prototyping AI systems that need to verify information against live web data"],"limitations":["Archived implementation — no longer maintained, security patches not guaranteed","Requires valid Brave Search API key with associated rate limits and quota constraints","No built-in result caching or deduplication — each query hits the API independently","Search results depend entirely on Brave's index freshness and ranking algorithm"],"requires":["Brave Search API key (obtain from https://api.search.brave.com/)","MCP-compatible client (Claude Desktop, VS Code with MCP extension, or custom MCP host)","Network connectivity to Brave's API endpoints","Node.js runtime (version unspecified in archived repo, likely 14+ based on MCP SDK patterns)"],"input_types":["text query string","optional search parameters (count, offset, language, country filters)"],"output_types":["structured JSON with search results array","each result contains: title, url, description/snippet, metadata"],"categories":["search-retrieval","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-brave-search__cap_1","uri":"capability://search.retrieval.local.search.indexing","name":"local-search-indexing","description":"Provides local search capabilities alongside web search, allowing queries against indexed local documents or knowledge bases through the same MCP tool interface. The implementation likely maintains an in-memory or file-based index of local content that can be searched without external API calls, enabling hybrid search patterns where agents can query both live web data and private/local information.","intents":["I want my AI agent to search both public web data and my private local documents in a single query","I need to build a RAG system where search is exposed as an MCP tool for agent autonomy","I want to avoid API costs for searches against static local knowledge while still supporting web search"],"best_for":["Enterprise teams building internal AI assistants with proprietary document collections","Developers creating hybrid search systems that combine public and private information sources","Organizations wanting to minimize API costs by indexing frequently-accessed local content"],"limitations":["Local index must be pre-built and loaded at server startup — no dynamic indexing during runtime","Index size and search performance depend on available memory and indexing strategy (likely full-text or keyword-based, not semantic)","No built-in semantic search or embedding-based retrieval — search is likely keyword/lexical matching","Archived status means no updates to indexing algorithms or performance optimizations"],"requires":["Local documents or knowledge base files in supported format (likely plain text, markdown, or JSON)","MCP-compatible client with tool-calling support","Sufficient memory to hold the local index in-process"],"input_types":["text query string","optional scope/filter parameters to limit search to specific document collections"],"output_types":["structured JSON with local search results","results include document reference, matching snippet, relevance metadata"],"categories":["search-retrieval","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-brave-search__cap_2","uri":"capability://tool.use.integration.mcp.tool.schema.exposure","name":"mcp-tool-schema-exposure","description":"Exposes search capabilities (web and local) as standardized MCP tool definitions that clients can discover and invoke through the Model Context Protocol's tool-calling mechanism. The server implements MCP's tool schema specification, declaring input parameters, return types, and descriptions that allow LLM clients to understand how to call search functions and interpret results without hardcoded knowledge of the API.","intents":["I want my MCP client to automatically discover available search tools without manual configuration","I need to define search tool parameters in a way that LLMs can understand and use correctly","I want to expose search as a composable tool in multi-tool agent systems with proper type safety"],"best_for":["MCP client developers building tool discovery and invocation systems","AI framework developers implementing tool-calling orchestration","Teams standardizing on MCP for tool composition across multiple services"],"limitations":["Tool schema is static — defined at server startup and cannot be dynamically modified","Schema expressiveness limited by MCP's JSON Schema subset — no custom validation logic in schema","Clients must implement their own tool invocation logic based on schema — no built-in execution safety checks","No versioning mechanism for tool schemas — breaking changes require server restart"],"requires":["MCP SDK (TypeScript or Python) to implement tool schema definitions","MCP-compatible client that supports tool discovery and invocation","Understanding of JSON Schema for defining tool parameters"],"input_types":["MCP tool discovery requests (protocol-level, not user-facing)"],"output_types":["MCP tool schema definitions in JSON format","includes tool name, description, input parameters with types, output format"],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-brave-search__cap_3","uri":"capability://safety.moderation.api.key.management.and.authentication","name":"api-key-management-and-authentication","description":"Handles Brave Search API authentication by accepting and securely managing API keys, likely through environment variables or configuration files, and injecting credentials into outbound requests to Brave's endpoints. The server abstracts away authentication details from clients, allowing them to invoke search tools without handling API keys directly, reducing credential exposure surface area.","intents":["I want to use Brave Search in my MCP setup without exposing my API key to the client","I need to rotate or update my Brave API key without reconfiguring all client applications","I want to enforce API key security best practices in my MCP server deployment"],"best_for":["Teams deploying MCP servers in shared or multi-tenant environments","Organizations with strict credential management policies","Developers building production AI systems that require secure API key handling"],"limitations":["API key must be provided at server startup — no runtime key rotation without restart","No built-in key rotation or expiration management — relies on external key management systems","Archived implementation may not follow current security best practices for credential storage","No audit logging of API key usage or access patterns"],"requires":["Valid Brave Search API key","Environment variable or configuration file support in deployment environment","Secure storage mechanism for API keys (e.g., secrets manager, encrypted config)"],"input_types":["API key string (via environment variable or config file)"],"output_types":["authenticated HTTP requests to Brave API (internal, not user-facing)"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-brave-search__cap_4","uri":"capability://tool.use.integration.mcp.protocol.transport.abstraction","name":"mcp-protocol-transport-abstraction","description":"Implements the Model Context Protocol's communication layer, handling serialization/deserialization of tool calls and results between the MCP server and clients using JSON-RPC over stdio or HTTP transports. This abstraction allows the search functionality to be transport-agnostic, working with any MCP-compatible client regardless of how it communicates with the server.","intents":["I want to run Brave Search as an MCP server that works with Claude Desktop, VS Code, or custom clients","I need to decouple the search implementation from transport details so it works over stdio, HTTP, or other protocols","I want to ensure my search tool integrates seamlessly with the MCP ecosystem without custom protocol handling"],"best_for":["MCP ecosystem participants building servers that work across multiple clients","Teams deploying MCP servers in diverse environments (local, cloud, containerized)","Developers creating transport-agnostic tool implementations"],"limitations":["MCP protocol overhead adds latency compared to direct API calls — each tool invocation requires protocol serialization","Transport choice (stdio vs HTTP) affects deployment complexity and scalability — stdio suitable for local use, HTTP for remote","Archived implementation may not support newer MCP protocol versions or extensions","No built-in load balancing or connection pooling for HTTP transport"],"requires":["MCP SDK (TypeScript or Python) for protocol implementation","MCP-compatible client with protocol support","Understanding of JSON-RPC message format and MCP tool calling semantics"],"input_types":["MCP JSON-RPC requests (tool call messages)"],"output_types":["MCP JSON-RPC responses (tool result messages)"],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-brave-search__cap_5","uri":"capability://data.processing.analysis.search.result.formatting.and.normalization","name":"search-result-formatting-and-normalization","description":"Transforms raw responses from Brave Search API (and local search indexes) into a normalized, consistent format suitable for LLM consumption. The server parses Brave's API response structure, extracts relevant fields (title, URL, snippet), and formats them into structured JSON that clients can reliably parse and present to language models, handling variations in result types and metadata.","intents":["I want search results formatted consistently so my LLM can reliably parse and use them","I need to extract relevant information from Brave's API response without client-side parsing logic","I want to normalize web and local search results into a unified format for agent consumption"],"best_for":["LLM application developers who want clean, structured search results","Teams building agents that need to reliably parse search results for downstream processing","Developers integrating search into RAG or knowledge retrieval pipelines"],"limitations":["Normalization logic is opaque to clients — no control over which fields are included or how they're formatted","Result truncation or filtering may lose information relevant to specific use cases","No support for rich result types (news, images, videos) — likely limited to web search snippets","Archived implementation may not handle newer Brave API response formats or result types"],"requires":["Brave Search API returning structured JSON responses","MCP server with JSON transformation logic"],"input_types":["raw Brave Search API responses (JSON)","local search index results"],"output_types":["normalized JSON with consistent schema: title, url, snippet, metadata"],"categories":["data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-brave-search__cap_6","uri":"capability://safety.moderation.error.handling.and.api.failure.recovery","name":"error-handling-and-api-failure-recovery","description":"Implements error handling for Brave Search API failures, network timeouts, rate limiting, and invalid queries, translating API errors into MCP-compatible error responses that clients can interpret and handle gracefully. The server likely implements retry logic, timeout handling, and error message normalization to provide reliable search functionality despite transient API failures.","intents":["I want my AI agent to handle search failures gracefully without crashing","I need to understand why a search failed (rate limit, network error, invalid query) from the error response","I want automatic retry logic for transient API failures without client-side implementation"],"best_for":["Teams building production AI agents that require reliable search functionality","Developers deploying MCP servers in environments with unreliable network connectivity","Applications where search failures should not block agent execution"],"limitations":["Retry logic may mask transient issues — clients cannot distinguish between retried and immediate failures","No built-in circuit breaker pattern — repeated API failures will continue to be retried until timeout","Rate limiting handling depends on Brave API's error responses — no proactive rate limit management","Archived implementation may not handle newer Brave API error codes or rate limit headers"],"requires":["MCP server with error handling and retry logic","Timeout configuration for API requests","Understanding of Brave Search API error responses"],"input_types":["search queries that may trigger API errors"],"output_types":["MCP error responses with error code and message","optional retry information or fallback suggestions"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":29,"verified":false,"data_access_risk":"high","permissions":["Brave Search API key (obtain from https://api.search.brave.com/)","MCP-compatible client (Claude Desktop, VS Code with MCP extension, or custom MCP host)","Network connectivity to Brave's API endpoints","Node.js runtime (version unspecified in archived repo, likely 14+ based on MCP SDK patterns)","Local documents or knowledge base files in supported format (likely plain text, markdown, or JSON)","MCP-compatible client with tool-calling support","Sufficient memory to hold the local index in-process","MCP SDK (TypeScript or Python) to implement tool schema definitions","MCP-compatible client that supports tool discovery and invocation","Understanding of JSON Schema for defining tool parameters"],"failure_modes":["Archived implementation — no longer maintained, security patches not guaranteed","Requires valid Brave Search API key with associated rate limits and quota constraints","No built-in result caching or deduplication — each query hits the API independently","Search results depend entirely on Brave's index freshness and ranking algorithm","Local index must be pre-built and loaded at server startup — no dynamic indexing during runtime","Index size and search performance depend on available memory and indexing strategy (likely full-text or keyword-based, not semantic)","No built-in semantic search or embedding-based retrieval — search is likely keyword/lexical matching","Archived status means no updates to indexing algorithms or performance optimizations","Tool schema is static — defined at server startup and cannot be dynamically modified","Schema expressiveness limited by MCP's JSON Schema subset — no custom validation logic in schema","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.39,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:02.371Z","last_scraped_at":"2026-05-03T14:00:18.053Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=brave-search","compare_url":"https://unfragile.ai/compare?artifact=brave-search"}},"signature":"e7mg8EevSWnJOjKgOQDVLy20+/lpKqeml4JwHiD3m4ybLLl4p7wwDSEuBwpXcO7x1fbtwQN/AXjdT9LbWCq2Cw==","signedAt":"2026-06-21T01:43:13.982Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/brave-search","artifact":"https://unfragile.ai/brave-search","verify":"https://unfragile.ai/api/v1/verify?slug=brave-search","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}