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)
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 herramienta | Descripción |
|---|---|
| obsidian_status | Devuelve detalles básicos sobre el servidor de la API REST Local de Obsidian y tu estado de autenticación |
| obsidian_delete_active | Elimina la nota que está actualmente activa en la interfaz de Obsidian |
| obsidian_get_active | Recupera el contenido completo de la nota activa (vista Markdown o JSON) |
| obsidian_patch_active | Inserta, reemplaza o antepone contenido en la nota activa en relación a un encabezado, referencia de bloque o campo de front-matter |
| obsidian_post_active | Añade Markdown al final de la nota activa |
| obsidian_put_active | Reemplaza todo el cuerpo de la nota activa |
| obsidian_get_commands | Lista todos los comandos disponibles en la paleta de comandos de Obsidian |
| obsidian_execute_command | Ejecuta un comando específico de Obsidian por su ID |
| obsidian_open_file | Abre el archivo dado dentro de Obsidian (lo crea si falta); bandera opcional para abrir en una nueva hoja |
| obsidian_delete_periodic | Elimina la nota diaria / semanal / mensual / trimestral / anual actual para el período solicitado |
| obsidian_get_periodic | Devuelve el contenido de la nota periódica actual para el período solicitado |
| obsidian_patch_periodic | Inserta / reemplaza contenido en una nota periódica en relación a un encabezado, referencia de bloque o campo de front-matter |
| obsidian_post_periodic | Añade Markdown a la nota periódica (la crea si no existe) |
| obsidian_put_periodic | Reemplaza todo el cuerpo de una nota periódica |
| obsidian_search_dataview | Ejecuta una consulta Dataview-DQL en toda la bóveda y devuelve las filas coincidentes |
| obsidian_search_json_logic | Ejecuta una consulta JsonLogic contra los metadatos estructurados de las notas |
| obsidian_simple_search | Realiza una búsqueda difusa de texto plano con contexto circundante opcional |
| obsidian_list_vault_root | Lista todos los archivos y directorios en la raíz de tu bóveda |
| obsidian_list_vault_directory | Lista archivos y directorios dentro de una carpeta específica de la bóveda |
| obsidian_delete_file | Elimina un archivo (o directorio) específico en la bóveda |
| obsidian_get_file | Recupera el contenido de un archivo en la bóveda (vista Markdown o JSON) |
| obsidian_patch_file | Inserta / reemplaza contenido en un archivo arbitrario en relación a un encabezado, referencia de bloque o campo de front-matter |
| obsidian_post_file | Añade Markdown a un archivo (lo crea si no existe) |
| obsidian_put_file | Crea 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:
- Configuración del servidor (recomendada) – pásala a través del campo
enven 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@latestpara asegurarte de ejecutar siempre la versión más actualizada del servidor.
- Alternativamente, puedes usar un archivo
.env. Coloca la clave en el.envque 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.
- Clona este repositorio y ejecuta
bun installpara instalar las dependencias. - Actualiza tu
claude_desktop_config.jsonpara 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
bunen lugar debunxaquí.
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
- Actualiza la versión en
package.json. - Crea un release de GitHub.
- Ejecuta
bun publish.
Licencia
MIT – consulta LICENSE.