RustXNG MCP

Локальный метапоиск на Rust по мотивам SearXNG: агент получает выдачу в JSON и читает страницы с жестким лимитом на размер ответа

  • 961 ★ репозитория
  • Последний коммит
  • AGPL-3.0
MCP-сервер

Расширенный доступ

Почему такой уровень

  • Поисковые запросы уходят выбранным внешним поисковым движкам.
  • `read_page` открывает адреса из выдачи и загружает чужой текст в контекст агента.
Все причины и проверки

sahenjp/rustxng

Установка

Ручная установка

set -eu
mkdir -p rustxng-download && cd rustxng-download
gh release download v0.26.0 --repo sahenjp/RustXNG \
  --pattern 'rustxng-v0.26.0-x86_64-unknown-linux-musl*' \
  --pattern LICENSE --pattern NOTICE
sha256sum --check rustxng-v0.26.0-x86_64-unknown-linux-musl.sha256
install -Dm755 rustxng-v0.26.0-x86_64-unknown-linux-musl "$HOME/.local/bin/rustxng"

Первый способ из README: готовый бинарный файл для Linux x86_64 с проверкой контрольной суммы. Для macOS и Windows бинарные файлы лежат в релизах.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Поисковые запросы уходят выбранным внешним поисковым движкам.
  • `read_page` открывает адреса из выдачи и загружает чужой текст в контекст агента.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

RustXNG — самохостируемый метапоисковик на Rust, построенный на основе SearXNG. Сервер собирает выдачу из нескольких поисковых движков и по запросу достает текст страниц, чтобы агент опирался на источники, а не на память модели. Команда `rustxng mcp` запускает MCP-сервер по stdio с двумя инструментами только для чтения: `search` и `read_page`. `search` по умолчанию возвращает пять результатов, каждый фрагмент обрезан до 500 символов, а весь структурированный ответ укладывается в 12 000 символов и 24 000 байт. `read_page` читает страницу по адресу из выдачи, принимает смещение и при заданном `query` добавляет до трех подходящих отрывков. Те же результаты отдают HTTP API с форматами JSON, CSV и RSS и веб-интерфейс на локальном адресе.

Для кого. Разработчикам, которые держат у себя поиск для Claude Code, Codex или Cursor и хотят ограничить, сколько текста из выдачи попадает в контекст модели.

Подходит, если

  • Агент собирает документацию по библиотеке и читает только нужные страницы из выдачи.
  • Исследовательский прогон упирается в размер контекста, и ответ поиска приходится резать по символам.
  • Поиск должен работать на своей машине, без регистрации у платных поисковых API.
  • Запросы идут на японском: у проекта есть отдельные замеры качества для японской выдачи.

Не подходит, если

  • Запросы нельзя отправлять внешним поисковым движкам: сервер передает их выбранным провайдерам.
  • Выдача должна идти из Google: его движки и интеграции из проекта удалены.
  • Страницы читают через исходящий прокси: `read_page` в этом случае отказывает и ждет прямого соединения.

Пример запроса к агенту

Найди три источника про рантайм Tokio, покажи ссылки и прочитай страницу документации, отметив, обрезан ли текст.

MCP

Транспорт
stdio
Авторизация
не нужна

Ограничения

Выдача зависит от внешних движков: часть адаптеров, например Yahoo! JAPAN и Mojeek HTML, по умолчанию выключена до проверки разрешений. `read_page` берет только адреса, которые вернул поиск в этой же сессии. Лимиты ответа считаются в символах и байтах, токенные бюджеты в планах. Лицензия AGPL-3.0-or-later обязывает открыть исходники измененной версии, если запускать ее как сетевой сервис. Опубликованный релиз v0.26.0 слушает порт 8888, а свежая сборка из репозитория — 29483, поэтому порт в командах лучше задавать явно.

Как отключить. Удалите запись `rustxng` из конфигурации MCP-клиента и остановите процесс сервера. Бинарный файл лежит в каталоге, выбранном при установке, например `~/.local/bin/rustxng`.

Частые вопросы

Как подключить RustXNG к Claude Code?

Зарегистрируйте команду `rustxng mcp` как stdio MCP-сервер в клиенте. После перезапуска агенту станут доступны инструменты `search` и `read_page`.

Чем `search` отличается от `read_page`?

`search` возвращает ранжированные фрагменты со ссылками, а `read_page` загружает текст страницы по адресу из выдачи и принимает смещение, чтобы читать длинный документ по частям.

Как ограничить объем ответа?

В HTTP API задайте `max_results` от 1 до 200 и фильтры `include_domains` или `exclude_domains`. В MCP по умолчанию пять результатов, а поля `truncated` и `next_offset` показывают, что есть продолжение.

Нужны ли API-ключи?

Большинству движков ключи не нужны. Платные провайдеры с авторизацией подключаются отдельно, со своими ключами и тарифами.

Куда уходят поисковые запросы?

Тем внешним движкам, которые выбраны для запроса. Сам сервер работает локально, а `/healthz` проверяет только процесс, а не доступность движков.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы

MCP-сервер для приватного веб-поиска через ваш инстанс SearXNG: поиск с пагинацией и фильтрами, чтение страниц и PDF

MCP-серверРасширенный доступ1,4 тыс.Звезды репозитория

Веб-поиск без API-ключей для агентов: Rust-сервис по HTTP или MCP сводит выдачу DuckDuckGo, Brave и Yahoo в один JSON.

MCP-серверШирокий доступ135Звезды репозитория

MCP-сервер веб-поиска и обхода: SearXNG плюс You.com и чистый Markdown со страниц, сайтов и закрытых разделов

MCP-серверРасширенный доступ190Звезды репозитория

Локальный веб-поиск для агента без ключей API: результаты ранжируются на вашей машине, в ответ идут только нужные абзацы

MCP-серверРасширенный доступ151Звезды репозитория

MCP-сервер ищет веб-источники через Grok, сохраняет ссылки и извлекает содержимое страниц с учетом доступных провайдеров.

MCP-серверРасширенный доступ453Звезды репозитория

SearXNG AI Kit дает агентам веб-поиск по 180 с лишним движкам через CLI и MCP-сервер, без ключа поискового API

MCP-серверРасширенный доступ110Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
RustXNG (эта карточка)нетне нужна961
SearXNG MCP Serverнетне нужна1 358подключает агента к уже работающему экземпляру SearXNG; RustXNG сам собирает выдачу и содержит MCP-режим
DuckDuckGo Search MCP Serverнетне нужна1 577ходит в один поисковый сервис, DuckDuckGo; RustXNG объединяет выдачу нескольких движков

Коротко о README

Проект переписывает идею SearXNG на Rust и поставляется бинарными релизами, образом Docker и сборкой из исходников. В репозитории лежат замеры по набору SealQA, отдельные проверки японских запросов и руководство по установке, написанное для самого агента.

Бейдж для README

Сообщить о проблеме