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.txtmcp, httpx, beautifulsoup4, markdownify, ddgs, trafilatura, pypdf, youtube-transcript-api, playwright

  • Dockerfile — Python 3.12-slim + Playwright Chromium

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

Лицензия

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

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    A
    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.
    10
    Apache 2.0
  • F
    license
    -
    quality
    B
    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
    -
    quality
    C
    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
    -
    quality
    B
    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.
    323
    MIT

View all related MCP servers

Related MCP Connectors

  • An MCP server for deep research or task groups

  • Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only

  • An MCP server that gives your AI access to the source code and docs of all public github repos

View all MCP Connectors

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/AngelN-Halo/mcp-web-search-pro'

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