mcp-brave-search
Version:
Brave Search MCP Server - Web and News Search via stdio
101 lines • 3.71 kB
JavaScript
/**
* Manual test script for Brave Search API
* Run with: BRAVE_API_KEY=your_key npm run test:api
*/
import { BraveSearchAPI } from '../build/brave-api.js';
async function testWebSearch() {
console.log('\n=== Testing Web Search ===\n');
const apiKey = process.env.BRAVE_API_KEY;
if (!apiKey) {
throw new Error('BRAVE_API_KEY environment variable is required');
}
const api = new BraveSearchAPI({ apiKey });
try {
// Test 1: Simple search
console.log('Test 1: Simple web search for "TypeScript"');
const result1 = await api.webSearch({
q: 'TypeScript best practices',
count: 5,
});
console.log(`✓ Found ${result1.web?.results.length || 0} results`);
console.log('First result:', result1.web?.results[0]?.title);
// Test 2: Search with language and country
console.log('\nTest 2: Search with country and language filters');
const result2 = await api.webSearch({
q: 'Node.js tutorial',
count: 3,
country: 'US',
search_lang: 'en',
});
console.log(`✓ Found ${result2.web?.results.length || 0} results`);
// Test 3: Search with freshness filter
console.log('\nTest 3: Search with freshness filter (past week)');
const result3 = await api.webSearch({
q: 'AI news',
count: 5,
freshness: 'pw',
});
console.log(`✓ Found ${result3.web?.results.length || 0} results`);
console.log('\n✅ All web search tests passed!\n');
}
catch (error) {
console.error('❌ Web search test failed:', error);
throw error;
}
}
async function testNewsSearch() {
console.log('\n=== Testing News Search ===\n');
const apiKey = process.env.BRAVE_API_KEY;
if (!apiKey) {
throw new Error('BRAVE_API_KEY environment variable is required');
}
const api = new BraveSearchAPI({ apiKey });
try {
// Test 1: Simple news search
console.log('Test 1: Simple news search for "technology"');
const result1 = await api.newsSearch({
q: 'technology',
count: 5,
});
console.log(`✓ Found ${result1.results.length} news articles`);
if (result1.results.length > 0) {
console.log('First article:', result1.results[0].title);
}
// Test 2: News search with freshness
console.log('\nTest 2: News from past 24 hours');
const result2 = await api.newsSearch({
q: 'AI technology',
count: 5,
freshness: 'pd',
});
console.log(`✓ Found ${result2.results.length} recent articles`);
// Test 3: News search with country filter
console.log('\nTest 3: News with country filter (US)');
const result3 = await api.newsSearch({
q: 'economy',
count: 5,
country: 'US',
});
console.log(`✓ Found ${result3.results.length} articles`);
console.log('\n✅ All news search tests passed!\n');
}
catch (error) {
console.error('❌ News search test failed:', error);
throw error;
}
}
async function runAllTests() {
console.log('🧪 Starting Brave Search API Tests...\n');
console.log('API Key:', process.env.BRAVE_API_KEY?.substring(0, 10) + '...');
try {
await testWebSearch();
await testNewsSearch();
console.log('🎉 All tests completed successfully!\n');
}
catch (error) {
console.error('\n💥 Tests failed:', error);
process.exit(1);
}
}
runAllTests();
//# sourceMappingURL=test-api.js.map