Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Obsidian Semantic Search

von DalecBVersion 0.2.1i★ –iLäuft auf deinem Computer
Name in der Registryio.github.DalecB/obsidian-semantic-mcp

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

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

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Dokumente, Tabellen & Büroarbeit
  • Das musst du eintragen: OBSIDIAN_VAULT_ROOT

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: OBSIDIAN_VAULT_ROOT, OBSIDIAN_SEMANTIC_MCP_HOME, OBSIDIAN_EMBED_MODEL, OLLAMA_BASE_URL, OBSIDIAN_SEMANTIC_STARTUP_INDEX, OBSIDIAN_SEMANTIC_ALLOW_SENSITIVE, OBSIDIAN_SEMANTIC_EXCLUDE, OBSIDIAN_SEMANTIC_SENSITIVE_PATHS

Du brauchst

  • npmNode.js installiert (für den Befehl npx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "obsidian-semantic": {
      "command": "npx",
      "args": [
        "-y",
        "@dalecb/obsidian-semantic-mcp"
      ],
      "env": {
        "OBSIDIAN_VAULT_ROOT": "your-value",
        "OBSIDIAN_SEMANTIC_MCP_HOME": "your-value",
        "OBSIDIAN_EMBED_MODEL": "your-value",
        "OLLAMA_BASE_URL": "your-value",
        "OBSIDIAN_SEMANTIC_STARTUP_INDEX": "your-value",
        "OBSIDIAN_SEMANTIC_ALLOW_SENSITIVE": "your-value",
        "OBSIDIAN_SEMANTIC_EXCLUDE": "your-value",
        "OBSIDIAN_SEMANTIC_SENSITIVE_PATHS": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add obsidian-semantic --env OBSIDIAN_VAULT_ROOT=your-value --env OBSIDIAN_SEMANTIC_MCP_HOME=your-value --env OBSIDIAN_EMBED_MODEL=your-value --env OLLAMA_BASE_URL=your-value --env OBSIDIAN_SEMANTIC_STARTUP_INDEX=your-value --env OBSIDIAN_SEMANTIC_ALLOW_SENSITIVE=your-value --env OBSIDIAN_SEMANTIC_EXCLUDE=your-value --env OBSIDIAN_SEMANTIC_SENSITIVE_PATHS=your-value -- npx -y @dalecb/obsidian-semantic-mcp

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "obsidian-semantic": {
      "command": "npx",
      "args": [
        "-y",
        "@dalecb/obsidian-semantic-mcp"
      ],
      "env": {
        "OBSIDIAN_VAULT_ROOT": "your-value",
        "OBSIDIAN_SEMANTIC_MCP_HOME": "your-value",
        "OBSIDIAN_EMBED_MODEL": "your-value",
        "OLLAMA_BASE_URL": "your-value",
        "OBSIDIAN_SEMANTIC_STARTUP_INDEX": "your-value",
        "OBSIDIAN_SEMANTIC_ALLOW_SENSITIVE": "your-value",
        "OBSIDIAN_SEMANTIC_EXCLUDE": "your-value",
        "OBSIDIAN_SEMANTIC_SENSITIVE_PATHS": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "obsidian-semantic": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@dalecb/obsidian-semantic-mcp"
      ],
      "env": {
        "OBSIDIAN_VAULT_ROOT": "your-value",
        "OBSIDIAN_SEMANTIC_MCP_HOME": "your-value",
        "OBSIDIAN_EMBED_MODEL": "your-value",
        "OLLAMA_BASE_URL": "your-value",
        "OBSIDIAN_SEMANTIC_STARTUP_INDEX": "your-value",
        "OBSIDIAN_SEMANTIC_ALLOW_SENSITIVE": "your-value",
        "OBSIDIAN_SEMANTIC_EXCLUDE": "your-value",
        "OBSIDIAN_SEMANTIC_SENSITIVE_PATHS": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • OBSIDIAN_VAULT_ROOT erforderlich env
    Absolute path to the local Obsidian vault.
  • OBSIDIAN_SEMANTIC_MCP_HOME env
    Directory for the external SQLite index, logs, and cache.
  • OBSIDIAN_EMBED_MODEL env
    Ollama embedding model name. Defaults to bge-m3.
  • OLLAMA_BASE_URL env
    Ollama API base URL. Defaults to http://localhost:11434.
  • OBSIDIAN_SEMANTIC_STARTUP_INDEX env
    Set to true to run incremental indexing when the server starts.
  • OBSIDIAN_SEMANTIC_ALLOW_SENSITIVE env
    Set to true to allow include_sensitive tool calls.
  • OBSIDIAN_SEMANTIC_EXCLUDE env
    Comma- or newline-separated folders to always exclude from indexing, search, and read.
  • OBSIDIAN_SEMANTIC_SENSITIVE_PATHS env
    Comma- or newline-separated folders treated as sensitive (blocked unless unlocked). Defaults to 08_PersonalInfo/.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto DalecB bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Dokumente, Tabellen & Büroarbeiti

  • Mehr Sterne als 0 % der anderen 2187 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 12 % der anderen 2187 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 2187 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Obsidian Semantic Search sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: OBSIDIAN_VAULT_ROOT

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.2.1) kam vor 5 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Agent-Native Google Calendar - manage events, sync, and public booking

Läuft in der Cloud★ 7.620MITAktualisiert vor 2 Monaten
Installieren

Excel MCP Server

von haris-musa

Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.

Läuft auf deinem Computer★ 4.276MITAktualisiert vor 6 Tagen
Installieren

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

Läuft auf deinem Computer★ 847MITAktualisiert vor 3 Tagen
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

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:

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

NeedWhat this server does
Find the note an agent should readHybrid semantic + keyword search over Markdown notes
Keep the vault safeExposes search/read/index/status only; no write, patch, move, rename, or delete tools
Stay local-firstUses Ollama embeddings and stores the index on your machine
Make results agent-friendlyReturns file-level matches with headings, snippets, and line ranges
Avoid plugin stateReads the vault directly from the filesystem; Obsidian does not need to be running

Example result shape:

{

"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" } ] }

Quick Start

Requirements:

  • Node.js >= 24
  • Ollama
  • An Obsidian vault
  • An MCP client such as Codex, Claude Desktop, Cursor, or another stdio MCP client

Install the embedding model:

ollama pull bge-m3

curl http://localhost:11434/api/tags

Print setup guidance:

npx -y --package @dalecb/obsidian-semantic-mcp obsidian-semantic-mcp-setup

Codex Setup

Add this to ~/.codex/config.toml:

[mcp_servers.obsidian_semantic]

command = "npx" args = ["-y", "@dalecb/obsidian-semantic-mcp"]

[mcp_servers.obsidian_semantic.env] OBSIDIAN_VAULT_ROOT = "/path/to/your/Obsidian Vault" OBSIDIAN_SEMANTIC_MCP_HOME = "/Users/you/.obsidian-semantic-mcp" OLLAMA_BASE_URL = "http://localhost:11434" OBSIDIAN_EMBED_MODEL = "bge-m3" OBSIDIAN_SEMANTIC_AUTO_INDEX = "true"

Restart Codex, then run:

obsidian_semantic.index_status

obsidian_semantic.search_notes { "query": "Redis Lua atomicity", "limit": 5 }

Claude Code Setup

Add the server at user scope so the personal vault path stays out of project .mcp.json files:

claude mcp add obsidian_semantic --scope user \

--env OBSIDIAN_VAULT_ROOT="/path/to/your/Obsidian Vault" \ --env OBSIDIAN_SEMANTIC_MCP_HOME="/Users/you/.obsidian-semantic-mcp" \ --env OLLAMA_BASE_URL="http://localhost:11434" \ --env OBSIDIAN_EMBED_MODEL="bge-m3" \ --env OBSIDIAN_SEMANTIC_AUTO_INDEX="true" \ -- npx -y @dalecb/obsidian-semantic-mcp

claude mcp get obsidian_semantic

Start a new Claude Code session and run /mcp to confirm the server is connected. On native Windows, use -- cmd /c npx -y @dalecb/obsidian-semantic-mcp after the environment flags.

See Anthropic's Claude Code MCP documentation for scope and command details.

Claude Desktop / JSON MCP Client Setup

In Claude Desktop, open Settings → Developer → Edit Config. This opens ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows. Merge the following server into mcpServers:

{

"mcpServers": { "obsidian_semantic": { "command": "npx", "args": ["-y", "@dalecb/obsidian-semantic-mcp"], "env": { "OBSIDIAN_VAULT_ROOT": "/path/to/your/Obsidian Vault", "OBSIDIAN_SEMANTIC_MCP_HOME": "/Users/you/.obsidian-semantic-mcp", "OLLAMA_BASE_URL": "http://localhost:11434", "OBSIDIAN_EMBED_MODEL": "bge-m3", "OBSIDIAN_SEMANTIC_AUTO_INDEX": "true" } } } }

Fully quit and restart Claude Desktop. Cursor and other JSON-style stdio MCP clients can use the same mcpServers entry. On Windows, if npx is not found, use "command": "cmd" and prepend "/c", "npx" to args.

See the official local MCP server guide for Claude Desktop configuration and logs.

Why This Exists

This isn't aiming to be the most powerful Obsidian automation server. It aims to be the safest retrieval tool you can hand an agent.

Here's how it stacks up against the two tools it usually comes down to — a full-permission Obsidian MCP server (Local REST API based) and GBrain (a broader knowledge-compilation platform):

This projectFull-permission Obsidian MCPGBrain
Access modelRead-only: search / read / indexRead + write + edit + deleteRead + write; compiles notes into its own model
Touches your vaultNeverYesYes — restructures content
Obsidian must runNo — reads files directlyYes — needs the REST API pluginNo
Required local runtimeNode.js + OllamaObsidian + pluginStandalone platform
Embeddings & dataLocal Ollama by default; remote URL is configurableLocal API; embeddings vary by setupBuilt-in pipeline; optional sync
StorageOne SQLite file you can delete and rebuildPlugin-managedIts own store / migration
Best forA small read-only retrieval boundary for agentsFull vault automation and editingBuilding a compiled knowledge base across sources

That trade is on purpose: give up writing, editing, and running inside Obsidian, and you get fewer moving parts and a smaller blast radius in return.

Use this if your agent should answer:

  • "Which note explains this project decision?"
  • "Find the file where I wrote about idempotency payload mismatch."
  • "Show me the career notes related to this interview topic."
  • "Search my vault, but do not mutate it."

Do not use this if you want an Obsidian UI plugin, automatic note generation, or write-capable vault automation.

Tools

index_status

Returns index metadata and safety settings.

index_vault

Builds or updates the external SQLite index.

{ "mode": "incremental" }

Specific files:

{

"mode": "incremental", "paths": ["02_Projects/My Note.md"] }

search_notes

Searches notes with hybrid semantic and keyword ranking.

{

"query": "live coding notes", "limit": 8, "mode": "hybrid" }

Modes:

  • hybrid: semantic vector + SQLite FTS5 + metadata boosts
  • semantic: vector-first search
  • keyword: FTS5 keyword search without embedding the query
read_note

Reads a note or line range by vault-relative path.

{

"path": "02_Projects/My Note.md", "start_line": 10, "end_line": 40 }

How It Works

index_vault

-> scan Markdown files under OBSIDIAN_VAULT_ROOT -> block denied paths and symlink escapes -> split notes by Markdown headings -> create one summary chunk per file -> embed chunks with Ollama bge-m3 -> store notes, chunks, FTS rows, and vectors in SQLite

search_notes -> incrementally index on first search or first search after a Markdown change -> embed the query with Ollama -> score vector similarity -> score SQLite FTS5 keyword matches -> apply title/path/heading metadata boosts -> regroup chunk matches into file-level results

Default storage:

~/.obsidian-semantic-mcp/

data/semantic.sqlite

The vault remains the source of truth. The SQLite database is a derived index and can be deleted/rebuilt.

Safety Model

The server reads your vault and never writes to it. Three layers decide what an agent can see.

1. Always denied (system / tooling). Never indexed, no override:

  • .obsidian/, .smart-env/, .claude/, .codex-*/
  • any hidden folder (name starts with .)
  • node_modules, cache, logs

2. Sensitive — denied by default, unlockable. Stays blocked even when a tool call passes include_sensitive: true, unless the server is started with OBSIDIAN_SEMANTIC_ALLOW_SENSITIVE=true. Defaults to 08_PersonalInfo/. Override the list with OBSIDIAN_SEMANTIC_SENSITIVE_PATHS (comma- or newline-separated folders):

OBSIDIAN_SEMANTIC_SENSITIVE_PATHS = "08_PersonalInfo, 09_Finance"

3. Your own excludes — always denied. Folders you never want indexed, searched, or read. No unlock flag:

OBSIDIAN_SEMANTIC_EXCLUDE = "03_Journal, Private, Clients/Acme"

Which one do you want?

  • "Don't index this at all" → OBSIDIAN_SEMANTIC_EXCLUDE
  • "Keep it locked, but I can unlock it with a flag when I need to" → OBSIDIAN_SEMANTIC_SENSITIVE_PATHS + OBSIDIAN_SEMANTIC_ALLOW_SENSITIVE

Additional guards:

  • All paths are resolved through realpath.
  • Path traversal and URL-encoded traversal are blocked.
  • Symlinks that escape the vault root or point to a denied in-vault path are blocked.

search_notes and read_note enforce the current exclusion settings on every call. With automatic indexing enabled, the next search also removes excluded stale rows from the index. Confirm the active lists with index_status.

The local index stores snippets and embedding vectors. Treat it as a derived copy of your vault. See PRIVACY.md.

Indexing Strategy

The default is action-driven, not timer-based:

  1. The first search_notes after server start.
  2. The first search_notes after a Markdown create, update, delete, or rename event.
  3. The first search_notes after the embedding model or index format changes; this triggers a full rebuild.
  4. An explicit index_vault call.

The filesystem watcher only marks the index dirty. Indexing runs once, immediately before the next search, and concurrent searches share that work. If recursive watching is unavailable, the server falls back to an incremental scan before every search.

Disable automatic indexing with:

OBSIDIAN_SEMANTIC_AUTO_INDEX = "false"

Then call index_vault { "mode": "incremental" } yourself. The legacy OBSIDIAN_SEMANTIC_STARTUP_INDEX=true remains supported, but is not the default because it does work even when no search follows.

Search Quality Evaluation

Create a JSON file containing queries and expected paths to compare keyword, semantic, and hybrid modes under the same conditions:

[

{ "query": "strong consistency at 1000 TPS", "expected_paths": ["03_Knowledge/QnA/Strong-Consistency-at-1000TPS.md"] } ]

npm run evaluate --

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen