Skip to main content
Glama

google-surf-mcp

✨Анти-бот MCP для поиска: без API-ключа✨

English | 한국어

google-surf-mcp MCP server

demo

Только для демонстрации. По умолчанию реальный поиск выполняется в headless-режиме (без видимого браузера). Установите SURF_HEADLESS=false, чтобы сделать Chrome видимым, как на видео выше.

MCP для поиска в Google. Без API-ключа. Просто работает.

  • ✅ Действительно работает (протестировано 6 бесплатных MCP для поиска в Google, все остальные не справились)

  • ✅ Поиск + извлечение URL в одном MCP (заменяет обычную комбинацию MCP поиска и MCP загрузчика)

  • ✅ 4 инструмента: search / search_parallel / extract / search_extract

  • ✅ Без API-ключа, без прокси, без сервисов разгадывания капчи

  • ✅ Автоматическое восстановление после CAPTCHA (открывается Chrome, человек решает один раз, вызов повторяется)

  • ✅ Защита от SSRF в extract (по умолчанию блокирует localhost, частные IP-адреса и метаданные AWS)

Что это

Подключите его к любому MCP-клиенту, и вы получите поиск Google в качестве инструмента.

Никаких сервисов разгадывания капчи. Когда в любом инструменте срабатывает CAPTCHA, открывается окно Chrome, чтобы человек мог её решить. Каждое решение сохраняет репутацию профиля в Google. Создано для устойчивого и этичного использования.

Для однократной установки требуется прогрев профиля (~1 сек) (см. раздел «Установка»).

Предназначено для локального использования. Не подходит для stateless / serverless развертывания.

Related MCP server: Brave Search MCP Server

Показатели

результат

последовательно

~1.5 сек/запрос (первый вызов ~4 сек, включая настройку)

параллельно x4

~1.5 сек (первый вызов ~9 сек, включая прогрев пула)

параллельно x10

~4.5 сек

search_extract x5

~5 сек (поиск + 5 параллельных извлечений)

Измерено на рабочей станции с подключением 1 Гбит/с.

Стек

  • Playwright + постоянный профиль Chrome

  • playwright-extra stealth

  • Блокировка ресурсов (изображения / медиа / шрифты) для скорости

  • Однократная загрузка профиля перед первым запуском

  • Mozilla Readability + Turndown для извлечения статей

Установка

Требуются Node 18+ и Google Chrome (или Chromium) в системе.

npx google-surf-mcp   # actual MCP - register in client config

Или локальное клонирование:

git clone https://github.com/HarimxChoi/google-surf-mcp
cd google-surf-mcp
npm install
npm run bootstrap

bootstrap открывает окно Chrome. Выполните в нем один поиск в Google. Закройте. Профиль прогрет.

При необходимости переопределите пути:

CHROME_PATH=/path/to/chrome SURF_TZ=America/New_York npm run bootstrap

Использование с Claude Code

Вставьте это в ваш ~/.claude.json:

{
  "mcpServers": {
    "google-surf": {
      "command": "npx",
      "args": ["-y", "google-surf-mcp"]
    }
  }
}

Перезапустите Claude Code. Готово. Инструменты search, search_parallel, extract, search_extract теперь доступны.

Для других MCP-клиентов используйте ту же структуру JSON в их файле конфигурации.

Вариант с локальным клонированием:

{
  "mcpServers": {
    "google-surf": {
      "command": "node",
      "args": ["/abs/path/to/google-surf-mcp/build/index.js"]
    }
  }
}

Инструменты

  • search(query, limit?) — одиночный запрос, ~1.5 сек. Возвращает заголовок / URL / сниппет. Спонсорская реклама отфильтровывается.

  • search_parallel(queries[], limit?) — пул из 4, максимум 10 запросов за вызов.

  • extract(url, max_chars?) — загрузка URL, возврат статьи в формате markdown (Readability с резервным текстовым вариантом). Ошибки возвращают { error }, никогда не вызывают исключение.

  • search_extract(query, limit?, max_chars?) — поиск + параллельное извлечение в одном вызове. Возвращает результаты SERP, дополненные полным содержанием статей. Ошибки на отдельных страницах изолированы.

search_extract — это главный инструмент: SERP + полное содержание статьи за один вызов. Заменяет обычную комбинацию «MCP поиска + MCP загрузчика URL», которую обычно собирают агенты.

Переменные окружения

переменная

по умолчанию

примечания

CHROME_PATH

автоопределение

абсолютный путь к бинарному файлу Chrome

SURF_PROFILE_ROOT

~/.google-surf-mcp

где хранится прогретый профиль

SURF_LOCALE

en-US

локаль браузера

SURF_TZ

системная tz

например, America/New_York

SURF_HEADLESS

true

установите false для видимого запуска Chrome (демо / отладка). Автовосстановление CAPTCHA всегда работает в видимом режиме.

SURF_IDLE_CLOSE_MS

30000

мс простоя перед закрытием последовательного контекста и пула. 0 отключает автозакрытие. Меньше = быстрее очистка, больше = теплый кэш для редких вызовов.

SURF_ALLOW_PRIVATE

false

установите true, чтобы разрешить extract загружать частные/loopback адреса (localhost, 127.0.0.1, 10.x, 192.168.x, 169.254.x и т.д.). По умолчанию блокирует их как защиту от SSRF.

Устранение неполадок

  • CAPTCHA: автоматически открывается видимое окно Chrome (работает для всех 4 инструментов). Решите её один раз, выполните один поиск внутри, вызов повторится и продолжится. Чтобы вместо этого быстро завершаться с ошибкой, запускайте без подключенного дисплея.

  • "Chrome not found": установите Chrome или задайте CHROME_PATH.

  • Устаревшие селекторы: Google меняет классы. PR приветствуются.

Журнал изменений

См. CHANGELOG.md.

Лицензия

MIT

Install Server
A
license - permissive license
A
quality
C
maintenance

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HarimxChoi/google-surf-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server