# Obsidian Hybrid Search [Health: Active]

**Category:** 🧠 Knowledge & Memory  
**Repository:** https://github.com/flowing-abyss/obsidian-hybrid-search  
**GitHub Stars:** 115  
**npm Downloads (last month):** 4640  
**Views:** 6  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/obsidian-hybrid-search

## Description
Search Obsidian vaults with hybrid full-text, fuzzy, semantic, and graph retrieval.

## Tools
Capabilities this server exposes over MCP:

- **search** — Search the vault. Use `query` for text search (`mode`: hybrid/semantic/fulltext/title) or `path` for semantic similarity. Combine `path` with `related: true` for graph traversal. Pass `queries[]` for multi-query fan-out (parallel search, RRF merge). Supports `scope`, `tag`, `limit`, `threshold`, `d…
- **read** — Fetch one or more notes by vault-relative path. Returns full content, title, aliases, tags, links, and backlinks. On path miss: returns `found: false` with top-3 fuzzy suggestions. Accepts a single path or an array. Use `snippet_length` to cap content size
- **reindex** — Reindex the vault or a specific file
- **status** — Show total notes, indexed count, last indexed time

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "obsidian-hybrid-search": {
    "command": "npx",
    "args": ["-y","-p","obsidian-hybrid-search@latest","obsidian-hybrid-search-mcp"]
  }
}
```

## Documentation

## What Obsidian Hybrid Search does

Obsidian Hybrid Search exposes an Obsidian vault to MCP clients as a searchable knowledge source. Its retrieval engine supports text queries, semantic similarity, title and alias matching, metadata filters, and relationships between notes. Search results can include snippets, tags, aliases, outgoing links, and backlinks, giving an agent both matching content and the surrounding note structure.

The server is suited to agents that need to locate source notes, assemble context from several files, follow linked ideas, or retrieve notes whose wording differs from the query. It operates on vault-relative paths and can return complete note content when a result needs closer inspection.

## How it works

The index combines BM25 full-text retrieval, fuzzy title matching, and embeddings. Hybrid results are merged with reciprocal rank fusion (RRF). Text searches can use `hybrid`, `semantic`, `fulltext`, or `title` modes. A path-based search finds semantically similar notes, while adding graph traversal follows linked notes. Traversal can be filtered by outgoing links, backlinks, or both, and can use a configurable depth.

Multiple queries can be sent together for parallel fan-out. Their results are merged with RRF, which helps when related notes use different vocabulary. Search also supports folder scopes, tag filters, result limits, score thresholds, and snippet-length control.

Embeddings work locally by default with `Xenova/multilingual-e5-small`, using approximately 117 MB on first use and requiring no API key. An OpenAI-compatible embedding endpoint can be used instead, including providers such as OpenRouter, Ollama, or LM Studio. The project also supports optional cross-encoder reranking with `gte-multilingual-reranker-base`.

## Setup and configuration

Install the package globally with:

```bash
npm install -g obsidian-hybrid-search
```

Set `OBSIDIAN_VAULT_PATH` to the vault location, then create the index with `ohs reindex`. When run from inside a vault, the CLI can find the root by locating the nearest `.obsidian` directory. A database path can also be supplied explicitly when operating outside the vault.

The first local embedding run downloads the default model. Remote embeddings use `OPENAI_API_KEY`, with `OPENAI_BASE_URL` and `OPENAI_EMBEDDING_MODEL` available for compatible providers and models.

## Tools and capabilities

- `search` searches by text, semantic similarity, title, aliases, tags, folders, or note relationships.
- `search` accepts multiple queries and merges their results with RRF.
- `read` retrieves one or more notes by vault-relative path, including content, title, aliases, tags, links, and backlinks.
- `read` returns fuzzy path suggestions when a requested note is not found and can limit content with `snippet_length`.
- `reindex` rebuilds the vault index or updates a specific file.
- `status` reports total notes, indexed notes, and the last indexing time.
- Incremental indexing processes changed files and watches for edits in real time.

## Limitations and notes

Semantic retrieval depends on the selected embedding model and its local or remote runtime. Optional reranking adds a separate model download of about 341 MB. Search quality and timing vary with vault size, query type, and configuration; published evaluations include vaults ranging from 171 to more than 22,000 notes.

_Full upstream README: https://allmcps.com/mcp/obsidian-hybrid-search/readme_

