Skip to main content
Glama
lion9

RAG Obsidian MCP Server

by lion9

RAG Obsidian MCP Server

Semantic search over your Obsidian vault via an MCP server. Uses ChromaDB for vector storage and all-MiniLM-L6-v2 for embeddings.

Prerequisites

  • Python 3.13+

  • uv (recommended) or pip

Related MCP server: Personal Semantic Search MCP

Setup

uv sync

Edit config.yaml to point to your vault:

vault_path: "/path/to/your/Obsidian/vault"
chroma_db_path: "./data/chroma_db"
embedding_model: "all-MiniLM-L6-v2"
collection_name: "obsidian_vault"
chunk_size: 1000
chunk_overlap: 100
top_k_default: 5

Indexing

Initial index (first run)

uv run python index.py

This walks all .md files in the vault, embeds them in chunks, and stores them in ChromaDB.

Incremental index (after adding or editing notes)

Run the same command — it skips files whose modification time hasn't changed:

uv run python index.py

Only new or modified notes are re-indexed. Deleted notes are removed from the database automatically.

Force full re-index

To re-embed everything from scratch (e.g. after changing chunk_size or embedding_model):

uv run python index.py --force

Override vault path

uv run python index.py --vault "/path/to/other/vault"

Starting the MCP Server

Run the server in stdio mode (the transport Claude Code and other MCP clients expect):

uv run python server.py

Registering with Claude Code

Add the server to your Claude Code MCP config (.claude/settings.json or global settings):

{
  "mcpServers": {
    "obsidian-vault": {
      "command": "uv",
      "args": ["run", "python", "server.py"],
      "cwd": "/path/to/RAG_Obsidian"
    }
  }
}

Available MCP Tools

Tool

Description

search_notes

Semantic search across indexed notes. Returns top-k chunks with relevance scores and obsidian:// deep links.

read_note

Read the full content of a note by its relative path (e.g. Projects/MyProject.md).

list_notes

List all notes in the vault or a subfolder.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    F
    maintenance
    Enables semantic search across Obsidian vaults using vector embeddings and ChromaDB. Supports multiple vaults with real-time indexing and provides both MCP server and CLI interfaces for natural language querying of notes.
    4
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables semantic search over local notes and documents using natural language queries. Supports multiple file types (Markdown, Python, HTML, JSON, CSV, text) with fast local embeddings and persistent ChromaDB vector storage.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides semantic search and keyword search over Obsidian notes, along with direct note retrieval, allowing external AI agents to query and access the vault.
    19
    BSD Zero Clause