@abhishekguptain/mcp-search-server
Version:
Multi Provider Search MCP supporting Google, Tavily, DuckDuckGo, and Brave providers.
40 lines (39 loc) • 1.79 kB
JavaScript
export function standardizeGoogleResults(rawResults, providerName) {
// Filter out results missing essential fields like snippet, title, or link
const filteredResults = rawResults.filter(item => item.title && item.link && typeof item.snippet === 'string' && item.snippet.length > 0);
return filteredResults.map((item) => ({
title: item.title,
link: item.link,
snippet: item.snippet,
provider: providerName,
}));
}
export function standardizeTavilyResults(rawResults, providerName) {
// Filter out results missing essential fields
// Note: Tavily provider already maps raw results to { title, link, content }
const filteredResults = rawResults.filter(item => item.title && item.link && typeof item.content === 'string' && item.content.length > 0);
return filteredResults.map((item) => ({
title: item.title,
link: item.link,
snippet: item.content, // Use 'content' as the snippet
provider: providerName,
}));
}
export function standardizeDuckDuckGoResults(rawResults, providerName) {
const filteredResults = rawResults.filter(item => item.title && item.link && typeof item.snippet === 'string' && item.snippet.length > 0);
return filteredResults.map((item) => ({
title: item.title,
link: item.link,
snippet: item.snippet,
provider: providerName,
}));
}
export function standardizeBraveResults(rawResults, providerName) {
const filteredResults = rawResults.filter(item => item.title && item.url && typeof item.description === 'string' && item.description.length > 0);
return filteredResults.map((item) => ({
title: item.title,
link: item.url,
snippet: item.description,
provider: providerName,
}));
}