obsidian-mcp-resilient-bridge
obsidian-mcp-resilient-bridge
Eine persistente MCP-Brücke, die Claude Code mit deinem Obsidian-Vault verbunden hält, auch wenn Obsidian geschlossen ist, neu gestartet wurde oder beim Start der Sitzung noch gar nicht lief.
Problem
Der übliche Weg, Claude Code mit Obsidian zu verbinden, ist npx mcp-remote, das auf http://localhost:22360 zeigt, den lokalen Server, den das Obsidian-Plugin „Claude Code MCP“ bereitstellt. Das funktioniert, ist aber in einer bestimmten Hinsicht fragil:
mcp-remoteverbindet sich genau einmal mit diesem Upstream-Server, und zwar in dem Moment, in dem Claude Code die Sitzung startet.Wenn Obsidian in diesem Moment geschlossen ist oder wenn Obsidian irgendwann während der Sitzung geschlossen oder neu gestartet wird, schlägt dieser Verbindungsversuch fehl bzw. die bestehende Verbindung bricht ab.
Claude Code stellt einen fehlgeschlagenen oder abgebrochenen MCP-Server-Transport nicht selbst wieder her. Der einzige Weg, die Verbindung zurückzubekommen, ist ein vollständiger Neustart der Claude-Code-Sitzung.
In der Praxis: Wenn du Obsidian ein paar Sekunden nach dem Start von Claude Code öffnest oder Obsidian mitten in der Sitzung abstürzt, aktualisiert oder geschlossen wird, sind deine Obsidian-Tools verloren, bis du die gesamte Sitzung neu startest.
Related MCP server: obsidian-mcp-server
Lösung
index.mjs ist ein kleiner, persistenter Node.js-Prozess, basierend auf @modelcontextprotocol/sdk, der zwischen Claude Code und dem Obsidian-Plugin sitzt und wegen Obsidian nie stirbt:
Downstream-Seite (in Richtung Claude Code): ein MCP-
Serverauf einemStdioServerTransport. Diese Seite ist absichtlich unzerstörbar –stdoutist ein reiner JSON-RPC-Kanal zu Claude Code, und der Prozess fängtuncaughtException/unhandledRejectionab, damit nichts auf der Obsidian-Seite ihn jemals abstürzen lassen oder die stdio-Pipe schließen kann.Upstream-Seite (in Richtung Obsidian): ein MCP-
Clientauf einemSSEClientTransport, der auf den lokalen Server des Obsidian-Plugins zeigt. Diese Seite betreibt eine eigene, unendliche Wiederverbindungsschleife: Nach einem Fehler oder Verbindungsabbruch wartet sie 3 Sekunden und versucht es erneut, für immer, solange der Brückenprozess läuft.Solange Obsidian nicht erreichbar ist, stürzen Tool-Aufrufe von Claude Code nicht ab und hängen nicht – sie geben ein normales MCP-Tool-Ergebnis mit einem freundlichen „Obsidian läuft gerade nicht, verbinde automatisch neu.“-Fehler zurück, sodass Claude Code nur einen Tool-Fehler sieht und einen Moment später erneut versuchen kann, anstatt die gesamte MCP-Verbindung zu verlieren.
Da die Brücke selbst sich nie von Claude Code trennt, muss Claude Code sie nur einmal pro Sitzung starten. Obsidian kann danach beliebig oft geschlossen, erneut geöffnet oder neu gestartet werden, und die Brücke verbindet sich innerhalb von Sekunden still im Hintergrund neu.
Was in diesem Repo enthalten ist
index.mjs,package.json– die resiliente Brücke selbst. Von Grund auf neu für dieses Repo geschrieben, MIT-lizenziert.obsidian-plugin/– eine beigefügte Kopie des „Claude Code MCP“-Obsidian-Plugins (IDclaude-code-mcp) von iansinnott, ursprüngliches Repo obsidian-claude-code-mcp, 0BSD-Lizenz. Das ist das Plugin, das tatsächlich in Obsidian läuft und deinen Vault als MCP-Tools aufhttp://localhost:22360bereitstellt. Es ist hier unverändert enthalten (main.js,manifest.json,styles.css), damit ein Klon dieses einen Repos alles ist, was du brauchst, ohne ein zusätzliches Repo zu suchen oder ihm vertrauen zu müssen. Zur Namensdung sieheobsidian-plugin/LICENSEund den Abschnitt „Credits“ weiter unten.
Wenn du als KI-Agent das für jemanden einrichtest
Befolge diese Schritte in der Reihenfolge. Die Schritte 1, 2, 3 und 5 kannst du selbst durchführen. Schritt 4 ist die einzige Sache, die du nicht tun kannst – es ist ein GUI-Klick, den nur der Mensch ausführen kann.
Klone dieses Repository in einen permanenten Ordner (kein temporäres Verzeichnis – die Konfiguration in Schritt 5 wird permanent auf genau diesen Pfad zeigen, solange das Setup besteht):
git clone https://github.com/nekko4044-lgtm/obsidian-mcp-resilient-bridge.git cd obsidian-mcp-resilient-bridgeInstalliere die Abhängigkeiten:
npm installInstalliere das mitgelieferte Plugin in den Vault des Menschen. Wenn du den Vault-Pfad noch nicht kennst, frag den Menschen danach. Kopiere dann den Inhalt von
obsidian-plugin/in<vault>/.obsidian/plugins/claude-code-mcp/, zum Beispiel:mkdir -p "<vault>/.obsidian/plugins/claude-code-mcp" cp obsidian-plugin/main.js obsidian-plugin/manifest.json obsidian-plugin/styles.css "<vault>/.obsidian/plugins/claude-code-mcp/"Bitte den Menschen, das Plugin manuell zu aktivieren. In Obsidian: Einstellungen → Community-Plugins → „Claude Code MCP“ finden → den Schalter umlegen. Das ist eine GUI-Aktion, die du nicht in seinem Namen ausführen kannst.
Ergänze oder aktualisiere den Eintrag
obsidianuntermcpServersin~/.claude.jsonund~/.claude/settings.json– mit dem absoluten Pfad zu demindex.mjs, das du in Schritt 1 geklont hast:"obsidian": { "type": "stdio", "command": "node", "args": ["/ABSOLUTE/PATH/TO/CLONE/index.mjs"] }Sag dem Menschen, er soll seine Claude Code-Sitzung einmal neu starten. Die MCP-Server-Konfiguration wird nur beim Start einer Sitzung ausgelesen, daher ist dieser eine Neustart erforderlich. Danach sollte er Claude Code nicht nur deshalb neu starten müssen, weil Obsidian geschlossen, erneut geöffnet oder neu gestartet wurde – die Brücke übernimmt das von nun an selbst.
Manuelle Einrichtungsanleitung für Menschen
Falls kein KI-Agent das für dich übernimmt, hier die gleichen Schritte von Hand:
Klone dieses Repo in einen permanenten Ort (nicht
Downloadsoder einen Temporärordner):git clone https://github.com/nekko4044-lgtm/obsidian-mcp-resilient-bridge.git cd obsidian-mcp-resilient-bridge npm installKopiele das Plugin in deinen Vault. Ersetze
<vault>durch den vollständigen Pfad zu deinem Obsidian-Vault:mkdir -p "<vault>/.obsidian/plugins/claude-code-mcp" cp obsidian-plugin/main.js obsidian-plugin/manifest.json obsidian-plugin/styles.css "<vault>/.obsidian/plugins/claude-code-mcp/"Öffne in Obsidian: Einstellungen → Community-Plugins und aktiviere „Claude Code MCP“. Möglicherweise musst du zuerst Plugins neu laden oder Obsidian neu starten, damit es in der Liste erscheint.
Öffne
the ~/.claude.jsonund~/.claude/settings.json, finde denmcpServers-Abschnitt (oder füge einen hinzu) und füge den Eintragobsidianhinzu oder ersetze ihn durch:"obsidian": { "type": "stdio", "command": "node", "args": ["/full/path/to/obsidian-mcp-resilient-bridge/index.mjs"] }Verwende den tatsächlichen vollständigen Pfad zu
index.mjsaus Schritt 1, nicht den Platzhalter oben.Beende deine Claude Code-Sitzung und starte sie neu. Das ist der einzige Neustart, den du brauchst – danach erfordert das Schließen oder Wiederöffnen von Obsidian keinen weiteren.
So funktioniert es
Architektonisch ist index.mjs ein einzelner Node-Prozess, der zwei unabhängige MCP-Verbindungen miteinander verknüpft:
Claude Code <--stdio (JSON-RPC)--> [ this bridge ] <--SSE--> Obsidian plugin (localhost:22360)Beim Start verbindet die Brücke ihren
StdioServerTransportsofort unbedingt mit Claude Code. Diese Seite soll für die gesamte ister Squid el Claude Code-Sitzung verbunden bleiben.Danach startet sie eine einzige Hintergrundschleife (
maintainUpstreamConnection), die einzige Stelle, die einen Upstream-Verbindungsversuch startet darf, sodass nie mehr als einen Verbindungsversuch gleichzeitig läuft. Bei jeder Trennung oder jedem fehlgeschlagenen Versuch wartet sieRECONNECT_DELAY_MS(3000 ms) und versucht erneut, unbegrenzt.Alle Downstream-MCP-Anfragen (
tools/list,tools/call,resources/list,resources/read,prompts/list,prompts/get, usw.) prüfen vor dem Weiterleiten den live-Status der Upstream-Verbindung. Ist upstream nicht verbunden, werden Listen-Anfragen auf leere Ergebnisse herabgestuft, und Aufruf-Lese-/Get-Anfragen geben einen klaren Fehler zurück, statt zu hängen oder zu scheitern.Wenn sich die Verbindung zum Upstream erfolgreich wieder herstellt, schickt die Brücke eine
tools/list_changed-Benachrichtigung nach downstream, damit Claude Code tool view still cache wissen und sich aktualisieren kann.Die gesamte Protokollierung erfolgt ausschließlich auf
stderr–stdoutist allein für das JSON-RPC-Protokoll mit Claude Code reserviert, denn alles andere würde den Stdio-Transport beschädigen.Die Upstream-URL kann über die Umgebungsvariable
OBSIDIAN_MCP_URLüberschrieben werden, falls dein Obsidian-Plugin so konfiguriert ist, dass es an einem anderen Ort als der Standard-http://localhost:22360/sse-URL lauscht.
Lizenz
Die Brücke selbst (index.mjs, package.json, alles im Repo-Root) ist MIT-lizenziert – siehe LICENSE.
obsidian-plugin/ ist ein separates, enthaltenes Kopum eines Drittanbieter-Projekts und ist unter 0BSD-lizenziert – siehe obsidian-plugin/LICENSE. Sie wird nicht von der MIT-Lizenz des Repo-Root abgedeckt.
Credits
obsidian-plugin/ enthält eine beigefügte Kopie des „Claude Code MCP“-Obsidian-Plugins von iansinnott (Original-Repository: obsidian-claude-code-mcp, 0BSD-Lizenz), das hier unverändert enthalten ist, damit das gesamte Setup mit einem einzigen Klon funktioniert. Die gesamte Anerkennung dafür, dass Obsidian überhaupt MCP versteht, gebührt dieses Projekts.
Dieses Repository macht lediglich die Claude-Code-Seite der Verbindung zu sein.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude Code and Claude Desktop to interact with Obsidian vaults through MCP protocol. Supports file operations, workspace context access, and dual transport (WebSocket and HTTP/SSE) for AI-powered assistance with your notes.339BSD Zero Clause
- AlicenseNot gradedqualityDmaintenanceConnects Claude.ai to your local Obsidian vault for full CRUD access, search, and daily note creation via the Model Context Protocol.2114MIT
- FlicenseNot gradedqualityAmaintenanceEnables Obsidian vault to act as an MCP server for Claude and as an MCP client to external servers like MCP ANA PJe, allowing seamless interaction between notes and legal case systems.
- AlicenseAqualityAmaintenanceA local MCP connector that lets Claude read, write and search any Obsidian vault directly from disk.20MIT
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nekko4044-lgtm/obsidian-mcp-resilient-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server