Servidor MCP de Obsidian
Un servidor de Protocolo de Contexto de Modelo diseñado para que los LLM interactúen con las bóvedas de Obsidian. Desarrollado con TypeScript y con comunicación API segura, operaciones de archivos eficientes y funciones de búsqueda completas, permite a los asistentes de IA gestionar bases de conocimiento de forma fluida mediante una interfaz de herramientas clara y flexible.
El Protocolo de Contexto de Modelo (MCP) permite que los modelos de IA interactúen con herramientas y recursos externos a través de una interfaz estandarizada.
Requiere el complemento API REST local en Obsidian.
📋 Índice de contenidos
Características | Instalación | Configuración | Herramientas | Recursos | Estructura del proyecto | Contribución | Publicación | Licencia
Related MCP server: Obsidian iCloud MCP
✨ Características
Operaciones de archivos : Operaciones atómicas de archivos/directorios con validación, monitoreo de recursos y manejo de errores.
Sistema de búsqueda : búsqueda de texto completo con contexto configurable, consultas JsonLogic avanzadas, patrones glob y soporte para campos frontmatter.
Gestión de propiedades : análisis de frontmatter YAML, fusión inteligente, marcas de tiempo automáticas y compatibilidad con campos personalizados.
Seguridad y rendimiento : autenticación de clave API, limitación de velocidad, opciones SSL, monitoreo de recursos y apagado elegante.
🚀 Instalación
Nota: Requiere Node.js y el complemento API REST local habilitado en Obsidian.
Opción 1: Clonar y construir (para desarrollo o uso directo)
Habilite el complemento API REST local en Obsidian.
Clonar el repositorio, instalar las dependencias y compilar el proyecto:
git clone git@github.com:cyanheads/obsidian-mcp-server.git cd obsidian-mcp-server npm install npm run buildConfigure el servidor utilizando variables de entorno (consulte la sección Configuración a continuación).
Configure los ajustes del cliente MCP (p. ej.,
claude_desktop_config.jsonocline_mcp_settings.json) para incluir el servidor. Consulte la sección Configuración para obtener más información.
Opción 2: Instalar a través de npm (como dependencia o globalmente)
Habilite el complemento API REST local en Obsidian.
Instale el paquete usando npm:
# Install locally (e.g., within another project) npm install obsidian-mcp-server # Or install globally npm install -g obsidian-mcp-serverConfigure los ajustes del cliente MCP (p. ej.,
claude_desktop_config.jsonocline_mcp_settings.json) para incluir el servidor. Consulte la sección Configuración para obtener más información.
⚙️ Configuración
Agregue a la configuración de su cliente MCP (por ejemplo, claude_desktop_config.json o cline_mcp_settings.json ):
Variables de entorno:
OBSIDIAN_API_KEY(Obligatorio): Su clave API de la configuración del complemento API REST local de Obsidian.VERIFY_SSL(Predeterminado:false): Habilita la verificación SSL. Establézcalo enfalsepara certificados autofirmados o uso local.OBSIDIAN_PROTOCOL(Predeterminado:"https"): Protocolo (httpohttps).OBSIDIAN_HOST(Predeterminado:"127.0.0.1"): Dirección del host.OBSIDIAN_PORT(Predeterminado:27124): Número de puerto.REQUEST_TIMEOUT(Predeterminado:5000): Tiempo de espera de solicitud (ms).MAX_CONTENT_LENGTH(Predeterminado:52428800[50 MB]): Longitud máxima del contenido de la respuesta (bytes).MAX_BODY_LENGTH(Predeterminado:52428800[50 MB]): Longitud máxima del cuerpo de la solicitud (bytes).RATE_LIMIT_WINDOW_MS(Predeterminado:900000[15 min]): Ventana de límite de velocidad (ms).RATE_LIMIT_MAX_REQUESTS(Predeterminado:200): Máximo de solicitudes por ventana.TOOL_TIMEOUT_MS(Predeterminado:60000[1 min]): Tiempo de espera de ejecución de la herramienta (ms).
🛠️ Herramientas
Herramienta | Descripción | Parámetros |
lista_de_archivos_en_la_bóveda_de_obsidiana | Enumera todos los archivos y directorios dentro de la raíz de su bóveda de Obsidian. Devuelve una estructura jerárquica que detalla archivos, carpetas y sus tipos. | Ninguno |
lista_de_obsidiana_archivos_en_directorio | Enumera los archivos y directorios dentro de una carpeta específica en su bóveda de Obsidian. Devuelve una estructura jerárquica. Nota: Es posible que los directorios vacíos no se incluyan en los resultados. Útil para explorar la organización de la bóveda. |
: Ruta de acceso a los archivos (relativa a la raíz del almacén). Tenga en cuenta que no se devolverán directorios vacíos. |
obsidian_obtener_contenido_del_archivo | Recupera el contenido completo de un archivo específico en tu bóveda de Obsidian. Admite varios formatos de archivo legibles. |
: Ruta al archivo relevante (relativo a la raíz de su bóveda). |
contenido adicional de obsidiana | Añade el contenido proporcionado al final de un archivo específico en el almacén. Si el archivo no existe, se creará. |
: Ruta al archivo (relativa a la raíz del almacén)
: Contenido que se agregará al archivo |
contenido actualizado de obsidiana | Sobrescribe todo el contenido de un archivo especificado en el almacén con el contenido proporcionado. Si el archivo no existe, se creará. |
: Ruta al archivo (relativa a la raíz del almacén)
: El contenido nuevo y completo del archivo (sobrescribe el contenido existente). |
obsidiana_encontrada_en_archivo | Realiza una búsqueda de texto completo en todos los archivos de su bóveda de Obsidian. Devuelve los archivos coincidentes con el contexto correspondiente. Si hay más de 5 archivos coincidentes, solo se devuelven los nombres y el número de coincidencias para evitar un exceso de resultados. Ideal para localizar texto, etiquetas o patrones específicos. |
: Patrón de texto a buscar. Puede incluir etiquetas, palabras clave o frases.
: Número de caracteres que rodean cada coincidencia para proporcionar contexto (predeterminado: 10). |
búsqueda del complejo de obsidiana | Busca archivos basándose en patrones de ruta mediante consultas JsonLogic. Admite principalmente
para la búsqueda de patrones (p. ej., '*.md') y
para acceder a la variable 'path'. Nota: Para búsquedas basadas en contenido (texto completo, etiquetas dentro del contenido, fechas), utilice
. |
: Un objeto de consulta JsonLogic que busca rutas de archivos. Ejemplo:
coincide con todos los archivos Markdown. |
etiquetas de obtención de obsidiana | Recupera todas las etiquetas definidas en el frontmatter YAML de los archivos Markdown en tu almacén de Obsidian, junto con sus recuentos de uso y las rutas de archivo asociadas. Opcionalmente, limita la búsqueda a una carpeta específica. |
: ruta de carpeta opcional (relativa a la raíz del almacén) para restringir la búsqueda de etiquetas. |
obsidian_get_properties | Recupera propiedades (como título, etiquetas y estado) del frontmatter YAML de una nota de Obsidian especificada. Devuelve todas las propiedades definidas, incluidos los campos personalizados. |
: Ruta al archivo de nota (relativo a la raíz de la bóveda) |
propiedades de actualización de obsidiana | Actualiza las propiedades dentro del frontmatter YAML de una nota de Obsidian especificada. Por defecto, las propiedades de la matriz (como etiquetas, tipo y estado) se fusionan; utilice la opción "reemplazar" para sobrescribirlas. Gestiona campos personalizados y marcas de tiempo automáticamente. Consulte el esquema para ver los campos estándar compatibles (título, autor, etiquetas, estado, etc.). |
: Ruta al archivo de notas (relativa a la raíz del almacén).
: Propiedades a actualizar.
: Si es verdadero, las propiedades de la matriz (como etiquetas y estado) se reemplazarán completamente con los valores proporcionados en lugar de fusionarse con los valores existentes. El valor predeterminado es falso (fusionar). |
🔗 Recursos
Recurso | Descripción | Devoluciones |
obsidiana://etiquetas | Lista de todas las etiquetas utilizadas en la bóveda de Obsidian con sus recuentos de uso | aplicación/json |
📁 Estructura del proyecto
El proyecto sigue una arquitectura modular con una clara separación de preocupaciones:
👥 Contribuyendo
Bifurcar el repositorio
Crear una rama de características
Enviar una solicitud de extracción
Para errores y características, cree un problema en https://github.com/cyanheads/obsidian-mcp-server/issues .
📄 Licencia
Licencia Apache 2.0