API VEGA

🔍 SearXNG MCP Server

Конфиденциальный веб-поиск для AI-помощников — используйте экземпляр SearXNG, управляемый оператором, или доверенную установку SearXNG с Claude, Cursor и другими.

Сервер MCP, интегрирующий API SearXNG, обеспечивает AI-помощникам веб-поиск.

✨ Включено в реестр MCP на GitHub.

Быстрый старт

Вам нужен существующий экземпляр SearXNG с включенным JSON-поискованием. Этот проект соединяет MCP-клиент с SearXNG; он не устанавливает SearXNG. Используйте экземпляр, которым вы управляете или которому доверяете. При необходимости начните с руководств по самостоятельному размещению или публичному экземпляру.

Выберите способ подключения:

Ваше окружениеНачать здесь
Клиент запускает сервер локальноУстановите Node.js 22 или выше, затем используйте приведённый ниже пример NPX или свой рецепт клиента.
Клиент запускает контейнер DockerИспользуйте рецепт Docker/STDIO в разделе Установка.
У вас Independently running HTTP serviceИспользуйте HTTP-рецепт вашего клиента с полным URL /mcp.
Нужно запустить HTTP-сервисСледуйте руководству по HTTP-серверу.

Для клиентов, использующих JSON (например Claude Desktop), добавьте:

{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": ["-y", "mcp-searxng"],
      "env": { "SEARXNG_URL": "https://search.example.com" }
    }
  }
}

Замените примерный URL на ваш базовый URL SearXNG. Другие клиенты используют другие конфигурационные формы: выберите свой рецепт клиента.

Оставляйте MCP_HTTP_PORT пустым для локального STDIO. Docker также требует прокидывания окружения в контейнер.

Перезагрузите клиента, проверьте его инвентарь инструментов MCP, затем попросите его выполнить поиск по документации SearXNG. Простой вызов инструмента —

searxng_web_search с {"query":"SearXNG"}. Только обнаружение не тестирует подключение к SearXNG. Если вызов не удаётся, начните с устранения неполадок.

Особенности

  • Поиск с пагинацией, фильтрами, прямыми ответами и полным или компактным выводом текста/JSON.

  • Чтение HTML, структурированного текста и ограниченного текста PDF; просмотр заголовков или выбранных разделов.

  • Обнаружение возможностей инстанса и получение подсказок к запросам.

  • Необязательное реплика--фейловер/разветвление, HTML-фолбэк, кеширование, прокси и браузерные решатели.

  • Локальная STDIO или потоковый HTTP, с статическим Bearer-токеном и при необходимости защитой OAuth.

См. руководство по инструментам для возможностей и ограничений, справочник по настройкам — для параметров, и исторические данные развёртывания — для обоснований планирования ресурсов с учётом ограничений.

Зачем mcp-searxng?

Сравнение возможностей на 2026-07-29

По состоянию на 2026-07-29 результат сравнения ниже охватывает официальные проекты Brave MCP, Exa MCP и Firecrawl MCP.

«Пагинация» означает доступ к странице или контролю смещения. «Self-hosted» означает, что сервис поиска может работать под вашим контролем. «Free / No API key» означает, что сервер MCP не требует платного API-ключа у поставщика поиска; вы всё равно управляете или выбираете базовую инстанцию SearXNG.

Brave MCPExa MCPFirecrawl MCPmcp-searxng
Web Search
Read URL
Pagination
Self-hostedPartial
Free / No API key

Конфиденциальность зависит от развёртывания SearXNG. Инстанс, управляемый оператором, позволяет не доверять стороннему оператору поиска, в то время как публичный инстанс получает запрос и может его залогировать. SearXNG и эта интеграция MCP сами по себе не обеспечивают анонимность.

Как работает

MCP client → mcp-searxng → SearXNG → search engines

Клиент либо запускает собственный процесс STDIO, либо подключается к HTTP-сервису.

SEARXNG_URL идентифицирует сервис SearXNG, а не конечную точку MCP. Чтение URL читает выбранный сайт напрямую. Поддерживается список реплик, разделённых точкой с запятой, для взаимозаменяемых развёртываний SearXNG; см. core replica configuration.

STDIO по умолчанию. Наследственные сессии Streamable HTTP по умолчанию являются stateful; клиенты должны отправлять DELETE /mcp по завершении, затем повторно инициализировать, если позже запрос получит HTTP 404 для завершённой сессии. Современные HTTP-запросы и наследуемый режим MCP_HTTP_STATELESS=true являются безсессионными; см. HTTP-transport configuration.

Инструменты

ИнструментЧто делать с ним
searxng_web_searchНаходит источники и уточняет результаты
searxng_search_suggestionsДополняет или уточняет запрос
searxng_instance_infoПроверяет категории, движки и значения по умолчанию
web_url_readЧитает известный URL как текст/Markdown

См. руководство по инструментам для примеров и полного справочника параметров. Необязательный научно-исследовательский рабочий процесс объясняет, как исследовать источники и приводить доказательства.

Установка

Для NPX и npm установка требуется Node.js 22 или новее. Docker-образ включает время выполнения Node.js.

NPM (глобальная установка)

