Skip to main content
Glama

Obsidian MCP Server

Apache 2.0
248
116
  • Apple
  • Linux

Obsidian MCP Server

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

✨ 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

WerkzeugBeschreibungParameter
obsidian_list_files_in_vaultListet 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_dirListet 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_contentsRuft 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_contentFü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_fileFü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).
ObsidiankomplexsucheFindet 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_tagsRuft 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_propertiesRuft 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_propertiesAktualisiert 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

RessourceBeschreibungRückgaben
Obsidian://TagsListe aller im Obsidian-Tresor verwendeten Tags mit ihren NutzungszahlenAnwendung/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-Lizenz 2.0


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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Ermöglicht die Interaktion zwischen LLMs und Obsidian-Tresoren über das Model Context Protocol und unterstützt sichere Dateivorgänge, Inhaltsverwaltung und erweiterte Suchfunktionen.

  1. 📋 Inhaltsverzeichnis
    1. ✨ Funktionen
      1. 🚀 Installation
        1. Option 1: Klonen und Erstellen (für die Entwicklung oder den direkten Gebrauch)
        2. Option 2: Installation über npm (als Abhängigkeit oder global)
      2. ⚙️ Konfiguration
        1. 🛠️ Werkzeuge
          1. 🔗 Ressourcen
            1. 📁 Projektstruktur
              1. 👥 Beitragen
                1. 📄 Lizenz

                  Related MCP Servers

                  • -
                    security
                    A
                    license
                    -
                    quality
                    A comprehensive toolkit that enhances LLM capabilities through the Model Context Protocol, allowing LLMs to interact with external services including command-line operations, file management, Figma integration, and audio processing.
                    Last updated -
                    17
                    Python
                    Apache 2.0
                    • Linux
                    • Apple
                  • -
                    security
                    F
                    license
                    -
                    quality
                    This project implements a Model Context Protocol (MCP) server for connecting AI models with Obsidian knowledge bases. Through this server, AI models can directly access and manipulate Obsidian notes, including reading, creating, updating, and deleting notes, as well as managing folder structures.
                    Last updated -
                    598
                    7
                    JavaScript
                  • -
                    security
                    A
                    license
                    -
                    quality
                    A Model Context Protocol server that enables AI assistants to read, write, and manipulate notes in your Obsidian vault through a standardized interface.
                    Last updated -
                    598
                    TypeScript
                    ISC License
                  • -
                    security
                    A
                    license
                    -
                    quality
                    Connects Obsidian vaults stored in iCloud Drive to AI models via the Model Context Protocol, allowing AI assistants to access and interact with your Obsidian notes.
                    Last updated -
                    598
                    1
                    TypeScript
                    MIT License
                    • Apple
                    • Linux

                  View all related MCP servers

                  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