Obsidian Vault MCP Server
Obsidian + Claude via Cloudflare
Greifen Sie von Claude (Web, Desktop, Code) aus auf Ihren Obsidian-Vault zu, indem Sie einen MCP-Server auf Cloudflare Workers + Containern verwenden.
Kein NAS, kein Docker Compose, keine Tunnel. Einfach Cloudflare-Infrastruktur mit dem Agents SDK für einen ordnungsgemäßen MCP-Server.
Architektur
Obsidian (phone, desktop)
│
│ Obsidian Sync (your existing subscription)
▼
Cloudflare Container (Node.js 22)
runs `ob sync --continuous`
serves vault files over HTTP API
▲
│ container fetch (native)
│
Cloudflare Worker (MCP server via Agents SDK)
tools: list, read, search, write, append, delete
auth via bearer token (or OAuth / Cloudflare Access)
▲
│ MCP over Streamable HTTP
│
Claude (web, desktop, Code)Der Container ist die einzige Quelle der Wahrheit. Er führt obsidian-headless aus, um mit Obsidian Sync zu synchronisieren, und stellt eine HTTP-API für Dateivorgänge bereit. Der Worker leitet alle MCP-Tool-Aufrufe an die API des Containers weiter.
Related MCP server: obsidianMCP
MCP-Tools
Tool | Beschreibung |
| Listet alle Markdown-Notizen mit Pfaden, Größen und Daten auf |
| Liest den vollständigen Inhalt einer Notiz anhand des Pfads |
| Volltextsuche über alle Notizen mit Snippets |
| Erstellt oder überschreibt eine Notiz |
| Hängt Text an eine bestehende Notiz an (oder erstellt sie) |
| Löscht eine Notiz |
| Erstellt einen Ordner (mit übergeordneten Verzeichnissen) |
| Löscht einen Ordner (leer oder rekursiv) |
| Listet direkte Unterordner an einem Pfad auf |
Voraussetzungen
Cloudflare-Konto mit Workers Paid-Plan ($5/Monat)
Aktives Obsidian Sync-Abonnement
Node.js 22+ auf Ihrer Workstation
wranglerCLI:npm install -g wrangler
Einrichtung
0. Wrangler-Anmeldung
wrangler loginAlle erforderlichen Scopes werden standardmäßig gewährt.
1. Obsidian-Authentifizierungstoken generieren
Einmaliger Schritt auf Ihrer Workstation:
npm install -g obsidian-headless
ob login
# Enter email, password, MFA code if enabled
ob sync-list-remote
# Note your vault name2. Umgebung konfigurieren
Kopieren Sie die Beispiel-Umgebungsdatei und tragen Sie Ihre Werte ein:
cp .dev.vars.example .dev.varsBearbeiten Sie .dev.vars mit Ihren Obsidian-Anmeldedaten und einem optionalen MCP-Authentifizierungstoken. Diese Datei wird von wrangler dev für die lokale Entwicklung und vom Setup-Skript verwendet, um Geheimnisse an Cloudflare zu übertragen. Sie ist bereits in .gitignore enthalten.
3. Bereitstellung
Führen Sie das Setup-Skript aus, um alle Geheimnisse zu übertragen und die Bereitstellung durchzuführen:
./scripts/setup.shOder führen Sie die Schritte einzeln aus:
./scripts/setup.sh secrets # Push secrets to Cloudflare
./scripts/setup.sh validate # Check prerequisites
./scripts/setup.sh deploy # Validate + install deps + deploy + restart container
./scripts/setup.sh status # Check sync container health
./scripts/setup.sh restart # Restart sync container
./scripts/setup.sh container-logs # View sync container logsIhr MCP-Server ist live unter:
https://obsidian-mcp.<your-subdomain>.workers.dev/mcp
4. Claude verbinden
Claude.ai (Web)
Einstellungen → Connectors → Benutzerdefinierten Connector hinzufügen:
URL:
https://obsidian-mcp.<your-subdomain>.workers.dev/mcp?token=YOUR_MCP_AUTH_TOKENLassen Sie die OAuth-Felder leer — das Token in der URL übernimmt die Authentifizierung
Claude Code
claude mcp add \
--transport http \
--scope user \
obsidian-vault \
https://obsidian-mcp.<your-subdomain>.workers.dev/mcpClaude Desktop
Fügen Sie dies zu claude_desktop_config.json hinzu:
{
"mcpServers": {
"obsidian-vault": {
"url": "https://obsidian-mcp.<your-subdomain>.workers.dev/mcp"
}
}
}Wie Daten fließen
Sie bearbeiten eine Notiz auf Ihrem Telefon:
Obsidian Sync überträgt die Änderung
ob sync --continuousdes Containers lädt sie in/vaultherunterWenn Claude das nächste Mal liest oder sucht, leitet der Worker die Anfrage an die HTTP-API des Containers weiter, die direkt aus
/vaultliest
Claude erstellt eine Notiz:
Der Worker empfängt den MCP-Aufruf
write_noteDer Worker leitet ihn an die HTTP-API des Containers weiter
Der Container schreibt die Datei in
/vaultob syncerkennt die neue Datei und überträgt sie über Obsidian SyncSie erscheint auf Ihrem Telefon und Desktop
Entwicklung
# Local dev (MCP server only, no container)
npm run dev
# Deploy
npm run deployKosten
Dienst | Nutzung | Kosten |
Workers Paid Plan | Bereits bezahlt | $5/Monat (deckt alles ab) |
Container | 1 Instanz, meist im Leerlauf | Im Workers-Plan enthalten |
Zusätzliche Gesamtkosten | $0 |
Projektstruktur
obsidian-mcp/
├── src/
│ └── index.ts # MCP server (Agents SDK, proxies to container)
├── sync-container/
│ ├── Dockerfile # Headless sync container image
│ ├── entrypoint.sh # Auth, sync startup
│ └── server.js # HTTP API for vault file operations
├── scripts/
│ └── setup.sh # Push secrets, deploy
├── .dev.vars.example # Template for env vars / secrets
├── wrangler.jsonc # Worker + Container config
└── package.jsonNächste Schritte
Diese Punkte dienen als Übungen, um das Setup für Ihre Bedürfnisse zu härten:
Authentifizierungshärtung
Die enthaltene Authentifizierung (MCP_AUTH_TOKEN-Geheimnis) unterstützt sowohl Authorization: Bearer-Header als auch ?token=-Abfrageparameter. Der URL-Token-Ansatz ist praktisch für Claude.ai-Connectors, bei denen benutzerdefinierte Header nicht immer verfügbar sind.
Für geteilte oder öffentliche Bereitstellungen sollten Sie stärkere Optionen in Betracht ziehen:
Cloudflare Access: Platzieren Sie Zero Trust Access vor dem Worker für identitätsbasierte SSO mit Audit-Logs ohne Codeänderungen
OAuth: Integrieren Sie
workers-oauth-providerfür GitHub/Google-OAuth-Flows
Container-Authentifizierung
Prüfen Sie, ob obsidian-headless --token oder umgebungsvariablenbasierte Authentifizierung für ob login unterstützt, um interaktive Eingabeaufforderungen zu vermeiden. Falls nicht, speichern Sie die Authentifizierungssitzung nach einer einmaligen interaktiven Anmeldung und stellen Sie sie beim Container-Start wieder her.
Resilienz bei Container-Neustarts
Die ob sqlite-Zustandsdatei befindet sich auf dem flüchtigen Container-Datenträger. Ein Neustart löst eine vollständige Neusynchronisierung aus. Lösung: Fügen Sie einen SIGTERM-Trap in entrypoint.sh hinzu, der die Zustandsdatei speichert und beim Start wiederherstellt.
Suchleistung
Die Brute-Force-Suche liest jede .md-Datei pro Abfrage — bei weniger als 500 Dateien ist das in Ordnung. Für größere Vaults erstellen Sie einen Suchindex in D1 oder Workers KV.
Anhänge
Derzeit wird nur auf .md gefiltert. Erweitern Sie dies, um Bilder, PDFs und andere Vault-Anhänge mit zusätzlichen Tools zu unterstützen.
Fehlerbehebung
Docker muss laufen — Der Sync-Container erfordert Docker. Führen Sie docker info zur Überprüfung aus. Der validate-Unterbefehl prüft dies automatisch.
Zwei Passwörter — OBSIDIAN_PASSWORD ist Ihr Obsidian-Kontopasswort (das für die Anmeldung bei obsidian.md verwendet wird). VAULT_PASSWORD ist das separate Ende-zu-Ende-Verschlüsselungspasswort, das in Obsidian → Sync → Verschlüsselung festgelegt wurde. Lassen Sie VAULT_PASSWORD leer, wenn Ihr Vault keine E2EE verwendet.
Bereitstellung startet Container nicht neu — wrangler deploy startet laufende Container nicht neu. Das Setup-Skript erledigt dies automatisch. Wenn Sie manuell bereitstellen, starten Sie mit ./scripts/setup.sh restart neu.
Container-Logs nicht in wrangler tail — Container-stdout wird nicht über wrangler tail gestreamt. Verwenden Sie stattdessen ./scripts/setup.sh container-logs.
Komponentenreferenz
This server cannot be deployed
Maintenance
Related MCP Connectors
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Cloudflare Workers MCP server: claude-skill-validator
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
Related MCP Servers
- AlicenseAqualityBmaintenanceThis MCP server enables Claude to interact with an Obsidian vault for persistent, structured memory, providing tools for note creation, semantic search, graph traversal, and session memory.189 npm13MIT
- AlicenseNot gradedqualityDmaintenanceProvides Claude with read, search, and write access to an Obsidian vault through MCP tools.6,209 npmApache 2.0
- AlicenseAqualityCmaintenanceA local MCP connector that lets Claude read, write and search any Obsidian vault directly from disk.20MIT
- AlicenseNot gradedqualityDmaintenanceBidirectional MCP server that connects Claude with an Obsidian vault, enabling note management, full-text search, graph traversal, and daily notes operations.2,545 npmMIT