AIKraft Agents

ihor-sokoliuk/mcp-searxng

Приватный веб-поиск для AI-ассистентов через SearXNG — поддерживает Claude, Cursor и любой MCP-клиент

MCP⭐ 1 347TypeScriptпоследний релиз: v2.10.0
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

Это MCP-сервер на Node.js, который подключает AI-ассистентов к экземплярам SearXNG для выполнения приватных веб-поисков.

Зачем нужен

Инструмент решает задачу предоставления моделям доступа к актуальной информации из интернета без передачи данных сторонним коммерческим поисковикам. Он полезен для создания автономных AI-агентов, которым требуется безопасный и бесплатный доступ к поиску с возможностью самохостинга.

Что можно реализовать

  • Интеграция веб-поиска в Claude Desktop или Cursor для ответов на вопросы с учетом свежих данных
  • Построение приватных RAG-систем, где индексация и поиск происходят через собственный SearXNG
  • Автоматизированный сбор информации с фильтрацией по времени, языку и релевантности
  • Чтение и извлечение контента из веб-страниц с поддержкой пагинации и выделения секций

Ключевые возможности

  • Полная приватность и самохостинг: данные не покидают вашу инфраструктуру
  • Отсутствие необходимости в API-ключах и платных подписках
  • Поддержка отказоустойчивости через список реплик SearXNG с автоматическим фолбэком
  • Гибкая фильтрация результатов по времени, языку, safe search и минимальному баллу релевантности
  • Возврат структурированных данных (JSON) или готового текста, включая ответы и метаданные SearXNG

👤 Кому подойдёт: разработчики, инженеры по AI, специалисты по безопасности данных, исследователи, использующие MCP-клиенты (Claude, Cursor)

Релизы

v2.10.0minor
🕐 2 дн назад · релиз на GitHub ↗

Добавлена фоновая проверка работоспособности SearXNG при запуске и обновлены зависимости.

  • Added: Появилась опциональная фоновая проверка доступности SearXNG при старте с помощью переменной SEARXNG_STARTUP_HEALTHCHECK.
  • Added: Добавлена настройка таймаута проверки SEARXNG_HEALTHCHECK_TIMEOUT_MS, позволяющая задать лимит времени для каждого экземпляра.
  • Fixed: Обновлены зависимости express-rate-limit, jose, node-html-parser, ESLint и плагин безопасности, а также зафиксирована версия адаптера @hono/node-server.
  • Поведение запуска осталось прежним, если новая проверка явно не включена; требуется Node.js 22+.
v2.9.0minor
🕐 9 дн назад · релиз на GitHub ↗

Добавлена многостраничная параллельная выдача, обновлен MCP SDK до 2.4.0, улучшена диагностика HTTP-жизни.

  • Added: Добавлен аргумент pages для одновременного получения до пяти страниц поиска с дедупликацией.
  • Added: Внедрена диагностика HTTP-жизни: учёт таймаутов, отказов по лимиту ресурсов и принудительных остановок.
  • Added: Обновлены ядро, сервер и клиент MCP SDK до версии 2.4.0, а также Node-адаптер до 2.1.2.
  • Deprecated: Удалена поддержка упаковки Nix, устаревших артефактов тестов и неиспользуемого прокси-кода.
v2.8.1patch
🕐 11 дн назад · релиз на GitHub ↗

Исправлены критические уязвимости в зависимостях и образе Docker, добавлена поддержка Unix-сокетов.

  • Fixed: Обновлены зависимости Hono и ip-address для устранения уязвимостей CVE-2026-111757 и CVE-2026-111997.
  • Fixed: Образ Docker собран на базе Node.js 24.22.1 с исправлениями для уязвимостей Brotli и body-parser.
  • Added: Включена поддержка Unix-доменных сокетов и упаковка Nix, ранее появившиеся в версии 2.8.0.
  • Fixed: Настроено игнорирование уязвимостей с низким уровнем риска в сканировании Docker SARIF.
v2.7.0minor
🕐 16 дн назад · релиз на GitHub ↗

Добавлена настройка таймаута для сессий HTTP POST и улучшена обработка сигналов завершения работы.

  • Added: Появилась опциональная переменная MCP_HTTP_SESSION_REQUEST_TIMEOUT_MS для управления таймаутом состоятельных HTTP POST-запросов.
  • Added: Улучшена обработка сигналов SIGINT/SIGTERM: корректное завершение сессий с возвратом HTTP 503 и ограничением времени завершения.
  • Added: Обновлены зависимости: Undici, unpdf, jose, node-html-parser, ESLint и TypeScript ESLint, а также образ Node LTS Alpine.
  • Node.js >=22 остается поддерживаемой версией; импорт через JS/TS пакеты по-прежнему не поддерживается.
