# Obsidian Hybrid Search

MCP-сервер даёт агенту доступ к хранилищу Obsidian: ищет заметки по смыслу, заголовку и связям, читает их и отдаёт цитаты из ваших файлов.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 113
- Автор: flowing-abyss
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/flowing-abyss/obsidian-hybrid-search
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/mcp/obsidian-hybrid-search

## Что делает

Obsidian Hybrid Search объединяет несколько способов поиска в одном движке: BM25 по полному тексту, нечёткое совпадение по заголовкам и алиасам, семантические эмбеддинги и обход графа ссылок. Результаты сливаются через RRF, поэтому заметка всплывает наверх, даже если вы не помните точных слов. Есть четыре режима для текстовых запросов: `hybrid`, `semantic`, `fulltext` и `title`.

Агенту доступны чтение заметок по пути внутри хранилища, поиск похожих заметок и переход по связям с фильтром по направлению (`outgoing`, `backlinks`, `both`). Индексация инкрементальная: переиндексируются только изменённые файлы. Локальные эмбеддинги работают офлайн через `@huggingface/transformers`, модель по умолчанию — `Xenova/multilingual-e5-small`. Можно подключить OpenAI-совместимый API вроде OpenRouter или Ollama.

Для запуска нужен путь к хранилищу в `OBSIDIAN_VAULT_PATH`. Удалённые эмбеддинги требуют `OPENAI_API_KEY`, без него сервер работает на локальной модели. Опциональный `--rerank` тянет `gte-multilingual-reranker-base` (ONNX int8, около 341 MB) и заметно замедляет выдачу — включайте, когда важнее точность на концептуальных запросах.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `OBSIDIAN_VAULT_PATH`, `OBSIDIAN_PREFIX`, `OBSIDIAN_IGNORE_PATTERNS`, `OBSIDIAN_RESPECT_GITIGNORE`, `OBSIDIAN_INCLUDE_PATTERNS`, `OPENAI_API_KEY`, `OPENAI_BASE_URL`, `OPENAI_EMBEDDING_MODEL`, `LOCAL_EMBEDDING_MODEL`, `RERANKER_MODEL` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.
- Работает с: Obsidian

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env OBSIDIAN_VAULT_PATH=<OBSIDIAN_VAULT_PATH> --env OBSIDIAN_PREFIX=<OBSIDIAN_PREFIX> --env OBSIDIAN_IGNORE_PATTERNS=<OBSIDIAN_IGNORE_PATTERNS> --env OBSIDIAN_RESPECT_GITIGNORE=<OBSIDIAN_RESPECT_GITIGNORE> --env OBSIDIAN_INCLUDE_PATTERNS=<OBSIDIAN_INCLUDE_PATTERNS> --transport stdio obsidian-hybrid-search -- npx -y obsidian-hybrid-search
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add obsidian-hybrid-search --env OBSIDIAN_VAULT_PATH=<OBSIDIAN_VAULT_PATH> --env OBSIDIAN_PREFIX=<OBSIDIAN_PREFIX> --env OBSIDIAN_IGNORE_PATTERNS=<OBSIDIAN_IGNORE_PATTERNS> --env OBSIDIAN_RESPECT_GITIGNORE=<OBSIDIAN_RESPECT_GITIGNORE> --env OBSIDIAN_INCLUDE_PATTERNS=<OBSIDIAN_INCLUDE_PATTERNS> -- npx -y obsidian-hybrid-search
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "obsidian-hybrid-search": {
            "command": "npx",
            "args": [
                "-y",
                "obsidian-hybrid-search"
            ],
            "env": {
                "OBSIDIAN_VAULT_PATH": "<OBSIDIAN_VAULT_PATH>",
                "OBSIDIAN_PREFIX": "<OBSIDIAN_PREFIX>",
                "OBSIDIAN_IGNORE_PATTERNS": "<OBSIDIAN_IGNORE_PATTERNS>",
                "OBSIDIAN_RESPECT_GITIGNORE": "<OBSIDIAN_RESPECT_GITIGNORE>",
                "OBSIDIAN_INCLUDE_PATTERNS": "<OBSIDIAN_INCLUDE_PATTERNS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "obsidian-hybrid-search": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "obsidian-hybrid-search"
            ],
            "env": {
                "OBSIDIAN_VAULT_PATH": "<OBSIDIAN_VAULT_PATH>",
                "OBSIDIAN_PREFIX": "<OBSIDIAN_PREFIX>",
                "OBSIDIAN_IGNORE_PATTERNS": "<OBSIDIAN_IGNORE_PATTERNS>",
                "OBSIDIAN_RESPECT_GITIGNORE": "<OBSIDIAN_RESPECT_GITIGNORE>",
                "OBSIDIAN_INCLUDE_PATTERNS": "<OBSIDIAN_INCLUDE_PATTERNS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e OBSIDIAN_VAULT_PATH=<OBSIDIAN_VAULT_PATH> -e OBSIDIAN_PREFIX=<OBSIDIAN_PREFIX> -e OBSIDIAN_IGNORE_PATTERNS=<OBSIDIAN_IGNORE_PATTERNS> -e OBSIDIAN_RESPECT_GITIGNORE=<OBSIDIAN_RESPECT_GITIGNORE> -e OBSIDIAN_INCLUDE_PATTERNS=<OBSIDIAN_INCLUDE_PATTERNS> obsidian-hybrid-search npx -y obsidian-hybrid-search
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

## Когда брать
- найти заметку по смыслу, не помня точных формулировок
- подтянуть цитаты из хранилища Obsidian в ответ агента
- перейти от одной заметки к связанным по ссылкам
- отфильтровать выдачу по тегу или подпапке
- прочитать несколько заметок по путям за один вызов

## Примеры запросов агенту
- Найди в хранилище заметки про инкрементальную индексацию и покажи цитаты
- Покажи заметки, связанные с `notes/dev/architecture.md`, на два уровня вглубь
- Найди похожие заметки на `notes/ideas/retrieval.md`

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
