Obsidian

Interactúa con tu bóveda de Obsidian usando el plugin Local REST API, permitiendo que los LLMs accedan y gestionen tus notas.

Documentación

Servidor MCP para Obsidian (TypeScript + Bun)

NPM Version

Un servidor de Model-Context-Protocol (MCP) que permite a Claude (o cualquier LLM compatible con MCP) interactuar con tu bóveda de Obsidian a través del plugin comunitario Local REST API – escrito en TypeScript y ejecutable con bunx.


✨ Componentes

Herramientas

Nombre de la herramientaDescripción
obsidian_statusDevuelve detalles básicos sobre el servidor de la API REST Local de Obsidian y tu estado de autenticación
obsidian_delete_activeElimina la nota que está actualmente activa en la interfaz de Obsidian
obsidian_get_activeRecupera el contenido completo de la nota activa (vista Markdown o JSON)
obsidian_patch_activeInserta, reemplaza o antepone contenido en la nota activa en relación a un encabezado, referencia de bloque o campo de front-matter
obsidian_post_activeAñade Markdown al final de la nota activa
obsidian_put_activeReemplaza todo el cuerpo de la nota activa
obsidian_get_commandsLista todos los comandos disponibles en la paleta de comandos de Obsidian
obsidian_execute_commandEjecuta un comando específico de Obsidian por su ID
obsidian_open_fileAbre el archivo dado dentro de Obsidian (lo crea si falta); bandera opcional para abrir en una nueva hoja
obsidian_delete_periodicElimina la nota diaria / semanal / mensual / trimestral / anual actual para el período solicitado
obsidian_get_periodicDevuelve el contenido de la nota periódica actual para el período solicitado
obsidian_patch_periodicInserta / reemplaza contenido en una nota periódica en relación a un encabezado, referencia de bloque o campo de front-matter
obsidian_post_periodicAñade Markdown a la nota periódica (la crea si no existe)
obsidian_put_periodicReemplaza todo el cuerpo de una nota periódica
obsidian_search_dataviewEjecuta una consulta Dataview-DQL en toda la bóveda y devuelve las filas coincidentes
obsidian_search_json_logicEjecuta una consulta JsonLogic contra los metadatos estructurados de las notas
obsidian_simple_searchRealiza una búsqueda difusa de texto plano con contexto circundante opcional
obsidian_list_vault_rootLista todos los archivos y directorios en la raíz de tu bóveda
obsidian_list_vault_directoryLista archivos y directorios dentro de una carpeta específica de la bóveda
obsidian_delete_fileElimina un archivo (o directorio) específico en la bóveda
obsidian_get_fileRecupera el contenido de un archivo en la bóveda (vista Markdown o JSON)
obsidian_patch_fileInserta / reemplaza contenido en un archivo arbitrario en relación a un encabezado, referencia de bloque o campo de front-matter
obsidian_post_fileAñade Markdown a un archivo (lo crea si no existe)
obsidian_put_fileCrea un nuevo archivo o reemplaza todo el cuerpo de un archivo existente

Consulta las especificaciones de la API REST Local de Obsidian para más detalles.


Ejemplos de prompts

# Summarize the latest “architecture call” note
# (Claude will transparently call list_files_in_vault → get_file_contents)
Get the contents of the last “architecture call” note and summarize them.

# Find all mentions of Cosmos DB
Search for all files where “Azure CosmosDb” is mentioned and explain the context briefly.

# Create a summary note
Summarize yesterday’s meeting and save it as “summaries/2025-04-24-meeting.md”. Add a short intro suitable for e-mail.

⚙️ Configuración

Clave de API REST de Obsidian

Hay dos formas de pasar la clave de API de Obsidian al servidor:

  1. Configuración del servidor (recomendada) – pásala a través del campo env en tu declaración de servidor MCP de Claude (u otro cliente):
// claude_desktop_config.json
{
  "mcpServers": {
    "@fazer-ai/mcp-obsidian": {
      "command": "bunx",
      "args": ["@fazer-ai/mcp-obsidian@latest"],
      "env": {
        "OBSIDIAN_API_KEY": "your-obsidian-api-key"
      }
    }
  }
}

[!NOTE] Usa @fazer-ai/mcp-obsidian@latest para asegurarte de ejecutar siempre la versión más actualizada del servidor.

  1. Alternativamente, puedes usar un archivo .env. Coloca la clave en el .env que creaste arriba. Ten en cuenta que debe colocarse en el directorio de trabajo donde se ejecuta el servidor MCP.

Variables de entorno

Puedes usar el archivo .env.example como referencia para crear tu propio archivo .env.

OBSIDIAN_API_KEY=   # Obtain this from the plugin settings in Obsidian
OBSIDIAN_PROTOCOL=http
OBSIDIAN_HOST=localhost
OBSIDIAN_PORT=27123 # Port the Local REST API plugin is bound to

🛠 Desarrollo

Ejecutar la versión local en Claude Desktop

Después de clonar este repositorio, puedes actualizar la configuración de Claude para ejecutar tu versión local del servidor en lugar de descargarla desde npm. Esto es útil para probar rápidamente cambios antes de publicarlos.

[!NOTE] Ten en cuenta que cualquier cambio que hagas en el código solo tendrá efecto después de reiniciar la aplicación Claude Desktop.

  1. Clona este repositorio y ejecuta bun install para instalar las dependencias.
  2. Actualiza tu claude_desktop_config.json para que apunte a tu versión local del servidor:
// claude_desktop_config.json
{
  "mcpServers": {
    "@fazer-ai/mcp-obsidian": {
      "command": "bun",
      "args": ["/path/to/repo/src/index.ts"],
      "env": {
        "OBSIDIAN_API_KEY": "your-obsidian-api-key"
      }
    }
  }
}

[!IMPORTANT] Ten en cuenta que usamos bun en lugar de bunx aquí.

Depuración

Los servidores MCP se comunican a través de stdio, por lo que los depuradores normales no son útiles.
Usa el MCP Inspector:

npx @modelcontextprotocol/inspector bun /path/to/repo/src/index.ts

Abre la URL que imprime para recorrer las solicitudes (generalmente http://localhost:6274), inspecciona las llamadas a herramientas y observa los registros en tiempo real.


📦 Publicación

  1. Actualiza la versión en package.json.
  2. Crea un release de GitHub.
  3. Ejecuta bun publish.

Licencia

MIT – consulta LICENSE.