v2.6.0minor
🕐 23 дн назад · релиз на GitHub ↗

Добавлено управление конкурентностью HTTP-запросов, обновлены зависимости и устранена уязвимость в инструментах сборки.

  • Added: Внедрено настраиваемое ограничение конкурентности для состоятельных HTTP-запросов с лимитами по умолчанию 16 POST и 4 GET на сессию.
  • Added: При превышении лимитов возвращается HTTP 503 с заголовком Retry-After, при этом операция DELETE остается доступной.
  • Fixed: Заменена уязвимая shell-зависимость в сборке на нативные Node-инструменты, что устранило цепочку уязвимостей.
  • Added: Обновлены зависимости: Express до 5.3.0, Undici до 7.30.0, Zod до 4.6.7 и пакеты TypeScript ESLint до 8.71.2.
  • Fixed: Исправлены E2E-тесты для compact-search, чтобы корректно обрабатывать диагностику ошибок движка и CAPTCHA.
v2.5.1patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлены уязвимости в зависимостях, обновлён MCP SDK до 2.3.1 и улучшена документация.

  • Fixed: Устранена уязвимость подмены IP-адресов в зависимости proxy-addr.
  • Fixed: Исправлены три уязвимости отказа в обслуживании в зависимости brace-expansion.
  • Added: Обновлены MCP core/server/client до версии 2.3.1 и Node adapter до 2.1.1.
  • Added: Добавлены руководства по настройке SearXNG и развёртыванию браузерного решателя.
  • Added: Улучшена надёжность публикации в MCP Registry с обработкой задержек распространения.
v2.5.0minor
🕐 1 мес назад · релиз на GitHub ↗

Добавлено автоматическое завершение неактивных HTTP-сессий и улучшена обработка ошибок пустых поисковых запросов.

  • Added: Добавлена опциональная настройка времени жизни неактивных сессий (MCP_HTTP_SESSION_IDLE_TTL_MS) для очистки legacy-подключений.
  • Fixed: Улучшено различение сбоев движков и реальных пустых результатов поиска с корректной маркировкой ошибок в ответах.
  • Added: В компактный JSON-ответ добавлено поле unresponsive_engines, а в текстовый вывод — заметки о сбоях.
  • Обновлены зависимости и инструменты CI, включая TypeScript ESLint и Supertest; уязвимостей в зависимостях не обнаружено.
v2.4.0minor
🕐 1 мес назад · релиз на GitHub ↗

Релиз v2.4.0: защита учётных данных, лимиты сессий, таймауты инициализации и обновление базового образа Node.

  • Added: Добавлена защита учётных данных от утечек в диагностике, кэше и ответах инструментов.
  • Added: Введены переменные MCP_HTTP_MAX_SESSIONS и MCP_HTTP_INITIALIZE_TIMEOUT_MS для управления лимитами сессий и таймаутами инициализации.
  • Fixed: Улучшена работа браузерного решателя: использование рендеринга, восстановление терминала и повторная проверка DNS.
  • Added: Обновлён базовый образ Docker до Alpine с Node 24.21.0, минимальная поддерживаемая версия — Node 22.
  • Deprecated: Отменено расписание независимых пересборок Docker-образа, теперь публикуются только версионные релизы.
v2.2.0minor
🕐 1 мес назад · релиз на GitHub ↗

Добавлена поддержка OAuth для MCP, устранены уязвимости обхода IPv6 и улучшена устойчивость парсинга метаданных.

  • Added: Добавлен опциональный режим OAuth для MCP с проверкой токенов и обнаружением ресурсов.
  • Fixed: Заблокирован доступ к приватным IPv4-адресам через инкапсуляцию в IPv6 и неглобальные IPv6-URL.
  • Fixed: Исправлена обработка некорректных метаданных, предотвращающая искажение результатов поиска.
  • Fixed: Обновлена уязвимая зависимость парсера запросов.
  • Обновлены зависимости среды выполнения и CI-действия, требование Node.js 22+ сохранено.
v2.1.0patch
🕐 2 мес назад · релиз на GitHub ↗

Исправлена валидация временных диапазонов для явных движков и улучшены тесты контрактов MCP.

  • Fixed: Добавлена надежная проверка поддержки временных диапазонов для явно выбранных поисковых движков; запросы к неподдерживаемым движкам теперь возвращают понятную ошибку вместо пустых результатов.
  • Fixed: Интеграционные тесты контрактов MCP переписаны для проверки структуры каталогов инструментов, что упрощает ревью изменений без хрупких сравнений полных определений.
  • Fixed: Тесты релизов теперь валидируют семантические версии, поддерживаемые версии Node.js и документацию на основе авторитетных метаданных, а не фиксированных текстов.
