Skip to main content
Glama
flyanima

Open Search MCP

by flyanima

search_brave

Search the web using Brave Search, a privacy-focused search engine that returns results based on your query, with options to filter by region and safe search settings.

Instructions

Search using Brave Search - independent, privacy-focused search engine

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for Brave Search
maxResultsNoMaximum number of results to return (1-20)
safeSearchNoSafe search setting: strict, moderate, offmoderate
regionNoSearch region (e.g., "us", "uk", "de")us

Implementation Reference

  • Main execution handler for the search_brave tool. Processes input arguments, calls the searchBrave helper, formats results with metadata, and handles errors gracefully.
    execute: async (args: any) => { try { const { query, maxResults = 10, safeSearch = 'moderate', region = 'us' } = args; const startTime = Date.now(); const result = await client.searchBrave(query, { maxResults, safeSearch, region }); const searchTime = Date.now() - startTime; return { success: true, data: { source: 'Brave Search', query, safeSearch, region, totalResults: result.results.length, results: result.results, searchTime, timestamp: Date.now(), privacy: result.privacy, features: result.features, searchMetadata: { engine: 'Brave Search', independent: true, tracking: false, ads: false } } }; } catch (error) { return { success: false, error: error instanceof Error ? error.message : 'Brave search failed', data: { source: 'Brave Search', query: args.query, results: [], suggestions: [ 'Try simpler search terms', 'Check your internet connection', 'Use alternative search engines' ] } }; }
  • Input schema defining parameters for the search_brave tool: query (required), maxResults, safeSearch, and region.
    inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query for Brave Search' }, maxResults: { type: 'number', description: 'Maximum number of results to return (1-20)', default: 10, minimum: 1, maximum: 20 }, safeSearch: { type: 'string', description: 'Safe search setting: strict, moderate, off', default: 'moderate', enum: ['strict', 'moderate', 'off'] }, region: { type: 'string', description: 'Search region (e.g., "us", "uk", "de")', default: 'us' } }, required: ['query'] },
  • Registers the search_brave tool in the ToolRegistry, including name, description, schema, and execute handler.
    registry.registerTool({ name: 'search_brave', description: 'Search using Brave Search - independent, privacy-focused search engine', category: 'search', source: 'Brave Search', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query for Brave Search' }, maxResults: { type: 'number', description: 'Maximum number of results to return (1-20)', default: 10, minimum: 1, maximum: 20 }, safeSearch: { type: 'string', description: 'Safe search setting: strict, moderate, off', default: 'moderate', enum: ['strict', 'moderate', 'off'] }, region: { type: 'string', description: 'Search region (e.g., "us", "uk", "de")', default: 'us' } }, required: ['query'] }, execute: async (args: any) => { try { const { query, maxResults = 10, safeSearch = 'moderate', region = 'us' } = args; const startTime = Date.now(); const result = await client.searchBrave(query, { maxResults, safeSearch, region }); const searchTime = Date.now() - startTime; return { success: true, data: { source: 'Brave Search', query, safeSearch, region, totalResults: result.results.length, results: result.results, searchTime, timestamp: Date.now(), privacy: result.privacy, features: result.features, searchMetadata: { engine: 'Brave Search', independent: true, tracking: false, ads: false } } }; } catch (error) { return { success: false, error: error instanceof Error ? error.message : 'Brave search failed', data: { source: 'Brave Search', query: args.query, results: [], suggestions: [ 'Try simpler search terms', 'Check your internet connection', 'Use alternative search engines' ] } }; } } });
  • Helper function in AlternativeSearchClient that simulates Brave Search results using generateSearchResults.
    async searchBrave(query: string, options: any = {}) { try { // 由于Brave Search API需要特殊权限,我们使用模拟数据 const results = this.generateSearchResults(query, 'Brave Search', options.maxResults || 10); return { success: true, results, source: 'Brave Search', privacy: 'High privacy protection', features: ['No tracking', 'Independent index', 'Ad-free results'] }; } catch (error) { throw new Error(`Brave search failed: ${error instanceof Error ? error.message : String(error)}`); }
  • src/index.ts:241-241 (registration)
    Top-level call in server initialization that registers the alternative search engines including search_brave.
    registerAlternativeSearchEngines(this.toolRegistry); // 3 tools: search_startpage, search_brave, search_ecosia

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/flyanima/open-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server