Open-source
31 мая 2026 · 10 мин чтения · AI Platforms

browser-search-mcp: веб-поиск для ИИ-агентов через настоящий браузер, одной командой

MCP-сервер от AI Platforms: npx browser-search-mcp — и всё готово. Chromium-поиск по Google, Bing, Yahoo и DuckDuckGo, извлечение страниц через Playwright + trafilatura, deep research по нескольким запросам. Без API-ключей, с fallback и дедупликацией результатов.

  • MCP
  • web search
  • agents
  • Playwright
  • Chromium
  • AI Platforms
  • open-source
  • tool-use
  • local LLM

Зачем агенту браузерный поиск, а не API-ключ

У многих LLM-клиентов либо нет доступа к сети, либо есть только один внешний search API, либо нужно заранее заводить ключи и конфиги. Для агентных сценариев этого недостаточно.

Когда агент исследует вопрос, ему нужно: быстро найти релевантные источники, сравнить выдачу нескольких поисковиков, убедиться что сниппет не устарел, и прочитать страницу целиком, когда это необходимо. Один search API не даёт такой гибкости. А ручная настройка Python, Playwright и Chromium — это часы работы.

browser-search-mcp решает это одной командой. npx browser-search-mcp — и у агента появляется MCP-эндпоинт с браузерным поиском, извлечением страниц и deep research. Пакет сам создаст Python venv, поставит зависимости и скачает Chromium.

Пакет доступен на npm: browser-search-mcp.

Ключевое отличие от поисковых API: модель ищет через реальные страницы выдачи, как человек в браузере, а не через JSON-ответ вендорского search endpoint. Это даёт: fallback между движками, дедупликацию ссылок, и тот же DOM, который видит пользователь.

Что даёт browser-search-mcp агенту

Мультидвижковый поиск

Google, Bing, Yahoo, DuckDuckGo. Режим auto пробует движки по очереди и добирает уникальные ссылки до нужного количества.

Извлечение страниц

extract_webpage для одной страницы, extract_webpages до 20 URL одновременно. Chromium + trafilatura/BeautifulSoup — читаемый текст.

Deep research за один раунд

Модель формулирует 1–10 запросов, сервер выполняет их и возвращает сгруппированные результаты — полноценный исследовательский цикл.

Одна команда — весь runtime

npx browser-search-mcp. Node-лаунчер создаёт изолированный Python venv, ставит зависимости, скачивает Chromium через Playwright.

Локально и приватно

Запросы и результаты проходят через вашу машину. Нет API-ключей, нет hosted search credentials. Идеально для локальных LLM.

Два протокола MCP + HTTP API

Streamable HTTP MCP (:8892/mcp), stdio режим (--stdio), плюс plain HTTP API (:8891) с Swagger UI для прямых вызовов.

Как устроен сервер: архитектура и трафик

Node.js лаунчер и Python runtime

Пакет npm — это только лаунчер. Он проверяет наличие Python 3.10+, создаёт ~/.browser-search-mcp с изолированным venv, устанавливает зависимости и запускает две службы:

  • FastAPI search gateway на 127.0.0.1:8891 — принимает поисковые запросы, запускает Chromium через Playwright, парсит DOM выдачи и возвращает title/URL/snippet.
  • Streamable HTTP MCP server на 127.0.0.1:8892/mcp — принимает MCP-запросы от клиента и проксирует их в search gateway.

Трафик поиска

MCP client ── Streamable HTTP ──► MCP server (:8892/mcp)
                                      │
                                      ▼
                               Search API (:8891)
                                      │
                 ┌────────────────────┴────────────────────┐
                 ▼                                         ▼
         Chromium search pages                  Page fetch + extraction
    Google / Bing / Yahoo / DDG              Playwright + trafilatura

Chromium запускается в headless-режиме. DOM поисковой выдачи парсится в структурированные записи. Извлечение страниц использует Chromium для загрузки и trafilatura/BeautifulSoup для получения читаемого текста.

Конфигурация

Всё настраивается переменными окружения:

| Переменная | По умолчанию | Назначение |

|---|---|---|

| BROWSER_SEARCH_MCP_HOME | ~/.browser-search-mcp | Директория runtime |

| API_PORT | 8891 | Порт search gateway |

| MCP_PORT | 8892 | Порт MCP |

| SEARCH_API_TIMEOUT | 300 | Таймаут MCP → search API, сек |

Два режима MCP

Для HTTP-клиентов (Claude Desktop, llama.cpp Web UI, Codex):

