Obsidian Hybrid Search MCP

obsidian-hybrid-search

Local Obsidian vault search: agents find notes by meaning, words, tags and links through MCP, CLI or a plugin.

  • 118 ★ on the repository
  • Last commit
MCP server

Extended access

Why this level

  • The server reads every note in the vault and passes content to the agent.
  • With remote embeddings, note text goes to an external API.
All reasons and checks

flowing-abyss/obsidian-hybrid-search

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/obsidian-hybrid-search

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The server reads every note in the vault and passes content to the agent.
  • With remote embeddings, note text goes to an external API.

This is third-party code. Review the repository files before installing.

What it does

One retrieval engine ships three ways: an MCP server for agents, the `ohs` CLI and a plugin for Obsidian itself. Results fuse semantic search, BM25 full text, fuzzy title and alias matching, and filters for tags, folders and frontmatter. Every note in a response carries its outgoing links and backlinks. The MCP server exposes three tools: `search`, `read` and `reindex`. The index lives in SQLite with FTS5 and sqlite-vec, embeddings are computed locally with `Xenova/multilingual-e5-small` or taken from an OpenAI-compatible API if you prefer. Indexing is incremental and watches file edits.

Who it is for. Owners of large Obsidian vaults who want Claude Code or Claude Desktop to search their notes rather than whatever was pasted into the chat.

Good fit when

  • An agent answers a question and must rely on your notes, with file references.
  • Similar notes and graph relations are needed: outgoing and backlinks at a set depth.
  • Notes are written in several languages and search should understand meaning.
  • Several clients should share one long-lived indexing process over HTTP.

Not a fit when

  • Notes must not be exposed to an agent, because the server reads vault content.
  • Search over attachments such as PDFs is needed; notes are indexed, not those files.
  • The vault is small and the built-in Obsidian search is enough.

Example request

Search my vault for notes on team retrospectives, show related notes two levels deep and read the two closest.

MCP

Transport
stdio, http
Authentication
not required

Environment variables

OBSIDIAN_VAULT_PATH required
Absolute path to the Obsidian vault.
OBSIDIAN_PREFIX
Optional prefix for MCP tool names.

Limitations

The first run downloads a local model of about 117 MB, and `--rerank` fetches about 341 MB more. `OBSIDIAN_VAULT_PATH` is mandatory for MCP. In HTTP mode, `ohs serve` listens on `127.0.0.1:3939`; when binding beyond the local machine, list the allowed hosts, because `--allow-any-host` turns off Host-header protection. With remote embeddings, note text goes to the chosen API.

How to disable. Remove the server entry from `.mcp.json` or `claude_desktop_config.json`, stop `ohs serve`, uninstall the package and delete `.obsidian-hybrid-search.db` in the vault.

FAQ

How do I connect it to Claude Desktop or Claude Code?

Add an entry to `.mcp.json` or `claude_desktop_config.json` with the `npx` command and arguments `-y -p obsidian-hybrid-search@latest obsidian-hybrid-search-mcp`, and set `OBSIDIAN_VAULT_PATH` in `env`.

Is an API key required?

No. Embeddings are computed locally by default. A key is needed only if you choose a remote OpenAI-compatible API.

How do I prefix the tool names?

Set `OBSIDIAN_PREFIX`, for example `myvault_`, and the tools become `myvault_search` and `myvault_read`. That helps when several vaults are connected.

How do I share one index between clients?

Run `ohs serve`, then point the client at `http://127.0.0.1:3939/mcp`. Change the port with `--port`.

Which model computes embeddings?

`Xenova/multilingual-e5-small` by default, over 100 languages, about a 117 MB download. `--rerank` uses `gte-multilingual-reranker-base`.

Discussion

No questions or reviews yet.

Obsidian MCP Server

obsidian-mcp-server

An MCP server for an Obsidian vault: read, search and precisely edit notes, sections, frontmatter and tags

MCP serverExtended access702Repository stars

An MCP server for an Obsidian vault via the Local REST API plugin: search, read, append and patch notes

MCP serverExtended access4.5KRepository stars

Obsidian plugin with a REST API and a built-in MCP server: an agent reads, searches and surgically edits vault notes from Claude Code or Cursor

MCP serverBroad access3.1KRepository stars

A local MCP server for safe read, search and edit of notes in an Obsidian vault, restricted to the vault root

MCP serverExtended access1.7KRepository stars

A Rust MCP server for Obsidian vaults: search, link graph, note edits guarded by hash checks and rollback from an audit log.

MCP serverExtended access158Repository stars

A CLI that builds a local notes index with catalyst questions so the agent finds material faster than plain grep search

CLIExtended access126Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
Obsidian Hybrid Search (this card)nonot required118
Local REST API for ObsidiannoAPI key3,116exposes a REST API and MCP for reading and editing notes; Obsidian Hybrid Search specializes in ranked retrieval
obsidian-wikino3,687a skill set for maintaining a wiki; this is a search engine with an index and link graph

README in short

The author reports tests on three sets: the Obsidian Help vault, Andy Matuschak's public notes and 22,419 LongMemEval-S notes. On the Help vault, OHS scores nDCG@5 of 0.733 against 0.659 for qmd.

README badge

Report a problem

Foxx AIObsidian Hybrid Search
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.