Skip to main content
Glama

Obsidian MCP Server

Typoskript Modellkontextprotokoll VersionStatus GitHub

Ein Model Context Protocol-Server, der für die Interaktion von LLMs mit Obsidian-Tresoren entwickelt wurde. Erstellt mit TypeScript und mit sicherer API-Kommunikation, effizienten Dateioperationen und umfassenden Suchfunktionen ermöglicht er KI-Assistenten die nahtlose Verwaltung von Wissensdatenbanken über eine übersichtliche, flexible Tool-Oberfläche.

Das Model Context Protocol (MCP) ermöglicht KI-Modellen die Interaktion mit externen Tools und Ressourcen über eine standardisierte Schnittstelle.

Erfordert das lokale REST-API-Plugin in Obsidian.

📋 Inhaltsverzeichnis

Funktionen | Installation | Konfiguration | Werkzeuge | Ressourcen | Projektstruktur | Mitwirken | Veröffentlichen | Lizenz

Related MCP server: Obsidian iCloud MCP

✨ Funktionen

  • Dateioperationen : Atomare Datei-/Verzeichnisoperationen mit Validierung, Ressourcenüberwachung und Fehlerbehandlung.

  • Suchsystem : Volltextsuche mit konfigurierbarem Kontext, erweiterten JsonLogic-Abfragen, Glob-Mustern und Unterstützung für Frontmatter-Felder.

  • Immobilienverwaltung : YAML-Frontmatter-Parsing, intelligentes Zusammenführen, automatische Zeitstempel und Unterstützung für benutzerdefinierte Felder.

  • Sicherheit und Leistung : API-Schlüsselauthentifizierung, Ratenbegrenzung, SSL-Optionen, Ressourcenüberwachung und ordnungsgemäßes Herunterfahren.

🚀 Installation

Hinweis: Erfordert Node.js und das in Obsidian aktivierte lokale REST-API-Plugin .

Option 1: Klonen und Erstellen (für die Entwicklung oder den direkten Gebrauch)

  1. Aktivieren Sie das lokale REST-API-Plugin in Obsidian.

  2. Klonen Sie das Repository, installieren Sie Abhängigkeiten und erstellen Sie das Projekt:

    git clone git@github.com:cyanheads/obsidian-mcp-server.git cd obsidian-mcp-server npm install npm run build
  3. Konfigurieren Sie den Server mithilfe von Umgebungsvariablen (siehe Abschnitt „Konfiguration“ weiter unten).

  4. Konfigurieren Sie Ihre MCP-Clienteinstellungen (z. B. claude_desktop_config.json oder cline_mcp_settings.json ), um den Server einzubeziehen. Weitere Informationen finden Sie im Abschnitt „Konfiguration“.

Option 2: Installation über npm (als Abhängigkeit oder global)

  1. Aktivieren Sie das lokale REST-API-Plugin in Obsidian.

  2. Installieren Sie das Paket mit npm:

    # Install locally (e.g., within another project) npm install obsidian-mcp-server # Or install globally npm install -g obsidian-mcp-server
  3. Konfigurieren Sie Ihre MCP-Clienteinstellungen (z. B. claude_desktop_config.json oder cline_mcp_settings.json ), um den Server einzubeziehen. Weitere Informationen finden Sie im Abschnitt „Konfiguration“.

⚙️ Konfiguration

Fügen Sie zu Ihren MCP-Clienteinstellungen hinzu (z. B. claude_desktop_config.json oder cline_mcp_settings.json ):

{ "mcpServers": { "obsidian-mcp-server": { "command": "node", "args": ["/path/to/obsidian-mcp-server/dist/index.js"], "env": { "OBSIDIAN_API_KEY": "your_api_key_here", "VERIFY_SSL": "false", "OBSIDIAN_PROTOCOL": "https", "OBSIDIAN_HOST": "127.0.0.1", "OBSIDIAN_PORT": "27124", "REQUEST_TIMEOUT": "5000", "MAX_CONTENT_LENGTH": "52428800", "MAX_BODY_LENGTH": "52428800", "RATE_LIMIT_WINDOW_MS": "900000", "RATE_LIMIT_MAX_REQUESTS": "200", "TOOL_TIMEOUT_MS": "60000" } } } }

Umgebungsvariablen:

  • OBSIDIAN_API_KEY (Erforderlich): Ihr API-Schlüssel aus den Einstellungen des lokalen REST-API-Plugins von Obsidian.

  • VERIFY_SSL (Standard: false ): SSL-Verifizierung aktivieren. Für selbstsignierte Zertifikate oder die lokale Verwendung auf false setzen.

  • OBSIDIAN_PROTOCOL (Standard: "https" ): Protokoll ( http oder https ).

  • OBSIDIAN_HOST (Standard: "127.0.0.1" ): Hostadresse.

  • OBSIDIAN_PORT (Standard: 27124 ): Portnummer.

  • REQUEST_TIMEOUT (Standard: 5000 ): Anforderungs-Timeout (ms).

  • MAX_CONTENT_LENGTH (Standard: 52428800 [50 MB]): Maximale Länge des Antwortinhalts (Bytes).

  • MAX_BODY_LENGTH (Standard: 52428800 [50 MB]): Maximale Länge des Anforderungstexts (Bytes).

  • RATE_LIMIT_WINDOW_MS (Standard: 900000 [15 Min.]): Ratenbegrenzungsfenster (ms).

  • RATE_LIMIT_MAX_REQUESTS (Standard: 200 ): Maximale Anfragen pro Fenster.

  • TOOL_TIMEOUT_MS (Standard: 60000 [1 min]): Timeout der Tool-Ausführung (ms).

🛠️ Werkzeuge

Werkzeug

Beschreibung

Parameter

obsidian_list_files_in_vault

Listet alle Dateien und Verzeichnisse im Stammverzeichnis Ihres Obsidian-Tresors auf. Gibt eine hierarchische Struktur mit detaillierten Angaben zu Dateien, Ordnern und deren Typen zurück.

Keiner

obsidian_list_files_in_dir

Listet Dateien und Verzeichnisse in einem bestimmten Ordner in Ihrem Obsidian-Tresor auf. Gibt eine hierarchische Struktur zurück. Hinweis: Leere Verzeichnisse werden möglicherweise nicht in die Ergebnisse aufgenommen. Nützlich für die Erkundung der Tresororganisation.

dirpath*

: Pfad zum Auflisten der Dateien (relativ zum Stammverzeichnis des Tresors). Beachten Sie, dass leere Verzeichnisse nicht zurückgegeben werden.

obsidian_get_file_contents

Ruft den vollständigen Inhalt einer angegebenen Datei in Ihrem Obsidian-Tresor ab. Unterstützt verschiedene lesbare Dateiformate.

filepath*

: Pfad zur relevanten Datei (relativ zu Ihrem Tresorstamm).

obsidian_append_content

Fügt den bereitgestellten Inhalt an das Ende einer angegebenen Datei im Tresor an. Falls die Datei nicht vorhanden ist, wird sie erstellt.

filepath*

: Pfad zur Datei (relativ zum Stammverzeichnis des Tresors)

content*

: Inhalt, der an die Datei angehängt werden soll

obsidian_update_content

Überschreibt den gesamten Inhalt einer angegebenen Datei im Tresor mit dem bereitgestellten Inhalt. Falls die Datei nicht vorhanden ist, wird sie erstellt.

filepath*

: Pfad zur Datei (relativ zum Tresorstammverzeichnis)

content*

: Der neue, vollständige Inhalt der Datei (überschreibt vorhandenen Inhalt).

obsidian_find_in_file

