Servidor MCP de ValueSerp - Búsqueda en Google asequible
Vayamos al grano. Si estás utilizando Claude para algo serio, te has encontrado con el muro del límite de conocimiento. Los datos de entrenamiento del modelo se detienen en una fecha determinada, y te quedas explicando a los clientes por qué tu asistente de IA piensa que todavía es 2023 o cuando sea.
El servidor MCP de ValueSerp soluciona esto al proporcionar a Claude acceso directo a los resultados de búsqueda de Google. Sin web scraping, sin pesadillas de análisis HTML, solo llamadas a la API limpias que devuelven datos estructurados.
Lo que realmente estás obteniendo
Este es un servidor de Protocolo de Contexto de Modelo (MCP) que actúa como un puente entre Claude y la API de búsqueda de ValueSerp. Expone cuatro puntos finales de búsqueda:
google_search- Standard web searchgoogle_news_search- News-specific resultsgoogle_images_search- Image search with filteringgoogle_videos_search- Video content search
Cada punto final devuelve datos JSON que Claude puede analizar y utilizar en las respuestas. Sin incrustaciones de iframe, sin ejecución de JavaScript, solo datos.
La Implementación Técnica
El servidor está construido en TypeScript y utiliza el SDK de MCP. Aquí está la arquitectura central:
// Client handles API communication
export class ValueSerpClient {
private async makeRequest(endpoint: string, params: Record<string, any>): Promise<ValueSerpResponse> {
const url = this.buildUrl(endpoint, params);
const response = await fetch(url, {
method: 'GET',
headers: {
'Accept': 'application/json',
'User-Agent': 'ValueSerp-MCP-Server/1.0.0'
}
});
// Error handling and response parsing
}
}
Lo interesante es la validación de parámetros. La API de búsqueda de Google tiene docenas de parámetros, y enviar combinaciones inválidas devuelve errores crípticos. El servidor valida todo antes de realizar las solicitudes:
// Parameter validation with Zod schemas
const searchParamsSchema = z.object({
q: z.string().describe("Search query (required)"),
num: z.number().min(1).max(100).default(10).optional(),
time_period: z.enum(["last_hour", "last_day", "last_week", "last_month", "last_year", "custom"]).optional(),
// ... 20+ more parameters
});
Rendimiento y Limitaciones
Hablemos de los números que realmente importan:
- Tiempo de respuesta: 200-000 ms dependiendo de la complejidad de la consulta
- Limites de tasa: Depende de tu plan de ValueSerp (típicamente 1000-10000 solicitudes/mes)
- Calidad del resultado: Igual que la API pública de Google—sin ingredientes secretos
- Segmentación geográfica: Soporta todos los dominios de Google y parámetros de ubicación
Lo que no hace:
- Ejecutar JavaScript en las páginas de resultados
- Eludir muros de pago o de inicio de sesión
- Resultados en caché (cada consulta accede a la API)
- Manejar la autenticación para contenido privado
Casos de uso del mundo real que realmente funcionan
Olvida la palabrería empresarial. Esto es para lo que los desarrolladores realmente están usando esto:
1. Asistente de Documentación Técnica
User: "What breaking changes were introduced in React 19?"
Claude: [Searches for recent React 19 documentation and changelog]
"Based on the official React blog post from [actual date], React 19 introduces..."
2. Respuesta a Incidentes de Seguridad
User: "Check if CVE-2024-XXXXX affects our stack"
Claude: [Searches vulnerability databases and security advisories]
"This CVE was published 3 hours ago. It affects Node.js versions..."
3. Automatización del Análisis Competitivo
User: "What features did Competitor X announce this week?"
Claude: [Searches news and company blogs]
"According to their blog post from Monday, they're launching..."
Configuración sin Asistencia
Suponiendo que puedes manejar comandos básicos de npm:
# Clone and build
git clone https://github.com/valueserp/mcp-server
cd mcp-server
npm install && npm run build
# Set your API key
export VALUESERP_API_KEY=your_key_here
# Add to Claude config
# Edit: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"valueserp": {
"command": "node",
"args": ["/path/to/valueserp-mcp/dist/server.js"]
}
}
}
Uso Avanzado de Parámetros
El verdadero poder proviene de las combinaciones de parámetros. Esto es lo que la mayoría de los tutoriales no te dirán:
// Time-boxed news search with duplicate filtering
await claude.use_tool('google_news_search', {
q: 'kubernetes vulnerability',
time_period: 'last_day',
sort_by: 'date',
show_duplicates: false, // Requires sort_by: 'date'
num: 50
});
// Location-specific results with auto-configuration
await claude.use_tool('google_search', {
q: 'restaurant reviews',
location: 'Tokyo, Japan',
location_auto: true, // Auto-sets gl, hl, and google_domain
order_online: true // Includes delivery/pickup data
});
// Academic image search
await claude.use_tool('google_images_search', {
q: 'cell mitosis diagram',
images_usage: 'non_commercial_reuse_with_modification',
images_type: 'line_drawing',
images_size: 'large'
});
Análisis de Costos
Seamos transparentes sobre la economía:
- Costo por búsqueda: $0.0025 o menos (en planes)
- Punto de equilibrio: ~20 búsquedas/día vs tiempo de investigación manual
La mayoría de las alternativas para SERP son más caras, lo que hace de esta una buena opción para aquellos con un presupuesto limitado que están dispuestos a tolerar más latencia.
Manejo de Errores y Casos Límite
El servidor maneja los modos de falla comunes de manera eficiente:
// Built-in retry logic for transient failures
if (!response.ok) {
const errorText = await response.text();
throw new Error(`ValueSerp API error: ${response.status} ${response.statusText} - ${errorText}`);
}
// Parameter validation prevents most 400 errors
if (params.show_duplicates && params.sort_by !== 'date') {
throw new ValidationError('show_duplicates requires sort_by=date');
}
La conclusión
Esta herramienta hace una cosa: le da a Claude acceso a los resultados de búsqueda actuales. No es revolucionaria, no es una "búsqueda impulsada por IA"; simplemente es un puente bien implementado entre dos servicios.
Si necesitas que Claude conozca cosas que sucedieron después de su fecha límite de entrenamiento, esto funciona. Si necesitas que busque en tus documentos internos o acceda a contenido autenticado, busca en otro lugar.
El código está en GitHub bajo GPL-3.0. Haz un fork, mejóralo o quejándote de él, tú decides.