v2.0.0majorbreaking
🕐 2 мес назад · релиз на GitHub ↗

Версия 2.0.0: переход на Node.js 22, поддержка современного протокола MCP 2026-07-28 и усиление безопасности.

  • Breaking: Требование Node.js 22+: поддержка Node.js 20 прекращена, необходимо обновление среды выполнения.
  • Breaking: Пакет стал исполняемым только через CLI: удален программный интерфейс, прямые импорты больше не поддерживаются.
  • Breaking: Новые правила для HTTP-запросов: обязательны заголовки Content-Type и MCP-Protocol-Version, добавлены жесткие лимиты.
  • Deprecated: Удалены уведомления об ошибках логирования после подключения, так как современный протокол их больше не использует.
  • Added: Добавлена поддержка современного протокола MCP версии 2026-07-28 для HTTP и STDIO транспортов.
  • Fixed: Внедрено глобальное ограничение частоты вызовов инструментов для всех транспортов для защиты от перегрузки.
v1.15.0minorbreaking
🕐 2 мес назад · релиз на GitHub ↗

Добавлен параметр result_detail для выбора формата ответа поиска: компактный (3 строки) или полный (с метаданными).

  • Added: В searxng_web_search добавлен параметр result_detail с режимами compact и full.
  • Added: Режим compact возвращает только заголовок, URL и описание, экономя токены.
  • Added: Режим full сохраняет все метаданные SearXNG и исследовательские сигналы.
  • Breaking: Парсеры, зависящие от метаданных, должны явно запрашивать result_detail=full.
v1.14.1patch
🕐 3 мес назад · релиз на GitHub ↗

Релиз v1.14.1: усиление тестов HTTP-транспорта, обновление зависимостей и исправление уязвимости в brace-expansion.

  • Fixed: Улучшено покрытие тестов HTTP-транспорта: теперь проверяется реальное взаимодействие через loopback TCP.
  • Обновлены зависимости и базовый образ Docker: Node 24 LTS, Hono 4.13.0, ip-address 10.4.0, fast-uri 3.1.5.
  • Fixed: Исправлена уязвимость в dev-зависимости brace-expansion (ESLint/minimatch) до версии 5.0.9.
v1.14.0minor
🕐 3 мес назад · релиз на GitHub ↗

Добавлена настройка формата ответа SearXNG и безсостоянный режим Streamable HTTP для серверных развертываний.

  • Added: Появилась возможность задавать формат ответа SearXNG по умолчанию через переменную SEARXNG_DEFAULT_RESPONSE_FORMAT (text или json).
  • Added: Реализован безсостоянный режим Streamable HTTP (MCP_HTTP_STATELESS=true) для изоляции запросов в серверных и горизонтально масштабируемых средах.
  • Added: В безсостоянном режиме добавлены ограничения на количество одновременных запросов, время жизни запроса и усиленная проверка авторизации.
  • Added: Из схемы инструмента удалена жестко заданная аннотация default: text, что позволяет клиентам корректно использовать операторские настройки по умолчанию.
v1.11.0minor
🕐 4 мес назад · релиз на GitHub ↗

Внедрено кэширование поисковых запросов, поддержка Basic Auth в URL для каждого инстанса SearXNG и настройка User-Agent, исправлены ошибки аутентификации.

  • Added: Добавлено in-memory кэширование результатов поиска с настраиваемым TTL и лимитом записей.
  • Added: Появилась возможность задавать учетные данные Basic Auth непосредственно в URL каждого инстанса SearXNG.
  • Added: Введена переменная SEARCH_USER_AGENT для управления заголовком User-Agent в запросах к SearXNG.
  • Fixed: Исправлено применение Basic Auth и пользовательских CA-сертификатов на всех эндпоинтах, включая /config и /autocompleter.
  • Fixed: Улучшено сообщение об ошибке при превышении лимита размера контента в web_url_read.
  • Added: В ресурсе config теперь скрываются учетные данные из URL, чтобы избежать утечки секретов.
v1.10.1patch
🕐 4 мес назад · релиз на GitHub ↗

Исправлено применение USER_AGENT для всех запросов и усилен SSRF-фильтр, блокирующий CGNAT и спецдиапазоны IPv4.

  • Fixed: Заголовок USER_AGENT теперь корректно отправляется при запросах к /config и получению подсказок, что устраняет проблемы с блокировками на стороне SearXNG.
  • Fixed: Усилен SSRF-фильтр: теперь блокируются диапазоны CGNAT, тестовые сети, мультикаст и другие специальные адреса IPv4 согласно RFC 6890.