Skip to main content
Glama

web-search-mcp

Внешний поиск в Интернете и получение страниц для локальных LLM, представленные в виде инструментов MCP и CLI. Реализация ориентирована на Playwright, является асинхронной и по умолчанию запускает установленный в системе бинарный файл Chromium. История проектирования задокументирована в docs/IMPLEMENTATION_PLAN.md.

Инструменты

  • search(provider, context) выполняет поиск через браузер в duckduckgo (по умолчанию), google или yandex и возвращает до 5 органических URL-адресов результатов.

  • fetch(urls) извлекает 1..5 URL-адресов и возвращает отрендеренный браузером HTML с полями pages, errors и truncated для каждого URL.

context намеренно является строкой поискового запроса для совместимости с вызывающей стороной.

Related MCP server: Web Search MCP

Настройка

uv sync
chromium --version

Если Chromium установлен в нестандартном месте, установите PLAYWRIGHT_CHROMIUM_EXECUTABLE=/path/to/chromium.

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

Запустите сервер MCP через stdio:

uv run web-search serve-mcp

Запустите CLI напрямую:

uv run web-search search --context "python async playwright"
uv run web-search fetch https://example.com

Используйте HTTP-транспорт вместо stdio:

uv run web-search serve-mcp --transport streamable-http --host 127.0.0.1 --port 8000

Заметки по проектированию

  • Один общий браузер на процесс с новым режимом инкогнито для каждого запроса.

  • Playwright запускает системный бинарный файл Chromium, а не загруженный Playwright пакет браузера.

  • Системный Chromium работал с Playwright, в то время как протестированная сборка системного Firefox завершалась сразу после запуска. Поэтому данный репозиторий ориентирован на системный Chromium как поддерживаемый браузер хоста.

  • Дымовые тесты браузера следует запускать из обычной оболочки хоста. Ограниченные «песочницы» могут блокировать запуск Chromium, даже если браузер хоста работает корректно.

  • Глобальное ограничение параллелизма навигации — 3.

  • Тайм-ауты: 15с на страницу, 20с всего для search, 35с всего для fetch.

  • Защита от SSRF: только http/https, без встроенных учетных данных, блокирует loopback/частные/link-local/зарезервированные IP-адреса перед навигацией и при подзапросах браузера.

  • Страницы с JavaScript-челленджами получают ограниченное окно ожидания в 10с; решение CAPTCHA, скрытая идентификация (stealth fingerprinting) или логика обхода конкретных сайтов отсутствуют.

  • Размер HTML ограничен 1 МБ на URL; ответы, превышающие этот размер, обрезаются, а информация об этом записывается в truncated.

  • robots.txt не учитывается в v1.

Разработка

source .venv/bin/activate
pytest

Тесты парсера запускаются на сохраненных HTML-фиксах; отклонение селекторов — ожидаемые затраты на обслуживание.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables web searching through Google, DuckDuckGo, and Bing using a headless Chrome browser, returning structured results with titles, URLs, and snippets. Also supports fetching and extracting text content from any webpage.
    15
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables LLMs to fetch and extract web content using browser automation, OCR, and multiple extraction methods, handling JavaScript rendering and anti-scraping techniques.
    17
    MIT