Wie ich meinen 6000-Notizen-Vault zu einer KI-Wissensquelle gemacht habe
Mein Obsidian-Vault mit 6000 Notizen war irgendwann nicht mehr sinnvoll durchsuchbar, also habe ich ihn über das Model Context Protocol (MCP) direkt an meine KI-Assistenten wie Claude und Cursor angebunden. Das Ergebnis ist "Obsidian Intelligence", ein lokaler MCP-Server, der KI-Modellen direkten Zugriff auf meinen Vault gibt, ohne dass meine Daten den Rechner verlassen.
Architektur ohne Vendor-Lock-in
Obsidian Intelligence stellt 14 Werkzeuge für MCP-fähige Clients bereit. Meine KI-Assistenten können damit autonom den Vault durchsuchen – via Volltextsuche (BM25), semantischer Suche (Vektor-Embeddings) oder Hybrid-Suche (Reciprocal Rank Fusion). Zusätzlich analysiert das Tool den Graphen, um verwaiste Notizen, defekte Links oder gut vernetzte Themen-Cluster zu finden.
Die wichtigste Designentscheidung für das Projekt war die konsequente Nutzung des Adapter-Patterns. Datenquellen (Filesystem oder Obsidian LiveSync via CouchDB) und LLM/Embedding-Provider sind komplett austauschbar. Standardmäßig läuft alles offline über Ollama (localhost:11434). Wenn Ollama nicht läuft, wird die semantische Suche deaktiviert, aber Graph- und Volltextsuche funktionieren ohne einen einzigen Netzwerk-Aufruf weiter.
Vom Skript zum öffentlichen Tool
Die Transformation meines hartverdrahteten privaten Skripts zu einem Open-Source-Tool hat länger gedauert als die Entwicklung der ersten Version. Die wichtigste Erkenntnis: Um ein privates Tool für andere nutzbar zu machen, ist die saubere Entkopplung durch Adapter unerlässlich. Erst durch eine Vitest-Suite, CI-Pipelines und generische Konfigurationen wurde aus einem Hack ein stabiles Werkzeug. Aktuell skaliert die pure-JS-Vektorberechnung problemlos bis etwa 50.000 Notizen.
Die Integration in Claude Desktop erfordert nach der Installation (npm install -g obsidian-intelligence) lediglich einen Eintrag in der claude_desktop_config.json, der auf den lokalen MCP-Server verweist:
{
"mcpServers": {
"obsidian-intelligence": {
"command": "node",
"args": ["/absoluter/pfad/zu/mcp-server.mjs"],
"env": { "VAULT_PATH": "/pfad/zu/deinem/vault" }
}
}
}