Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

Explore

  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Tags index
  • Submit a server
  • Pricing

Learn

  • Guides hub
  • What is MCP?
  • Install guide
  • Troubleshooting
  • Security
  • Blog
  • Blog RSS

Tools

  • All tools
  • Config generator
  • Config validator
  • MCP playground
  • OpenAPI β†’ MCP
  • Badge generator

For agents

  • API docs
  • Trust & traffic
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
  • Remote MCP β†— (opens in a new tab)

Company

  • About
  • Contact
  • X (@AllMCPs) β†— (opens in a new tab)
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on Buildlist
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. πŸ—„οΈ Databases
  3. Obsidian Semantic Search
O
Health: ActiveRecent health check succeeded.Last checked 8/10/2026, 11:56:03 PM

Obsidian Semantic Search

Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.
View Repository

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

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Not yet automatically verified

We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β€” we're steadily working through the catalog.

Manual Client & Custom JSON ConfigExpand JSON β–Ύ

Install Config Generator

Choose your client
claude_desktop_config.json
{
  "mcpServers": {
    "obsidian-semantic-search": {
      "command": "npx",
      "args": [
        "-y",
        "--package"
      ]
    }
  }
}

πŸ’‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

Install Tool Schemas (4) Directory Badge Claim listing AlternativesπŸ—„οΈ More in Databases

Capabilities & Tool Schemas (4) ~59 tokensApproximate context cost of this server’s tool schemas (~4 chars/token), before any tool is called. Actual usage depends on your client and model.Self-reported Self-reportedParsed from the repository README, not verified against a live server β€” may be incomplete or out of date.

Inspect callable tools, capabilities, and parameters exposed to AI agents by Obsidian Semantic Search.

index_status

Returns index metadata and safety settings.

index_vault

Builds or updates the external SQLite index.

search_notes

Searches notes with hybrid semantic and keyword ranking.

read_note

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

Documentation Overview

Obsidian Semantic Search MCP

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

npm MCP Registry License Node.js

ν•œκ΅­μ–΄ Β· 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.

Local, read-only pipeline: Obsidian vault to scanner to chunker to Ollama embeddings to SQLite index, queried by an MCP client via search_notes and read_note

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:

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

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:

bash
ollama pull bge-m3
curl http://localhost:11434/api/tags

Print setup guidance:

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

Codex Setup

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

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:

text
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:

Terminal
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:

config.json
{
  "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.

config.json
{ "mode": "incremental" }

Specific files:

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

search_notes

Searches notes with hybrid semantic and keyword ranking.

config.json
{
  "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.

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

How It Works

text
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:

text
~/.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):

toml
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:

toml
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:

toml
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:

config.json
[
  { "query": "strong consistency at 1000 TPS", "expected_paths": ["03_Knowledge/QnA/Strong-Consistency-at-1000TPS.md"] }
]
Terminal
npm run evaluate -- ./queries.json 5

The command reports Recall@K and MRR. Avoid adding ranking complexity or embedding cost unless hybrid search measurably beats the keyword baseline.

Refresh the index with search_notes or index_vault before evaluating.

Development

Terminal
npm test
npm run pack:check

Before publishing:

Terminal
npm pack --dry-run

Confirm the package does not include data/, *.sqlite, or private vault files.

License

MIT

Related MCP Servers

View all in Databases View all alternatives
  • AllMCPs Server logoAllMCPs Server
    β˜… Featured

    The official MCP server for AllMCPs.com - submit and manage tools directly from your AI. The open directory for MCP servers. Connect Claude, Cursor, Windsurf, and AI agents to databases, tools, files, and APIs. Explore 3,181+ servers. AllMCPs is the premier, open directory for discovering, evaluating, and installing Model Context Protocol (MCP) servers to equip AI agents and LLMs with real-world superpowers.

    πŸ—„οΈ Databases7 views
    Compare vs AllMCPs Server β†’
  • Genai Toolbox logoGenai Toolbox

    Open source MCP server specializing in easy, fast, and secure tools for Databases.

    πŸ—„οΈ Databases3 views
    Compare vs Genai Toolbox β†’
  • Airtable Mcp Server logoAirtable Mcp Server

    Airtable database integration with schema inspection, read and write capabilities

    πŸ—„οΈ Databases2 views
    Compare vs Airtable Mcp Server β†’
  • Mcp Server Duckdb logoMcp Server Duckdb

    DuckDB database integration with schema inspection and query capabilities

    πŸ—„οΈ Databases2 views
    Compare vs Mcp Server Duckdb β†’

Frequently Asked Questions about Obsidian Semantic Search

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "obsidian-semantic-search": { "command": "npx", "args": ["-y", "Obsidian Semantic Search"] } }

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewObsidian Semantic Search AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/obsidian-semantic-search?style=directory)](https://allmcps.com/mcp/obsidian-semantic-search)
HTML Embed
<a href="https://allmcps.com/mcp/obsidian-semantic-search"><img src="https://allmcps.com/api/badge/obsidian-semantic-search?style=directory" alt="Obsidian Semantic Search on AllMCPs" /></a>

Technical Specs & Signals

CategoryπŸ—„οΈDatabases
More technical detailsExpand β–Ύ
TransportSTDIO
RuntimeNode.js
5/5 checks healthy over the last 6h
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
GitHub stars0
GitHub Star CountTotal stargazers on GitHub representing community popularity (0 stars).
Last commit5d ago
Last Repository CommitThe most recent commit or push recorded for this server's GitHub repository.Last commit on Aug 6, 2026
51Quality signal: Good Β· 51/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership10/20
Documentation & tools24/30
Adoption & activity4/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

β˜… FeaturedMoxie Docs MCP logo

Moxie Docs MCP

MCP & Agent Skills for Automated Documentation, and codebase conventions + context

Explore Server β†’

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Free dofollow backlink: after claiming, verify your product site and place a dofollow AllMCPs badge β€” we recheck it stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in πŸ—„οΈ Databases β†’Best MCP servers for Databases β†’Alternatives to Obsidian Semantic Search β†’Install in Claude DesktopInstall in CursorInstall in VS Code