All MCP Servers
Dev Tools & GitMCP Registrynpm7 toolsA · 80

Obsidian Semantic Search MCP server

io.github.DalecB · Updated

Read-only semantic search MCP server for Obsidian vaults using local Ollama embeddings.

At a glance

Obsidian Semantic Search is an MCP server in the Dev Tools & Git category. It runs locally over stdio via `npx -y @dalecb/obsidian-semantic-mcp`, and needs OBSIDIAN_VAULT_ROOT. It exposes 7 tools, including index_status, index_vault and search_notes. It scores A (80/100) on the MCP Skills Hub health score as of Oct 27, 2026.

Source 1GitHub stars

One-click install

Opens your editor and pre-fills the config. Your editor will ask before adding it.

How to install Obsidian Semantic Search in your AI client

Setup for Claude Code, Claude Desktop, Cursor, Codex, Windsurf, Cline and VS Code — copy-paste ready.

How to install Obsidian Semantic Search in Claude CodeAnthropic's agentic CLI

  1. Add the server

    bash
    claude mcp add obsidian-semantic-mcp -e 'OBSIDIAN_VAULT_ROOT=<OBSIDIAN_VAULT_ROOT>' -- npx -y @dalecb/obsidian-semantic-mcp
  2. Fill in your credentials

    Replace <OBSIDIAN_VAULT_ROOT> with your real value. Keep secrets out of any config file you commit.

  3. Verify it's connected

    bash
    claude mcp list
  4. Sharing it with your team?

    Add `--scope project` to write it to .mcp.json in the repository root, which you can commit (with the secrets left as environment variables).

  5. Use it in a session

    Ask Claude to use the tools this server exposes (e.g. index_status, index_vault, search_notes). It discovers them automatically.

What does Obsidian Semantic Search need from you?

Configuration only — Declares config values but no credentials.

  • OBSIDIAN_VAULT_ROOTrequiredEnvironment variable

    Absolute path to the local Obsidian vault.

  • OBSIDIAN_SEMANTIC_MCP_HOMEoptionalEnvironment variable

    Directory for the external SQLite index, logs, and cache.

  • OBSIDIAN_EMBED_MODELoptionalEnvironment variable

    Ollama embedding model name. Defaults to bge-m3.

  • OLLAMA_BASE_URLoptionalEnvironment variable

    Ollama API base URL. Defaults to http://localhost:11434.

  • OBSIDIAN_SEMANTIC_STARTUP_INDEXoptionalEnvironment variable

    Set to true to run incremental indexing when the server starts.

  • OBSIDIAN_SEMANTIC_ALLOW_SENSITIVEoptionalEnvironment variable

    Set to true to allow include_sensitive tool calls.

  • OBSIDIAN_SEMANTIC_EXCLUDEoptionalEnvironment variable

    Comma- or newline-separated folders to always exclude from indexing, search, and read.

  • OBSIDIAN_SEMANTIC_SENSITIVE_PATHSoptionalEnvironment variable

    Comma- or newline-separated folders treated as sensitive (blocked unless unlocked). Defaults to 08_PersonalInfo/.

Pass secrets through your shell environment rather than committing them into a config file.

What tools does Obsidian Semantic Search expose? (7)

Taken from the project's README — the server itself was not queried, so check its docs for the exact schemas.

  • index_statusReturns index metadata and safety settings.
  • index_vaultBuilds or updates the external SQLite index.
  • search_notesSearches notes with hybrid semantic and keyword ranking.
  • hybridsemantic vector + SQLite FTS5 + metadata boosts
  • semanticvector-first search
  • keywordFTS5 keyword search without embedding the query
  • read_noteReads a note or line range by vault-relative path.

What the code can do

Read from the published package source — never executed. Parsed 11 of 11 source files.

This server can read and write files, make network requests and read your environment variables.

How it was published

  • No provenance attestation — there is nothing linking this published artifact to a specific source commit.
  • 1 npm maintainer — a single point of compromise · last published by dalecb.

Maintainer of this package and think something here is wrong? Tell us and we'll correct it.

Before you install

Signals gathered from the source repo and package registry — not a safety verdict.

What it can reach

  • Runs code on your machine — Executes as a local process with your user's permissions, including filesystem access.
  • Downloads at launch — The package is fetched from its registry each run unless you pin a version.
  • Last commit 2 months ago — Actively maintained.
  • 1 GitHub stars — Very little community usage so far.

Client compatibility

Claude Code: NativeClaude Desktop: NativeCursor: NativeCodex CLI: NativeWindsurf: NativeCline: NativeVS Code: Native

Health score

A · 80

Maintenance, adoption, transparency and packaging — not a safety audit. How this is calculated

  • Maintenance30%92%

    Last commit 83 days ago.

  • Adoption20%9%

    1 stars.

  • Transparency20%100%

    4/4: ✓ public source repo, ✓ declared license, ✓ documentation, ✓ discoverable tool list.

  • Provenance15%100%

    Package and registry entry point at the same repository.

  • Packaging15%100%

    Publishes a pinned version (0.2.1).

Documentation

Full README

Obsidian Semantic Search MCP

Read-only semantic retrieval for agents that need to find the right Obsidian note without write access.

한국어 · Quick Start · Why This Exists · How It Works


Your Obsidian vault is useful only if your agent can find the right note.

Keyword search misses context. Full write-capable Obsidian MCP servers expose more power than a retrieval agent needs. Obsidian plugins are great inside Obsidian, but they are not always the right boundary for Codex, Claude Desktop, Cursor, or any other MCP client.

This project is the narrow version:

text
local Obsidian vault -> read-only scanner -> local SQLite index -> MCP search/read tools

No note writes. No cloud embeddings by default. No Obsidian plugin runtime. No sync service.

Status: 0.3.1 early preview. The server is usable today, but ranking behavior and tool schemas may change before 1.0.

What You Get

| Need | What this server does | | --- | --- | | Find the note an agent should read | Hybrid semantic + keyword search over Markdown notes | | Keep the vault safe | Exposes search/read/index/status only; no write, patch, move, rename, or delete tools | | Stay local-first | Uses Ollama embeddings and stores the index on your machine | | Make results agent-friendly | Returns file-level matches with headings, snippets, and line ranges | | Avoid plugin state | Reads the vault directly from the filesystem; Obsidian does not need to be running |

Example result shape:

json
{
  "path": "02_Projects/RealtimeAPI/05_Interview_QA.md",
  "title": "Interview Q&A",
  "score": 0.7431,
  "matched_sections": [
    {
      "heading": "Level 4 > Redis Lua atomicity",
      "lines": [266, 305],
      "reason": "semantic=1, keyword=0.5565, metadata=0.6"
    }
  ]
}

Excerpt — the full document is on GitHub.

Maintain Obsidian Semantic Search? Add a badge to your README

Shows its health grade, and links readers to install steps for every client.

markdown
[![Obsidian Semantic Search on MCP Skills Hub](https://mcp-skills-hub.vercel.app/badge/io-github-dalecb-obsidian-semantic-mcp)](https://mcp-skills-hub.vercel.app/mcps/io-github-dalecb-obsidian-semantic-mcp)

Catalog data refreshed . Something wrong? Report it.