http://127.0.0.1:8892/mcp

Для stdio-клиентов (локальный OpenCode):

{
  "mcp": {
    "browser-search-mcp": {
      "type": "local",
      "command": ["npx", "-y", "browser-search-mcp", "--stdio"],
      "enabled": true,
      "timeout": 1800000
    }
  }
}

Практический рабочий цикл агента с browser-search-mcp

Типовая последовательность: 1) web_search с точным запросом и engine=auto — первичное сканирование сниппетов; 2) при скудных результатах — повторный web_search с другим движком; 3) extract_webpage для официальной документации или ключевого источника; 4) финальный ответ с опорой на извлечённый текст. Для сложных тем — deep_research с 3–10 запросами за один раунд.

Инструменты и что они умеют

web_search

Один поисковый запрос — titles, URLs, snippets. Может сразу извлечь контент верхних результатов. Модель выбирает движок.

deep_research

Раунд исследования по 1–10 запросам. Сервер выполняет их все, группирует результаты — готовый материал для анализа.

extract_webpage

Извлечение читаемого текста одной страницы. URL известен — сервер загружает через Chromium и отдаёт чистый текст.

extract_webpages

Пакетное извлечение до 20 URL одновременно. Для сравнения источников, проверки фактов, сбора данных.

Дедупликация результатов

При engine=auto движки пробуются по очереди, уникальные ссылки накапливаются — без повторов.

Plain HTTP API

Прямой доступ к /api/search, /api/extract, /api/health, /api/tools, Swagger UI на /docs — для интеграций без MCP.

Сценарии и практическая польза

Агент-исследователь

Самый сильный сценарий. Агент получает задачу «сделай ресерч архитектур MCP-серверов», вызывает deep_research с запросами по разным углам темы, получает сгруппированные результаты из нескольких движков, затем extract_webpage для самых сильных источников — и выдаёт заключение, подкреплённое фактами.

Агент-верификатор

Модель отвечает на вопрос, но сомневается в факте. web_search с engine=auto, проверка нескольких источников, extract_webpage официальной документации — и ответ либо подтверждён, либо скорректирован.

On-premise LLM с выходом в интернет

Локальная модель в закрытом контуре (LM Studio, llama.cpp, Ollama) получает окно в интернет через этот сервер. Сама модель не знает сети. MCP-сервер на той же машине предоставляет поиск как инструмент.

Plain HTTP для кастомных интеграций

Если MCP-клиент не нужен, сервер отдаёт обычный HTTP API:

# Поиск
curl -X POST http://127.0.0.1:8891/api/search \
  -H "Content-Type: application/json" \
  -d '{"query":"vLLM vs SGLang benchmarking 2026","num_results":5,"engine":"auto"}'

# Извлечение страницы
curl -X POST http://127.0.0.1:8891/api/extract \
  -H "Content-Type: application/json" \
  -d '{"url":"https://docs.vllm.ai/en/latest/","max_length":4000}'

А также GET /api/search/simple?q=...&n=3&engine=duckduckgo, GET /api/tools (OpenAI-стиль), GET /api/tools/openrouter, и GET /docs для Swagger.

Совместимость с клиентами

Сервер работает со всеми MCP-клиентами, поддерживающими Streamable HTTP: Claude Desktop, Codex, Kilo, Cursor, llama.cpp Web UI. Для stdio-only клиентов — флаг --stdio.

Почему это важно для AI Platforms

Для нас этот проект — ещё один кирпичик в агентной экосистеме. ssh-chat-mcp даёт агенту руки на сервере. browser-search-mcp даёт агенту глаза в интернете. Вместе с приватной LLM и RAG это образует полноценный агентный стек, работающий из закрытого контура.

Инструменты сервера

ИнструментЧто делаетКлючевые параметры
web_search Один поисковый запрос query, engine (auto/google/bing/yahoo/duckduckgo), num_results, extract_content, language
deep_research Исследовательский раунд queries (1–10), engine, num_results_per_query, language
extract_webpage Извлечение одной страницы url, max_length (по умолчанию 4000)
extract_webpages Пакетное извлечение до 20 URL urls, max_length (по умолчанию 12000)

Строим агентную экосистему под ваш контур

browser-search-mcp, ssh-chat-mcp и другие наши MCP-инструменты — часть агентного стека AI Platforms. Если вам нужен ИИ-агент с поиском, доступом к серверам, RAG и приватной LLM — опишите задачу. Предложим архитектуру и план пилота.