Ir a contenido principal
Equipo de crecimiento

Servidor MCP de ValueSerp - Búsqueda en Google asequible

Stefan-Lucian Deleanu

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.

GitHub - Incorporo/valueserp-googlesearch-mcp: Servidor MCP para acceder a valueserp (API de búsqueda de Google asequible)
Servidor MCP para acceder a valueserp (API de búsqueda de Google asequible) - Incorporo/valueserp-googlesearch-mcp

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 search
  • google_news_search - News-specific results
  • google_images_search - Image search with filtering
  • google_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.

Recursos