Führt eine Volltextsuche in allen Dateien Ihres Obsidian-Speichers durch. Gibt passende Dateien mit Kontext zu jedem Treffer zurück. Bei mehr als fünf übereinstimmenden Dateien werden nur Dateinamen und Trefferanzahl zurückgegeben, um übermäßige Ausgaben zu vermeiden. Ideal zum Auffinden von bestimmtem Text, Tags oder Mustern.

query*

: Zu suchendes Textmuster. Kann Tags, Schlüsselwörter oder Ausdrücke enthalten.

contextLength

: Anzahl der Zeichen, die jede Übereinstimmung umgeben, um Kontext bereitzustellen (Standard: 10).

Obsidiankomplexsuche

Findet Dateien anhand von Pfadmustern mithilfe von JsonLogic-Abfragen. Unterstützt hauptsächlich

glob

für Musterabgleich (z. B. „*.md“) und

var

für den Zugriff auf die Variable „path“. Hinweis: Für inhaltsbasierte Suchen (Volltext, Tags im Inhalt, Datum) verwenden Sie

obsidian_find_in_file

.

query*

: Ein JsonLogic-Abfrageobjekt, das auf Dateipfade abzielt. Beispiel:

{"glob": ["*.md", {"var": "path"}]}

findet alle Markdown-Dateien.

obsidian_get_tags

Ruft alle im YAML-Frontmatter der Markdown-Dateien in Ihrem Obsidian-Tresor definierten Tags zusammen mit deren Verwendungszahlen und den zugehörigen Dateipfaden ab. Optional können Sie die Suche auf einen bestimmten Ordner beschränken.

path

: Optionaler Ordnerpfad (relativ zum Tresorstamm), um die Tag-Suche einzuschränken.

obsidian_get_properties

Ruft Eigenschaften (wie Titel, Tags, Status) aus dem YAML-Frontmatter einer angegebenen Obsidian-Notiz ab. Gibt alle definierten Eigenschaften zurück, einschließlich aller benutzerdefinierten Felder.

filepath*

: Pfad zur Notizdatei (relativ zum Tresorstamm)

obsidian_update_properties

Aktualisiert Eigenschaften im YAML-Frontmatter einer angegebenen Obsidian-Notiz. Standardmäßig werden Array-Eigenschaften (wie Tags, Typ, Status) zusammengeführt. Verwenden Sie stattdessen die Option „Ersetzen“, um sie zu überschreiben. Benutzerdefinierte Felder und Zeitstempel werden automatisch verwaltet. Siehe Schema für unterstützte Standardfelder (Titel, Autor, Tags, Status usw.).

filepath*

: Pfad zur Notizdatei (relativ zum Stammverzeichnis des Tresors)

properties*

: Zu aktualisierende Eigenschaften

replace

: Wenn „true“, werden Array-Eigenschaften (wie Tags, Status) vollständig durch die angegebenen Werte ersetzt, anstatt mit vorhandenen Werten zusammengeführt zu werden. Standardmäßig „false“ (zusammenführen).

🔗 Ressourcen

Ressource

Beschreibung

Rückgaben

Obsidian://Tags

Liste aller im Obsidian-Tresor verwendeten Tags mit ihren Nutzungszahlen

Anwendung/JSON

📁 Projektstruktur

Das Projekt folgt einer modularen Architektur mit klarer Trennung der Belange:

src/ ├── index.ts # Main entry point ├── mcp/ # MCP server implementation ├── obsidian/ # Obsidian API client and types ├── resources/ # MCP resource implementations ├── tools/ # MCP tool implementations │ ├── files/ # File operations tools │ ├── search/ # Search tools │ └── properties/ # Property management tools └── utils/ # Shared utilities

👥 Beitragen

  1. Forken Sie das Repository

  2. Erstellen eines Feature-Zweigs

  3. Senden einer Pull-Anfrage

Erstellen Sie für Fehler und Funktionen ein Problem unter https://github.com/cyanheads/obsidian-mcp-server/issues .

📄 Lizenz

Apache 2.0-Lizenz

Apache-Lizenz 2.0


-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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/cyanheads/obsidian-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server