npm install -g mcp-searxng
{
  "mcpServers": {
    "searxng": {
      "command": "mcp-searxng",
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

Docker Предварительно собранное изображение:

docker pull isokoliuk/mcp-searxng:latest

Подписи образов можно проверить с помощью Cosign — см. SECURITY.md для инструкций.

{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "SEARXNG_URL",
        "isokoliuk/mcp-searxng:latest"
      ],
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

Чтобы передать дополнительные переменные окружения, добавьте -e VAR_NAME к args и переменную в env.

Для интеграции с браузерным решателем укажите FLARESOLVERR_URL, BYPARR_URL, или оба варианта и сделайте доступными из этого контейнера. Режим Dual имеет фиксированный порядок FlareSolverr-first и отсутствует автоматический обратный Failover. Безопасно отрендеренный HTML и явный Byparr PDF-контент читаются напрямую; неоднозначный контент использует guarded replay, с ограниченным повторным воспроизведением для подходящих случаев. Смотрите URL Reader Controls для полного поведения и примера Docker Compose.

Собрать локально:

docker build -t mcp-searxng:latest -f Dockerfile .

Используйте ту же конфигурацию выше, заменив isokoliuk/mcp-searxng:latest на mcp-searxng:latest.

Docker Compose docker-compose.yml:

services:
  mcp-searxng:
    image: isokoliuk/mcp-searxng:latest
    stdin_open: true
    environment:
      - SEARXNG_URL=${SEARXNG_URL:?Set SEARXNG_URL in the environment}
      # Добавляйте опциональные переменные по мере необходимости — см. CONFIGURATION.md

Отслеживаемый файл Compose намеренно конфигурационен только под STDIO и не публикует сетевые порты; клиенты MCP запускают его с абсолютным путём к файлу Compose и docker compose run --rm -T, а не через docker compose up. Флаг -T предотвращает выделение псевдо-TTY, чтобы MCP JSON-RPC оставался на уровне сырого стандартного ввода/вывода. Секция Compose не запускается, если клиент MCP не предоставляет SEARXNG_URL.

Конфигурация клиента MCP:

{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": [
        "compose",
        "-f", "/absolute/path/to/docker-compose.yml",
        "run", "--rm", "-T", "mcp-searxng"
      },
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

Если ранее вы использовали отслеживаемый файл как HTTP-сервис на порту 8080, поместите настройки HTTP в незатянутый файл docker-compose.override.yml:

services:
  mcp-searxng:
    ports:
      - "127.0.0.1:8080:8080"
    environment:
      - MCP_HTTP_PORT=8080
      - MCP_HTTP_HOST=0.0.0.0

Здесь 0.0.0.0 — это привязка по адресу на стороне контейнера; порт на хосте остаётся только для локального доступа. Это переадресование временное и без аутентификации, предназначено только для миграции на одном хосте. Прежде чем добавлять соседние контейнеры или открывать сервис за пределами локальной машины, следуйте усовершенствованным рекомендациям по развёртыванию в SECURITY.md.

HTTP-транспорт

Запускайте HTTP отдельно, затем подключайте клиента. См. руководство по HTTP-серверу для локальных проверок, статической Bearer-аутентификации, требований OAuth и проверки развёртывания.

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

Для локальной настройки по умолчанию требуется параметр SEARXNG_URL. Необязательные режимы, такие как усиленный HTTP и OAuth, имеют сопутствующие требования. Используйте справочник по настройкам для переменных окружения, значений по умолчанию, кеширования, тайм-аутов, прокси, TLS и ограничений.

Необязательный MCP OAuth

HTTP-развертывание может использовать OAuth через внешнего провайдера авторизации. См. варианты аутентификации. Статический Bearer-аутентификация и SearXNG Basic Auth защищают разные соединения.

Устранение неполадок

СимптомСледующая проверка
Сервер отсутствует или отвисаетЗапуск клиента/процесса
HTTP-аутентификация, ошибка сессии или проксиHTTP-соединение
Инструменты возникают, но поиск не работаетПодключение к SearXNG
Пустые, слабые или устаревшие результатыФильтры, метаданные upstream и кеш
Ошибка URL/PDF или тайм-аутЧтение URL

403 Forbidden от SearXNG

JSON-вывод может быть отключён, или слой доступа мог заблокировать запрос. Выполните прямые проверки перед сменой настроек: проверка напрямую SearXNG. Рабочая страница в браузере не доказывает работу JSON API.

Не могу включить JSON? (HTML-фолбэк)

SEARXNG_HTML_FALLBACK=true может повторно попытаться выполнить запросы без JSON как HTML, включая 403/404/не JSON. Парсинг производится наилучшим образом и метаданные ограничены; компактный вывод пропускает маркеры фолбэка. Прочитайте руководство по публичным инстансам перед включением на сервисе, который под вашим контролем: публичные инстансы — JSON отклонён и HTML-фолбэк.

Для сообщения об ошибке соберите минимальный воспроизводимый пример и сопутствующие ошибки: сбор полезных сведений.

Документация

Найдите руководство по задаче. Эти ссылки открывают текущую документацию ветки main. Неопубликованное поведение помечено; см. соответствующий Git tag при работе с более старой версией.

Внесение вклада

Смотрите CONTRIBUTING.md.

Лицензия

MIT — см. LICENSE для подробностей.