Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

Obsidian MCP Server

de cyanheadsversión 3.8.0i★ 702iSe ejecuta en tu computadora
Nombre en el registroio.github.cyanheads/obsidian-mcp-server

Instalar

Resumen

Descripción del creador (original en inglés)

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

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio, Streamable HTTP
  • Categoría: Documentos, hojas de cálculo y oficina
  • Debes completar: OBSIDIAN_API_KEY

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

  • Revisiones básicas: 3 de 3 superadas
  • Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
  • Debes completar tú: 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

Necesitas

  • npmNode.js instalado (para el comando npx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "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"
      }
    }
  }
}

Ejecuta esto en tu terminal

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

Completa los valores vacíos antes de ejecutarlo.

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "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"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "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"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Valores que debes completar

  • OBSIDIAN_API_KEY obligatorio 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').

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 8 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub cyanheads, dueña del repo

  • ✓ Superada

    Sigue en mantenimiento

    Último cambio de código: hace 8 días

  • ✓ Superada

    Tiene licencia

    Usa Apache-2.0

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Documentos, hojas de cálculo y oficinai

  • Más estrellas que el 100% de los otros 3540 servidores de esta categoría
  • Publicado en el registro más recientemente que el 79% de los otros 3540 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 3540 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro Obsidian MCP Server?

Superó 3 de 3 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

Debes completar: OBSIDIAN_API_KEY

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez hace 8 días, y la última versión (3.8.0) llegó al registro hace 8 días.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

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

Se ejecuta en la nube★ 7620MITActualizado hace 2 meses
Instalar

Excel MCP Server

de haris-musa

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

Se ejecuta en tu computadora★ 4276MITActualizado hace 7 días
Instalar

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

Se ejecuta en tu computadora★ 847MITActualizado hace 4 días
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

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

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx