Omniseek

by Battam1111 (community) · Claude Desktop, Claude Code, OpenCode, Python 3.11+, macOS, Linux

MCP MCP Servers Open Source v0.2.0 · 16.08.2026 активный

Self-hosted MCP-сервер восприятия: транскрибирует речь, читает за логинами, видит изображения и кадры видео, работает через языки, запоминает — то, что обычный поиск не находит.

v0.2.0
16.08.2026 current

Установка
# Docker (рекомендуется)
git clone https://github.com/Battam1111/omniseek.git && cd omniseek
docker compose up -d
docker compose logs omniseek        # bearer token printed on first start
curl -s http://127.0.0.1:8765/healthz

# Без Docker
python -m venv .venv && . .venv/bin/activate
scripts/bootstrap.sh
python -m omniseek.serve_http
показать оригинал переведено ИИ

OmniSeek

OmniSeek

Ваш агент находит то, чего не может найти поиск.

Ответ прячется на 47-й минуте подкаста, на три ответа вглубь ветки комментариев, за логином, на другом языке. Ваш агент всё равно его достанет.

Самостоятельно размещаемый MCP-сервер восприятия · одно подключение

CI  License  Python  Built for MCP  Self-hosted

Быстрый старт · Инструменты · Настройка · Участие в разработке

Языки: Английский · Китайский · Японский


Поиск даёт вашему агенту проиндексированные страницы — на одном языке, в виде текста — и на этом останавливается.

OmniSeek даёт ему органы чувств, чтобы идти дальше: сквозь языки, логины, ветки комментариев, аудио и пиксели — и всё это на вашей машине.

Одно настоящее расследование, показанное как спуск через три слоя. Первый слой — записанное и в пределах досягаемости: обычный поиск цитирует правило и упирается в тупик. Второй слой — записанное, но вне досягаемости: таймлайны от первого лица за логином и обходной путь, зарытый в ветке комментариев. Третий слой — нигде не записанное: китайский видео-разбор, расшифрованный из аудио, и видеозаметка, прочитанная из пикселей. Поиск находит в каждом слое свой проход и приходит к ответу.

Что вернул каждый слой, дословно:

  • Записано, и в пределах досягаемости. Заголовки, официальный FAQ, популярные блоги — все одним голосом: «С 2026 года приём по F-1 ограничен первоначальным периодом в 4 года; продление в третьей стране остаётся возможным». Все цитируют одно и то же правило. Никто из них этого не проходил.
  • Записано, но вне досягаемости. Три треда от первого лица на 1point3acres, за вашим собственным логином: Бангкок — от записи до паспорта за 25 дней, от собеседования до одобрения за 30 минут; Милан — месячная борьба за слот, виза выдана на 5 лет; Токио — «гладко, как по маслу». Под постом о Милане автор возвращается в комментариях: «Сначала бронируйте любой поздний слот, затем напишите в консульство, чтобы ускорить процесс. Для одного заявителя F-1 это сработало». Опыт одного человека, а не официальное руководство.
  • Нигде не записано. Китайское видео-разъяснение на bilibili, расшифрованное локально: «потолок в 4 года» из заголовков — это первоначальный период, продления переехали между столами, а не исчезли. Видеозаметка на rednote, подпись которой состоит из четырёх хэштегов, — кадры и речь прочитаны локально: отказ за рубежом по 212(a)(6)(C), заключение об искажении сведений, способно почти закрыть дорогу к F-1.

Обычный поиск процитировал правило и остановился. Люди, прожившие это, держали в руках таймлайны, обходной путь и риск. OmniSeek также назвал источники, которые придержал, — для каждого указан точный вызов, чтобы добраться до него.

Он слышит (локальный двуязычный ASR, без облака), видит (изображения и видеокадры, в самом потоке данных), переходит через языки (запрос на китайском находит результаты на английском и наоборот), читает за стенами логинов (ваши учётные данные, ваша машина, по умолчанию выключено) и помнит (стойкая память поиска плюс типизированный граф доказательств с привязкой к источникам).

Переход между языками опирается на индекс, который OmniSeek строит по мере использования, поэтому свежая установка стартует с нижней планки. Опубликованные тесты проверки утверждений выполняются именно на такой свежей установке, что делает их межъязыковой показатель самым холодным случаем, а не типичным.

Каждый источник в каталоге — курируемом перечне всего, до чего может дотянуться OmniSeek, — заслужил своё место тем, что обыграл обычный поиск в одной из пяти задач (структура, обход стен, транскрибация, полнота, мониторинг): графы цитирований, регуляторные отчёты, форумы за логином, видео на китайском языке. И каталог устроен так, чтобы расти: конвейер-куратор проверяет, оценивает и принимает новые источники, а те, что приходят в упадок, выводит из состава.

Разобранные примеры, реальные результаты · Полное кейс-исследование · Каждое утверждение выше — это тест (последние результаты) · Состояние источников, обновляется еженедельно


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

Docker (рекомендуется)

git clone https://github.com/Battam1111/omniseek.git && cd omniseek
docker compose up -d
docker compose logs omniseek        # bearer token printed on first start
curl -s http://127.0.0.1:8765/healthz

При успешном выполнении возвращается:

{"ok":true}

Укажите вашему MCP-клиенту адрес http://127.0.0.1:8765/mcp с заголовком Authorization: Bearer <token>. Токен генерируется при первом запуске и сохраняется в ~/.omniseek/credentials/omniseek_http.json (при использовании compose-файла — это ./.omniseek/credentials/omniseek_http.json на хосте).

Дальше два пути. Готовый базовый образ (docker pull ghcr.io/battam1111/omniseek, amd64 + arm64) не требует сборки и несёт все базовые «чувства»; он чист с точки зрения лицензии Apache и поставляется без чтения PDF, слуха (ASR + видеокадры) и источников за логином. Желание получить эти дополнения как раз и запускает локальную сборку: задайте EXTRAS="[pdf,asr,walled]" и выполните docker compose build, затем up -d (первая сборка также загружает headless Chromium; последующие запуски мгновенны). Опционально, но рекомендуется: задайте OMNISEEK_CONTACT_EMAIL для ускоренного канала с Crossref, SEC и Unpaywall.

Без Docker

python -m venv .venv && . .venv/bin/activate
scripts/bootstrap.sh
python -m omniseek.serve_http

Базовая установка — это уровень Core: все API без ключей и статические источники, чтение документов без PDF и лексический индекс памяти. Команда pip install "omniseek[pdf,asr,recall,ocr]" пробуждает уровень Research (PDF, слух, кросс-языковые векторы, OCR); omniseek[walled] добавляет уровень источников за логином, который остаётся выключенным, пока вы не подключите собственные аккаунты; omniseek[all] берёт всё. При каждом запуске сервер печатает, какие «чувства» онлайн, а какие спят.

В Windows запускайте bootstrap.sh под Git Bash или WSL; Docker — самый простой путь. Для постоянно работающего Linux-сервиса см. deploy/omniseek.service.

Предпочитаете stdio? В комплект установки также входит команда omniseek, которая говорит на MCP через stdio — для клиентов, запускающих серверы самостоятельно; Dockerfile.stdio оборачивает то же самое в контейнер.

OmniSeek привязывается к 127.0.0.1 и требует bearer-токен в каждом запросе. Не выставляйте его наружу без обратного прокси (SECURITY.md).


Инструменты

Одно MCP-соединение; внутри нет модели и нет агентного цикла. Ваша модель думает, ваш харнесс ведёт цикл, а OmniSeek добывает. Начните с omniseek_search; посмотрите, что доступно, через omniseek_sources.

Инструмент Что делает
omniseek_search Раскидывает запрос по всему каталогу, дедуплицирует, ранжирует. Кросс-языковый (семантический + лексический).
omniseek_read Нормализует любой URL или документ (веб-страница, PDF, arXiv) в чистый текст.
omniseek_view Читает изображения, иллюстрации документов, видеокадры с помощью зрения.
omniseek_transcribe Транскрибирует аудио/видео локально. Двуязычный ASR, можно нарезать по таймкодам.
omniseek_field_skeleton Строит карту цитатного окружения научной области: фундаментальное ядро против фронтира.
omniseek_resolve_identity Сопоставляет имя человека с кандидатами ID авторов в разных базах данных.
omniseek_coauthors Строит карту сети соавторств исследователя по числу совместных публикаций.
omniseek_institution_cohort Перечисляет, кто активно публикуется в лаборатории, с ограничением по области.
omniseek_paper_enrich PDF открытого доступа, статус отзыва/добросовестности, число цитирований статьи.
omniseek_paper_recommend Семантически похожие статьи (эмбеддинги SPECTER), которые пропускает поиск по ключевым словам.
omniseek_graph Запросы к накопленному графу свидетельств: поиск, окрестность, между узлами, начиная с даты, похожие.
omniseek_sensor Постоянно действующие запросы с определением новизны. Сообщает только о том, что нового.
omniseek_ruling Записывает суждения об идентичности (совпадает/не совпадает), которые граф применяет во время чтения.
omniseek_statement Записывает направленные связи, которые граф сохраняет и переносит дальше.
omniseek_curator_act Жизненный цикл источника: подача, проверка, оценка, допуск, вывод из эксплуатации.
omniseek_curator_view Читает очередь допуска источников или аудиторское досье по конкретному источнику.
omniseek_gather Запускает несколько инструментов параллельно, один ответ.
omniseek_sources Список и маршрутизация: домены, регионы, возможности, работоспособность.

Уровень «за логином» не имеет собственного инструмента: когда вы включаете его для конкретного источника, тот же вызов omniseek_search(..., sources=["xiaohongshu"], raw=True) выполняется через ваш собственный браузер, где выполнен вход. См. источники за логином.

Полный справочник в tools.md · FAQ

Пользуетесь Claude Code? skills/omniseek-investigate содержит методологию расследования (широкий охват, фокусировка, структурирование) в виде готового навыка.


Настройка

OmniSeek устроен по принципу «сначала каталог»: без конфигурации все легитимные источники включены, а источники за логином выключены. Вся настройка — в одном файле, ~/.omniseek/profile.json (пример):

Уровень По умолчанию
бесплатный (публичный, без ключа) вкл
по ключу (бесплатный или платный API-ключ, который вы предоставляете) вкл, как только задан ключ
за логином (учётная запись, которая есть у вас) выкл; используется ваш собственный браузер
обходной выкл; в наборе по умолчанию таких нет

Полный справочник: конфигурация · источники за логином · правовая позиция


Почему самостоятельный хостинг

Облака OmniSeek не существует. Ни телеметрии, ни аккаунтов, ни посредников: запрос покидает вашу машину только в виде прямых обращений к включённым вами источникам, и OmniSeek не добавляет в этот путь никаких третьих сторон. Учётные данные источников за логином остаются в вашем собственном браузере и предъявляются только тому сайту, которому принадлежат; OmniSeek никогда не хранит, не выгружает и даже не видит ваши пароли. Накопленная за месяцы память поиска и граф доказательств — это локальные файлы, принадлежащие вам: перестаньте запускать OmniSeek, и всё останется при вас. Это не переключатель функции. Это архитектура.


Участие в разработке

См. CONTRIBUTING.md. Планка для нового источника: он должен превосходить обычный веб-поиск за счёт одного из режимов (структура / обход входа / транскрипция / восстановление / мониторинг). Планка для починки деградировавшего источника: низкая, пожалуйста, чините. Перед пушем запускайте python tests/smoke.py.

Участвуя в проекте, вы соглашаетесь с Кодексом поведения.


Ваш агент ищет то, что не может найти поиск.

Apache-2.0 · NOTICE · Безопасность · Цитирование

Войдите, чтобы оставить комментарий