search_brave
Perform privacy-focused web searches using Brave Search, retrieving up to 20 results with customizable safe search and region settings for precise and secure queries.
Instructions
Search using Brave Search - independent, privacy-focused search engine
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| maxResults | No | Maximum number of results to return (1-20) | |
| query | Yes | Search query for Brave Search | |
| region | No | Search region (e.g., "us", "uk", "de") | us |
| safeSearch | No | Safe search setting: strict, moderate, off | moderate |
Input Schema (JSON Schema)
{
"properties": {
"maxResults": {
"default": 10,
"description": "Maximum number of results to return (1-20)",
"maximum": 20,
"minimum": 1,
"type": "number"
},
"query": {
"description": "Search query for Brave Search",
"type": "string"
},
"region": {
"default": "us",
"description": "Search region (e.g., \"us\", \"uk\", \"de\")",
"type": "string"
},
"safeSearch": {
"default": "moderate",
"description": "Safe search setting: strict, moderate, off",
"enum": [
"strict",
"moderate",
"off"
],
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
}
Implementation Reference
- The main handler/execute function for the 'search_brave' tool. It processes input arguments, calls the searchBrave helper, formats the response with metadata, and handles errors.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 definition for the 'search_brave' tool, specifying parameters like 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'] },
- src/tools/search/alternative-search-engines.ts:90-169 (registration)Registration of 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 method in AlternativeSearchClient that generates simulated 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 registration call in the main server that invokes registerAlternativeSearchEngines, which registers search_brave among others.registerAlternativeSearchEngines(this.toolRegistry); // 3 tools: search_startpage, search_brave, search_ecosia