search2ai MCP

Свой шлюз веб-поиска для агентов: MCP-сервер, HTTP API и библиотека с переключением между Tavily, Brave, Exa, SearXNG и другими

  • 1 288 ★ репозитория
  • Последний коммит
  • MIT
MCP-сервер

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

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

  • Агент отправляет поисковые запросы и адреса страниц сторонним сервисам и читает страницы из сети
  • Ключи провайдеров лежат в `env` клиента или в `.env`, а открытый HTTP-сервис без `AUTH_KEYS` доступен всем, кто достучится до порта
Все причины и проверки

fatwang2/search2ai

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add mcp/search2ai

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

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

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

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

  • Агент отправляет поисковые запросы и адреса страниц сторонним сервисам и читает страницы из сети
  • Ключи провайдеров лежат в `env` клиента или в `.env`, а открытый HTTP-сервис без `AUTH_KEYS` доступен всем, кто достучится до порта

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

Что делает

search2ai дает агенту три операции: `search`, `news` и `crawl` (чтение страницы). За ними стоят поисковые сервисы, которые вы подключаете сами: Search1API, Tavily, Brave, Exa, Serper, SerpAPI, Google, SearXNG, Jina и Firecrawl. Ответ всегда приходит в одном формате: заголовок, адрес, фрагмент и необязательные поля вроде даты и содержимого. Автоматически ни один провайдер не включается, вы перечисляете только нужные. Когда провайдер упирается в лимит, отвечает слишком долго или падает, шлюз берет следующий из вашей цепочки и сообщает, какой сервис ответил и почему другие не справились. Для поиска, новостей и чтения страниц цепочки настраиваются отдельно, есть кэш в памяти и в Cloudflare KV. Подключить шлюз можно тремя способами. Локальный MCP-сервер запускается командой `npx -y search2ai mcp` и работает по stdio. HTTP-сервис `npx -y search2ai serve` слушает порт 3014 и отдает `/v1/search`, `/v1/news`, `/v1/crawl` и удаленный MCP на `/mcp`. Библиотека `search2ai` для TypeScript работает внутри вашего процесса. Есть и необязательный чат-прокси: он добавляет веб-поиск моделям с вызовом инструментов.

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

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

  • Агент ходит в поиск через одного провайдера, и лимиты или сбои регулярно обрывают задачу
  • Нужен единый формат ответа поиска, новостей и чтения страниц от нескольких сервисов
  • Вы держите собственный SearXNG и хотите ставить его первым в цепочке, а платные сервисы оставить на запас
  • Приложение уже говорит на API Exa, Tavily, Search1API, SearXNG или Firecrawl, и его хочется перевести на шлюз с минимальными правками

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

  • Вам нужен поиск без собственных ключей: шлюз сам ничего не ищет, и без настроенного провайдера запрос поиска возвращает ошибку 503
  • Среда не тянет Node.js 22.18 или новее, на которую рассчитан пакет
  • Нужны строгие фильтры по стране, языку, домену и дате у каждого запроса: не все провайдеры их поддерживают, например, Parallel без ключа вернет предупреждение `unsupported`
  • Задача покрывается одним официальным MCP-сервером поисковика, и запасные провайдеры не нужны

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

Найди через search2ai свежие новости о релизе Hono и прочитай первую страницу целиком

MCP

Транспорт
stdio, http
Авторизация
API-ключ

Переменные окружения

SEARCH1API_KEY обязательная, секрет
Ключ Search1API. Нужен ключ хотя бы одного провайдера, при желании вместо него другой.
TAVILY_KEY секрет
Ключ Tavily для поиска, новостей и чтения страниц.
BRAVE_KEY секрет
Ключ Brave для поиска и новостей.
SEARXNG_BASE_URL
Адрес вашего SearXNG с включенным выводом JSON.
AUTH_KEYS секрет
Ключи доступа HTTP-сервиса: клиент присылает их в заголовке `Authorization: Bearer`.

Ограничения

  • Нужен Node.js 22.18 или новее и ключ хотя бы одного провайдера, который умеет нужную операцию.
  • Возможности зависят от провайдера: Brave, Serper и SerpAPI не читают страницы, у Google новости идут обычным поиском с сортировкой по дате, а Jina и Parallel включаются только явно.
  • Запросы и содержимое страниц уходят выбранным сторонним сервисам.
  • С заданным `AUTH_KEYS` HTTP-сервис требует заголовок `Authorization: Bearer`. Без этой переменной сервис открыт, и порт нужно закрыть самому.
  • Рядом с проектом развивается платный сервис Search1API того же автора, примеры запуска построены на нем.

Как отключить. Уберите запись `search2ai` из `mcpServers` в конфигурации клиента. HTTP-сервис остановите (Ctrl+C или остановкой контейнера), npm-пакет можно удалить командой `npm rm search2ai`.

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

Как подключить search2ai к Cursor или Claude Desktop?

Добавьте сервер в `mcpServers` с командой `npx` и аргументами `-y search2ai mcp`, а в `env` положите ключ провайдера. Клиент запустит шлюз локально и получит инструменты `search`, `news` и `crawl` по stdio.

Какие поисковые сервисы поддерживает search2ai?

Search1API, Tavily, Brave, Exa, Serper, SerpAPI, Google, SearXNG, Jina и Firecrawl, а также Parallel без ключа, если его явно включить в цепочку. Автоматически провайдеры не подключаются.

Что происходит, если провайдер упал или уперся в лимит?

Шлюз пробует следующего провайдера из цепочки операции и возвращает в ответе, кто ответил и почему остальные не справились.

Нужен ли ключ модели для работы?

Нет, шлюз вызывает только поисковые сервисы. Ключ модели нужен лишь необязательному чат-прокси, который обращается к вашей модели.

Чем search2ai отличается от MCP-сервера одного поисковика?

Один официальный сервер говорит с одним сервисом. search2ai объединяет несколько сервисов под общим форматом ответа и переключается между ними при сбое.

Обсуждение

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

MCP-серверы

MCP-сервер объединенного поиска: один интерфейс к Tavily, Brave, Kagi, Exa, Linkup, Firecrawl и поиску по GitHub

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

Локальный веб-поиск для агентов: ищет, читает страницы и отдает сжатые фрагменты с источниками, экономя токены контекста

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

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

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

Официальный MCP Search1API: поиск в вебе, новости, загрузка страниц, карты сайтов и тренды с OAuth или ключом API.

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

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

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

Agent Search MCP ищет в вебе по-английски и по-китайски без ключа API и сохраняет доказательства из разных источников и сбои.

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

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

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

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
search2ai (эта карточка)нетAPI-ключ1 288
Tavily MCP ServerдаAPI-ключ2 488официальный сервер одного сервиса, а здесь несколько провайдеров с переключением
SearXNG MCP Serverнетне нужна1 358поиск только через ваш SearXNG, без запасных платных сервисов
Brave Search MCP ServerдаAPI-ключ1 577официальный сервер Brave для одного поисковика

Коротко о README

README сразу дает быстрый старт: файл `.env` с ключом, запуск HTTP-сервиса и пример запроса через `curl`. Затем таблица способов подключения для клиентов, приложений и чат-интерфейсов, таблица провайдеров с их возможностями и переменными, API шлюза и совместимые эндпоинты для клиентов Exa, Tavily, Search1API, SearXNG и Firecrawl. В конце описаны деплой, чат-прокси и обновление.

Бейдж для README

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