MCP Web Search Pro
MCP Web Search Pro
Расширенный, самостоятельно размещаемый сервер веб-исследований для MCP-совместимых клиентов. Он предоставляет AI-ассистенту инструменты для обнаружения веб-страниц, извлечения читаемого контента, рендеринга JavaScript-приложений, использования Internet Archive, когда страница недоступна, и чтения субтитров YouTube.
Сервис предназначен для локального использования или использования в доверенной сети. Он не имеет состояния, не требует API-ключей и предоставляет транспорт MCP Streamable HTTP на порту 8082. Он может работать рядом с более легким MCP-сервером веб-поиска на другом порту.
Работает как отдельный контейнер на порту 8082 вместе с облегченным mcp-web-search (порт 8081). Направляйте клиентов на тот, который лучше подходит для задачи — если pro когда-либо покажется медленным, облегченный сервер останется нетронутым.
Возможности
Веб-поиск через DuckDuckGo с ограничением результатов и выбором региона.
Извлечение читаемого HTML в Markdown с удалением навигации и шаблонного контента.
Автоматическое обнаружение PDF и извлечение текста.
Рендеринг через headless Chromium для React, Vue, SPA и других страниц с интенсивным использованием JavaScript.
Снимки Wayback Machine для недоступных или измененных страниц.
Транскрипты YouTube по URL или ID видео, с опциональными временными метками.
Эндпоинт
/healthдля проверки контейнера и процессов.Транспорты MCP Streamable HTTP и stdio без состояния.
Related MCP server: Basic MCP Tools
Инструменты MCP
Инструмент | Описание |
| Поиск в вебе через DuckDuckGo (ddgs). Аргументы: |
| Получение URL → Markdown. Автоматически определяет PDF и извлекает текст. Использует trafilatura для чистого извлечения статей (удаляет навигацию/рекламу/шаблонный контент). Аргументы: |
| Рендеринг страницы с интенсивным использованием JS / SPA через headless Chromium, затем извлечение текста. Используйте, когда |
| Получение последнего (или с указанной датой) архивного снимка URL из Wayback Machine. Повторяет попытки при временных ошибках 503. Аргументы: |
| Получение транскрипта видео YouTube. Принимает полный URL YouTube или голый 11-символьный ID видео. Аргументы: |
Используйте web_fetch для обычных страниц, так как он быстрее. Используйте web_fetch_js, когда первый инструмент возвращает пустую оболочку или неполный контент, потому что сайт зависит от клиентского JavaScript.
Запуск с Docker
docker compose up -d --buildПроверка:
curl http://localhost:8082/health # → {"status":"ok"}Логи / перезапуск / остановка:
docker compose logs -f
docker compose restart
docker compose downПервая сборка большая (~400MB), потому что она загружает Chromium для Playwright. Последующие сборки используют кэшированный слой.
Подключение клиентов
Направьте любой MCP-совместимый клиент на:
http://<server-host>:8082/mcpЗаголовки или API-ключи не требуются. Сервер работает в режиме без состояния.
Локальный запуск без Docker
Рекомендуется Python 3.12:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
playwright install --with-deps chromium
python server.pyЗапустите HTTP-транспорт напрямую с помощью:
python server.py --sse --host 127.0.0.1 --port 8082Несмотря на историческое название опции --sse, HTTP-реализация использует транспорт MCP Streamable HTTP без состояния.
Примечания по производительности
Только
web_fetch_jsтяжел во время выполнения — он запускает Chromium для каждого вызова (~5–15с). Остальные четыре инструмента — легкие чистые Python-инструменты и остаются быстрыми.shm_size: 1gbвdocker-compose.ymlпредотвращает сбои песочницы Chromium внутри контейнера.Для обычных страниц без JS используйте
web_fetch(быстро); оставьтеweb_fetch_jsдля сайтов React/Vue/SPA, которые рендерят контент с помощью JavaScript.
Конфигурация
Чтобы изменить порт, отредактируйте как сопоставление ports:, так и command: в docker-compose.yml. Чтобы включить журналирование необработанных запросов/ответов для отладки, переключитесь на закомментированную строку command: с --verbose.
Проверка
Этот репозиторий предназначен для публикации в качестве исходного кода и конфигурации сборки Docker. В настоящее время нет автоматизированного набора тестов. Рекомендуемые проверки проекта:
git diff --check
docker compose config
docker compose up -d --build
curl http://localhost:8082/health
docker compose logs --tail=100
docker compose downНе публикуйте этот сервис напрямую в открытый интернет без добавления аутентификации или размещения за доверенным обратным прокси. HTTP-режим привязывается к 0.0.0.0, разрешает запросы без API-ключей и допускает все источники; это удобно для локальных MCP-клиентов, но не является уровнем контроля доступа.
Примечания по безопасности и эксплуатации
web_fetchиweb_fetch_jsмогут запрашивать произвольные HTTP(S) URL. Ограничьте сетевой доступ или добавьте защиту URL/DNS, если недоверенные пользователи могут вызывать сервис.Держите
--verboseотключенным вне коротких локальных сеансов отладки, потому что он регистрирует тела запросов и ответов.Зависимости используют ограничения минимальных версий. Зафиксируйте или заблокируйте версии перед тем, как полагаться на воспроизводимые производственные сборки.
Файлы
server.py— MCP-сервер (5 инструментов)requirements.txt—mcp,httpx,beautifulsoup4,markdownify,ddgs,trafilatura,pypdf,youtube-transcript-api,playwrightDockerfile— Python 3.12-slim + Playwright Chromiumdocker-compose.yml— сервис на порту 8082 сshm_size: 1gb
Лицензия
В настоящее время файл лицензии не включен. Добавьте лицензию перед принятием внешних вкладов или распространением проекта.
This server cannot be deployed
Maintenance
Related MCP Connectors
Docs: https://docs.keenable.ai/mcp-server Keenable is a free, remote MCP server that gives agents access to the web index. Search the web with ranked results and date/site filters, then fetch any indexed page as clean markdown. Works out of the box with no account or API key.
MCP server for Firecrawl — web search, scraping, and biomedical/arXiv paper search.
Turn any public website into an MCP server for agents to search, read and navigate.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceZero-auth multi-source research MCP server that enables web search, reading URLs, PDFs, GitHub repos, and querying Hacker News, Stack Overflow, Semantic Scholar, and YouTube transcripts without API keys.11Apache 2.0
- FlicenseNot gradedqualityCmaintenanceA self-hosted MCP server providing private web search, web page fetching, and current date/time tools, powered by a bundled SearXNG instance for API-key-free local search.2-
- AlicenseNot gradedqualityDmaintenanceA fully local MCP server that provides web search via self-hosted SearXNG and page-to-markdown conversion (static and JS-rendered), all aggregated behind a single endpoint for use with AI assistants.MIT
- AlicenseNot gradedqualityFmaintenanceMCP server enabling local-first web search, fetch, extract, and caching with citeable excerpts, no API key required. Supports research workflows for agents and apps.105 npm1MIT