Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Obsidian MCP Server

von cyanheadsVersion 3.8.0i★ 702iLäuft auf deinem Computer
Name in der Registryio.github.cyanheads/obsidian-mcp-server

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Read, write, search, and surgically edit Obsidian notes, tags, and frontmatter via MCP.

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio, Streamable HTTP
  • Kategorie: Dokumente, Tabellen & Büroarbeit
  • Das musst du eintragen: OBSIDIAN_API_KEY

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 3 von 3 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: OBSIDIAN_API_KEY, OBSIDIAN_BASE_URL, OBSIDIAN_VERIFY_SSL, OBSIDIAN_REQUEST_TIMEOUT_MS, OBSIDIAN_ENABLE_COMMANDS, OBSIDIAN_READ_PATHS, OBSIDIAN_WRITE_PATHS, OBSIDIAN_DENY_PATHS, OBSIDIAN_READ_ONLY, OBSIDIAN_DELETE_ELICITATION, OBSIDIAN_OMNISEARCH_URL, MCP_LOG_LEVEL

Du brauchst

  • npmNode.js installiert (für den Befehl npx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "obsidian": {
      "command": "npx",
      "args": [
        "-y",
        "obsidian-mcp-server"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "your-value",
        "OBSIDIAN_BASE_URL": "your-value",
        "OBSIDIAN_VERIFY_SSL": "your-value",
        "OBSIDIAN_REQUEST_TIMEOUT_MS": "your-value",
        "OBSIDIAN_ENABLE_COMMANDS": "your-value",
        "OBSIDIAN_READ_PATHS": "your-value",
        "OBSIDIAN_WRITE_PATHS": "your-value",
        "OBSIDIAN_DENY_PATHS": "your-value",
        "OBSIDIAN_READ_ONLY": "your-value",
        "OBSIDIAN_DELETE_ELICITATION": "your-value",
        "OBSIDIAN_OMNISEARCH_URL": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add obsidian --env OBSIDIAN_API_KEY=your-value --env OBSIDIAN_BASE_URL=your-value --env OBSIDIAN_VERIFY_SSL=your-value --env OBSIDIAN_REQUEST_TIMEOUT_MS=your-value --env OBSIDIAN_ENABLE_COMMANDS=your-value --env OBSIDIAN_READ_PATHS=your-value --env OBSIDIAN_WRITE_PATHS=your-value --env OBSIDIAN_DENY_PATHS=your-value --env OBSIDIAN_READ_ONLY=your-value --env OBSIDIAN_DELETE_ELICITATION=your-value --env OBSIDIAN_OMNISEARCH_URL=your-value --env MCP_LOG_LEVEL=your-value -- npx -y obsidian-mcp-server

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "obsidian": {
      "command": "npx",
      "args": [
        "-y",
        "obsidian-mcp-server"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "your-value",
        "OBSIDIAN_BASE_URL": "your-value",
        "OBSIDIAN_VERIFY_SSL": "your-value",
        "OBSIDIAN_REQUEST_TIMEOUT_MS": "your-value",
        "OBSIDIAN_ENABLE_COMMANDS": "your-value",
        "OBSIDIAN_READ_PATHS": "your-value",
        "OBSIDIAN_WRITE_PATHS": "your-value",
        "OBSIDIAN_DENY_PATHS": "your-value",
        "OBSIDIAN_READ_ONLY": "your-value",
        "OBSIDIAN_DELETE_ELICITATION": "your-value",
        "OBSIDIAN_OMNISEARCH_URL": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "obsidian": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "obsidian-mcp-server"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "your-value",
        "OBSIDIAN_BASE_URL": "your-value",
        "OBSIDIAN_VERIFY_SSL": "your-value",
        "OBSIDIAN_REQUEST_TIMEOUT_MS": "your-value",
        "OBSIDIAN_ENABLE_COMMANDS": "your-value",
        "OBSIDIAN_READ_PATHS": "your-value",
        "OBSIDIAN_WRITE_PATHS": "your-value",
        "OBSIDIAN_DENY_PATHS": "your-value",
        "OBSIDIAN_READ_ONLY": "your-value",
        "OBSIDIAN_DELETE_ELICITATION": "your-value",
        "OBSIDIAN_OMNISEARCH_URL": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • OBSIDIAN_API_KEY erforderlich env
    Bearer token for the Obsidian Local REST API plugin (Settings → Community Plugins → Local REST API).
  • OBSIDIAN_BASE_URL env
    Base URL of the Obsidian Local REST API. Default: http://127.0.0.1:27123 (enable "Non-encrypted (HTTP) Server" in plugin settings). Use https://127.0.0.1:27124 for the always-on HTTPS port (self-sign…
  • OBSIDIAN_VERIFY_SSL env
    Whether to verify the TLS certificate on the Obsidian endpoint. Default false because the plugin uses a self-signed cert.
  • OBSIDIAN_REQUEST_TIMEOUT_MS env
    Per-request timeout in milliseconds.
  • OBSIDIAN_ENABLE_COMMANDS env
    Opt-in flag for the command-palette pair (obsidian_list_commands + obsidian_execute_command). Off by default — Obsidian commands are opaque and can be destructive.
  • OBSIDIAN_READ_PATHS env
    Optional comma-separated vault-relative folder allowlist for reads. Prefix-based with implicit recursion; case-insensitive; backslashes read as slashes, repeated and trailing slashes and '.' segments…
  • OBSIDIAN_WRITE_PATHS env
    Optional comma-separated vault-relative folder allowlist for writes. Same syntax as OBSIDIAN_READ_PATHS. Unset = full vault, or the read scope when reads are restricted; paths in OBSIDIAN_DENY_PATHS…
  • OBSIDIAN_DENY_PATHS env
    Optional comma-separated vault-relative paths withheld from reads and writes. Same syntax as OBSIDIAN_READ_PATHS. Wins over both allowlists; denied paths are left out of listings, search results, and…
  • OBSIDIAN_READ_ONLY env
    Global read-only kill switch. When true, every write is denied regardless of OBSIDIAN_WRITE_PATHS, and the command-palette pair is suppressed (commands can mutate). Useful for shared or public-facing…
  • OBSIDIAN_DELETE_ELICITATION env
    Opt-in delete confirmation. When true, obsidian_delete_note asks the user to confirm each delete through an elicitation round (the client must support elicitation), and HTTP startup requires a statef…
  • OBSIDIAN_OMNISEARCH_URL env
    Override URL for the Omnisearch plugin HTTP server. Unset derives from OBSIDIAN_BASE_URL host with port 51361. Required only if the Omnisearch plugin is not on the default port.
  • MCP_LOG_LEVEL env
    Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto cyanheads bestätigt, dem das Repo gehört

  • ✓ Bestanden

    Wird noch gepflegt

    Code zuletzt geändert: vor 7 Tagen

  • ✓ Bestanden

    Hat eine Lizenz

    Nutzt Apache-2.0

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Dokumente, Tabellen & Büroarbeiti

  • Mehr Sterne als 100 % der anderen 3529 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 79 % der anderen 3529 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 3529 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Obsidian MCP Server sicher?

Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: OBSIDIAN_API_KEY

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt vor 7 Tagen geändert, und die neueste Version (3.8.0) kam vor 7 Tagen in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Agent-Native Google Calendar - manage events, sync, and public booking

Läuft in der Cloud★ 7.620MITAktualisiert vor 2 Monaten
Installieren

Excel MCP Server

von haris-musa

Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.

Läuft auf deinem Computer★ 4.276MITAktualisiert vor 7 Tagen
Installieren

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

Läuft auf deinem Computer★ 847MITAktualisiert vor 4 Tagen
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

obsidian-mcp-server Read, write, search, and surgically edit Obsidian vault notes, tags, and frontmatter via MCP. STDIO or Streamable HTTP. 14 Tools • 3 Resources


Overview

Your Obsidian vault, through the Local REST API plugin. Read, search, and write notes, edit a single heading, block, or frontmatter field in place, and manage tags, with folder-scoped read/write permissions built in.

Tools
ToolDescription
obsidian_get_noteRead a note as raw content, full structured form, document map, or a single section
obsidian_list_notesList notes and folders under a vault path, recursively, with extension and name filters
obsidian_list_tagsList vault tags with usage counts, most-used first
obsidian_search_notesSearch by text, JSONLogic, or BM25-ranked Omnisearch when that plugin is reachable
obsidian_write_noteCreate a note, replace one section, or overwrite a whole file with overwrite: true
obsidian_append_to_noteAppend to a note (creating it if missing) or to one heading, block, or frontmatter field
obsidian_patch_noteAppend, prepend, or replace against one heading, block reference, or frontmatter field
obsidian_replace_in_noteLiteral or regex search-replace inside one note, body-only by default
obsidian_manage_frontmatterGet, set, or delete one frontmatter key
obsidian_manage_tagsAdd, remove, or list a note's tags in frontmatter, inline, or both
obsidian_delete_notePermanently delete a note, optionally after the user confirms (OBSIDIAN_DELETE_ELICITATION)
obsidian_open_in_uiOpen a file in the Obsidian app, optionally in a new pane
obsidian_list_commandsList command-palette commands (opt-in via OBSIDIAN_ENABLE_COMMANDS)
obsidian_execute_commandRun a command-palette command by ID (opt-in via OBSIDIAN_ENABLE_COMMANDS)
Resources
ResourceDescription
obsidian://vault/{+path}A note's content, frontmatter, tags, and file metadata
obsidian://tagsEvery vault tag with its usage count, as an uncapped snapshot
obsidian://statusPlugin reachability, auth status, versions, and registered API extensions

Note and tag data are also reachable through tools (obsidian_get_note, obsidian_list_tags); obsidian://status has no tool equivalent.

Capability reference

obsidian_get_note tool
  • target is a vault path, the active file, or a periodic note (daily through yearly, optional date); format is content, full, document-map, or section, and full takes includeLinks: true for vault-internal outgoing links
  • result.format discriminates the payload; a section read that matches several headings returns the first and lists every full path in candidates
  • A path with no exact match but one case-insensitive match in its folder reads that file: result.path is the real name, requestedPath the one sent, and a notice names both

obsidian_list_notes tool
  • Walks from path (default vault root) to depth 1–20 (default 2), filtered by extension and nameRegex (≤256 chars); a folder that fails nameRegex is not walked
  • Returns entries[] (file / directory), totals, and appliedFilters; the walk stops at 1,000 entries with excluded.reason: "entry_cap", and a folder the depth limit stopped carries truncated: true
  • With OBSIDIAN_READ_PATHS or OBSIDIAN_DENY_PATHS set, a listing holds only readable entries and the folders leading to the scope; those folders are walked and accepted as path, and a denied folder is absent at every depth

obsidian_list_tags tool
  • nameRegex (≤256 chars) and minCount narrow the set, then tags are ranked by count and capped at limit (default 200, max 10000); hierarchical parents count (work/tasks adds to work)
  • When the cap withholds tags, the response carries truncated, shown, and cap
  • With OBSIDIAN_READ_PATHS or OBSIDIAN_DENY_PATHS set, only tags from readable notes are listed, and count is the number of readable notes carrying the tag or a tag nested under it

obsidian_search_notes tool
  • mode: "text" requires every space-separated token of query as a case-insensitive substring of the filename or body (quotes are literal), shaped by contextLength (default 100), pathPrefix, and maxMatchesPerHit (default 10); mode: "jsonlogic" evaluates a logic tree over path, content, frontmatter. , tags, and stat (plus links, backlinks, and unresolvedLinks on plugin versions that provide them, and not under OBSIDIAN_READ_PATHS or OBSIDIAN_DENY_PATHS), with glob / regexp taking [PATTERN, VALUE]
  • result.mode discriminates the payload; every mode reports totalCount and pages via nextCursor, and a text hit clipped to maxMatchesPerHit carries truncated and totalMatches
  • mode: "omnisearch" (BM25 ranking, quoted phrases, -exclusion, path: / ext: filters) is offered only when the Omnisearch plugin answered at startup. It keeps its top 50 hits; path:, ext:, and plain terms apply before that cap, quoted phrases and -exclusion after it. truncated: true marks a result the cap may have cut, with truncatedReason cap_reached, filtered_after_cap, or read_scope; under OBSIDIAN_READ_PATHS or OBSIDIAN_DENY_PATHS it is always true, and a hit's membership and score still depend on the whole vault

obsidian_write_note tool
  • target and content, with optional section and contentType (markdown / json); a whole-file write to an existing note fails with file_exists unless overwrite: true
  • On a case-insensitive filesystem (macOS, Windows), a whole-file write to a path that differs from an existing note only in letter case fails with case_variant_exists and writes nothing; existingPath names that note when the parent folder's listing shows exactly one case match, and is omitted when several match or when a file Obsidian does not index (a dot-file) sits at the path
  • With section, replaces only that heading, block, or frontmatter field and keeps the heading line; output reports created, sectionTargeted, and the resolved sectionTarget

obsidian_append_to_note tool
  • Without section, appends to the file or creates it (created: true); with section, appends to that heading, block, or frontmatter field of an existing note, and createTargetIfMissing: true creates the section
  • A section append whose content is already at the target fails with content_preexists; block targets add no separator, so start content with a newline if you want one
  • A whole-file append to a path that differs from an existing note only in letter case fails with case_variant_exists on a case-insensitive filesystem, with existingPath naming that note when the parent folder's listing shows exactly one case match

obsidian_patch_note tool
  • operation: "append" | "prepend" | "replace" against one section of an existing note; patchOptions takes createTargetIfMissing, applyIfContentPreexists, and trimTargetWhitespace (plugin v4.x only)
  • Echoes the resolved section and operation; a repeat of content already at the target fails with content_preexists unless applyIfContentPreexists: true

obsidian_replace_in_note tool
  • replacements[] run in order, each over the previous one's output; each takes useRegex (≤1024 chars), caseSensitive (default true), wholeWord, flexibleWhitespace (literal mode only), and replaceAll (default true)
  • Returns totalReplacements and perReplacement[] with bodyCount / frontmatterCount
  • scope: "body" (default) leaves frontmatter byte-identical; "frontmatter" and "both" re-parse the YAML afterward and write nothing if it breaks (frontmatter_invalid)

obsidian_manage_frontmatter tool
  • operation: "get" | "set" | "delete" on one key; set requires a JSON-typed value
  • get returns exists and value (null when absent); set and delete return the full frontmatter after the change, and a delete against unparseable YAML fails with frontmatter_invalid without writing

obsidian_manage_tags tool
  • operation: "add" | "remove" | "list" with tags; location: "frontmatter" (default, the tags: array), "inline" (body #tag; add appends at end of file), or "both"
  • add / remove report applied, skipped, and the resulting tags; list returns frontmatter, inline, and all
  • Inline detection follows Obsidian's tag grammar: code, wikilinks, images, link destinations, HTML, and math are skipped, and %% … %% comments are read

obsidian_delete_note tool
  • Takes a target (path, active file, or periodic note) and checks it against the write scope first; a folder path fails with path_is_directory. There is no API-level undo, only Obsidian's local trash
  • The path must match exactly, letter case included, even on a case-insensitive filesystem. A different-case or extension-less spelling fails note_missing before anything is deleted, naming the near matches in suggestions
  • By default the note is deleted on the first call, with no confirmation; OBSIDIAN_WRITE_PATHS, OBSIDIAN_DENY_PATHS, and OBSIDIAN_READ_ONLY bound what it can reach
  • With OBSIDIAN_DELETE_ELICITATION=true, the first call answers with a confirmation request naming the path and byte size, and the note is deleted only after the user accepts. Declining fails with cancelled, and a client without elicitation support cannot delete
  • In that mode an answer counts only against the single-use consent record stored when the prompt was shown, bound to the c

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen