Перейти к основному контенту
Инструменты для роста

ValueSerp MCP Сервер - Доступный Google Поиск

Стефан-Лучиано Делеану

Давайте перейдем к делу. Если вы используете Claude для чего-то серьезного, вы столкнулись с ограничением по знаниям. Данные, на которых обучена модель, заканчиваются на определенной дате, и вам придется объяснять клиентам, почему ваш ИИ-ассистент считает, что сейчас 2023 год или когда-либо еще.

Сервер ValueSerp MCP решает эту проблему, предоставляя Клоду прямой доступ к результатам поиска Google. Никакого веб-скрейпинга, никаких кошмаров с парсингом HTML — только чистые API-вызовы, которые возвращают структурированные данные.

GitHub - Incorporo/valueserp-googlesearch-mcp: MCP-сервер для доступа к valueserp (доступный API Google Search)
Сервер MCP для доступа к valueserp (доступный API поиска Google) - Incorporo/valueserp-googlesearch-mcp

Что вы на самом деле получаете

Это сервер Протокола Контекстной Модели (MCP), который служит мостом между Claude и API поиска ValueSerp. Он предоставляет четыре конечные точки поиска:

  • google_search - Standard web search
  • google_news_search - News-specific results
  • google_images_search - Image search with filtering
  • google_videos_search - Video content search

Каждый конечный пункт возвращает данные в формате JSON, которые Claude может анализировать и использовать в ответах. Никаких встроенных iframe, никакого выполнения JavaScript — только данные.

Техническая реализация

Сервер построен на TypeScript и использует MCP SDK. Вот основная архитектура:

// 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
  }
}

Интересная часть заключается в валидации параметров. Поисковый API Google имеет десятки параметров, и отправка недопустимых комбинаций возвращает непонятные ошибки. Сервер проверяет все перед выполнением запросов:


// 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
});

Производительность и Ограничения

Давайте поговорим о действительно важных цифрах:

  • Время ответа: 200-000 мс в зависимости от сложности запроса
  • Лимиты на запросы: Зависит от вашего плана ValueSerp (обычно 1000-10000 запросов в месяц)
  • Качество результата: То же самое, что и публичный API Google — без особых изысков
  • Географическое таргетирование: Поддерживает все домены Google и параметры местоположения

Что это не делает:

  • Выполните JavaScript на страницах результатов
  • Обойти платные стены или стены входа
  • Кэшировать результаты (каждый запрос обращается к API)
  • Обработка аутентификации для частного контента

Реальные примеры использования, которые действительно работают

Забудьте о корпоративной чепухе. Вот для чего разработчики на самом деле это используют:

1. Ассистент по технической документации


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. Реакция на инциденты безопасности


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. Автоматизация конкурентного анализа


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..."

Настройка без лишней помощи

Предполагая, что вы можете выполнять базовые команды 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"]
    }
  }
}

Расширенное использование параметров

Истинная сила заключается в комбинациях параметров. Вот что большинство учебников вам не скажет:


// 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'
});

Анализ затрат

Давайте будем прозрачными в вопросах экономики:

  • Стоимость за поиск: $0.0025 или меньше (по планам)
  • Точка безубыточности: ~20 поисков в день против времени ручного исследования

Большинство альтернатив для SERP дороже, что делает этот вариант хорошим выбором для тех, кто ограничен в бюджете и готов мириться с большей задержкой.

Обработка ошибок и крайние случаи

Сервер обрабатывает распространенные режимы отказа корректно:


// 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');
}

Суть дела

Этот инструмент делает одну вещь: он предоставляет Клоду доступ к текущим результатам поиска. Это не революционно, это не "поиск на основе ИИ" — это просто хорошо реализированный мост между двумя сервисами.

Если вам нужно, чтобы Клод знал о событиях, произошедших после окончания его обучения, это сработает. Если вам нужно, чтобы он искал ваши внутренние документы или получал доступ к аутентифицированному контенту, ищите в другом месте.

Код находится на GitHub под лицензией GPL-3.0. Форкайте его, улучшайте или жалуйтесь на него — ваш выбор.

Ресурсы