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.
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
Add the server
bashclaude mcp add obsidian-semantic-mcp -e 'OBSIDIAN_VAULT_ROOT=<OBSIDIAN_VAULT_ROOT>' -- npx -y @dalecb/obsidian-semantic-mcpFill in your credentials
Replace <OBSIDIAN_VAULT_ROOT> with your real value. Keep secrets out of any config file you commit.
Verify it's connected
bashclaude mcp listSharing 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).
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.
How to install Obsidian Semantic Search in Claude DesktopDesktop app (MCP config)
Open your MCP config
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this server
json{ "mcpServers": { "obsidian-semantic-mcp": { "command": "npx", "args": [ "-y", "@dalecb/obsidian-semantic-mcp" ], "env": { "OBSIDIAN_VAULT_ROOT": "<OBSIDIAN_VAULT_ROOT>" } } } }Fill in your credentials
Replace <OBSIDIAN_VAULT_ROOT> with your real value. Keep secrets out of any config file you commit.
Restart Claude Desktop
The tools appear under the 🔌 menu once the app reloads.
How to install Obsidian Semantic Search in CursorAI-first code editor
Create / edit .cursor/mcp.json in your project
json{ "mcpServers": { "obsidian-semantic-mcp": { "command": "npx", "args": [ "-y", "@dalecb/obsidian-semantic-mcp" ], "env": { "OBSIDIAN_VAULT_ROOT": "<OBSIDIAN_VAULT_ROOT>" } } } }Fill in your credentials
Replace <OBSIDIAN_VAULT_ROOT> with your real value. Keep secrets out of any config file you commit.
Enable it
Cursor Settings → MCP → toggle the server on. Tools become available to the Composer/Agent.
How to install Obsidian Semantic Search in Codex CLIOpenAI coding agent
Add to ~/.codex/config.toml
toml[mcp_servers.obsidian-semantic-mcp] command = "npx" args = ["-y", "@dalecb/obsidian-semantic-mcp"] env = { OBSIDIAN_VAULT_ROOT = "<OBSIDIAN_VAULT_ROOT>" }Fill in your credentials
Replace <OBSIDIAN_VAULT_ROOT> with your real value. Keep secrets out of any config file you commit.
Run Codex
Codex loads MCP servers from config.toml on startup and exposes their tools to the agent.
How to install Obsidian Semantic Search in WindsurfCodeium's agentic IDE
Edit ~/.codeium/windsurf/mcp_config.json
json{ "mcpServers": { "obsidian-semantic-mcp": { "command": "npx", "args": [ "-y", "@dalecb/obsidian-semantic-mcp" ], "env": { "OBSIDIAN_VAULT_ROOT": "<OBSIDIAN_VAULT_ROOT>" } } } }Fill in your credentials
Replace <OBSIDIAN_VAULT_ROOT> with your real value. Keep secrets out of any config file you commit.
Reload
Windsurf → Cascade → refresh MCP servers. Cascade can now call the tools.
How to install Obsidian Semantic Search in ClineVS Code autonomous agent
Open Cline → MCP Servers → Configure
Adds to cline_mcp_settings.json.
Add the server
json{ "mcpServers": { "obsidian-semantic-mcp": { "command": "npx", "args": [ "-y", "@dalecb/obsidian-semantic-mcp" ], "env": { "OBSIDIAN_VAULT_ROOT": "<OBSIDIAN_VAULT_ROOT>" } } } }Fill in your credentials
Replace <OBSIDIAN_VAULT_ROOT> with your real value. Keep secrets out of any config file you commit.
How to install Obsidian Semantic Search in VS CodeCopilot / MCP support
Create .vscode/mcp.json
json{ "servers": { "obsidian-semantic-mcp": { "type": "stdio", "command": "npx", "args": [ "-y", "@dalecb/obsidian-semantic-mcp" ], "env": { "OBSIDIAN_VAULT_ROOT": "<OBSIDIAN_VAULT_ROOT>" } } } }Fill in your credentials
Replace <OBSIDIAN_VAULT_ROOT> with your real value. Keep secrets out of any config file you commit.
Start it
VS Code shows a ▶ Start action above the server entry. Agent mode (Copilot Chat) can then use the tools.
What does Obsidian Semantic Search need from you?
Configuration only — Declares config values but no credentials.
OBSIDIAN_VAULT_ROOTrequiredEnvironment variableAbsolute path to the local Obsidian vault.
OBSIDIAN_SEMANTIC_MCP_HOMEoptionalEnvironment variableDirectory for the external SQLite index, logs, and cache.
OBSIDIAN_EMBED_MODELoptionalEnvironment variableOllama embedding model name. Defaults to bge-m3.
OLLAMA_BASE_URLoptionalEnvironment variableOllama API base URL. Defaults to http://localhost:11434.
OBSIDIAN_SEMANTIC_STARTUP_INDEXoptionalEnvironment variableSet to true to run incremental indexing when the server starts.
OBSIDIAN_SEMANTIC_ALLOW_SENSITIVEoptionalEnvironment variableSet to true to allow include_sensitive tool calls.
OBSIDIAN_SEMANTIC_EXCLUDEoptionalEnvironment variableComma- or newline-separated folders to always exclude from indexing, search, and read.
OBSIDIAN_SEMANTIC_SENSITIVE_PATHSoptionalEnvironment variableComma- 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
Health score
A · 80Maintenance, 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 READMEObsidian 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 toolsNo 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:
{
"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.
Alternatives to Obsidian Semantic Search
- Paparats MCP: Self-Hosted Semantic Code SearchA · 84Self-hosted semantic code search MCP for Claude Code & Cursor. Multi-repo, AST-aware, stays local.
- vault-indexB · 73Local hybrid keyword + vector search (SQLite FTS5 + sqlite-vec) over markdown vaults and code.
- memory-search-mcpB · 71Memory Search MCP Server by MEOK AI Labs
- Codebase MemoryA · 99Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Maintain Obsidian Semantic Search? Add a badge to your README
Shows its health grade, and links readers to install steps for every client.
[](https://mcp-skills-hub.vercel.app/mcps/io-github-dalecb-obsidian-semantic-mcp)Catalog data refreshed . Something wrong? Report it.