web-search-mcp
web-search-mcp
Внешний поиск в Интернете и получение страниц для локальных LLM, представленные в виде инструментов MCP и CLI. Реализация ориентирована на Playwright, является асинхронной и по умолчанию запускает установленный в системе бинарный файл Chromium. История проектирования задокументирована в docs/IMPLEMENTATION_PLAN.md.
Инструменты
search(provider, context)выполняет поиск через браузер вduckduckgo(по умолчанию),googleилиyandexи возвращает до 5 органических URL-адресов результатов.fetch(urls)извлекает1..5URL-адресов и возвращает отрендеренный браузером 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-фиксах; отклонение селекторов — ожидаемые затраты на обслуживание.
This server cannot be deployed
Maintenance
Related MCP Connectors
Web search, browser automation, scraping, crawling and CAPTCHA solving for AI agents.
LLM-ready web search + instant answers + URL-to-clean-text fetch for agents and RAG.
A real browser for your agent: render any page, or 25 pages of a site, to clean text.
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
Related MCP Servers
- AlicenseBqualityBmaintenanceEnables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment10162 npm299MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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.15MIT
- AlicenseNot gradedqualityCmaintenanceEnables LLMs to fetch and extract web content using browser automation, OCR, and multiple extraction methods, handling JavaScript rendering and anti-scraping techniques.17MIT
- AlicenseAqualityDmaintenanceProvides web access capabilities for LLMs including search, fetching, content extraction, PDF reading, image viewing, and screenshots.346MIT