Skip to main content
Glama
AngelN-Halo

MCP Web Search Pro

by AngelN-Halo

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

Инструмент

Описание

web_search

Поиск в вебе через DuckDuckGo (ddgs). Аргументы: query (обязательный), max_results (1–20), region.

web_fetch

Получение URL → Markdown. Автоматически определяет PDF и извлекает текст. Использует trafilatura для чистого извлечения статей (удаляет навигацию/рекламу/шаблонный контент). Аргументы: url, timeout.

web_fetch_js

Рендеринг страницы с интенсивным использованием JS / SPA через headless Chromium, затем извлечение текста. Используйте, когда web_fetch возвращает пустую/заглушечную страницу. Медленнее (~5–15с). Аргументы: url, wait_ms (0–15000, по умолчанию 2500), timeout.

web_fetch_archive

Получение последнего (или с указанной датой) архивного снимка URL из Wayback Machine. Повторяет попытки при временных ошибках 503. Аргументы: url, timestamp (опционально YYYYMMDDhhmm).

youtube_transcript

Получение транскрипта видео YouTube. Принимает полный URL YouTube или голый 11-символьный ID видео. Аргументы: url, include_timestamps (bool, по умолчанию false).

Используйте 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, playwright

  • Dockerfile — Python 3.12-slim + Playwright Chromium

  • docker-compose.yml — сервис на порту 8082 с shm_size: 1gb

Лицензия

В настоящее время файл лицензии не включен. Добавьте лицензию перед принятием внешних вкладов или распространением проекта.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Zero-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.
    11
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    A 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
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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
  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP 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 npm
    1
    MIT