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
✨ 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:
- Configure 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.json
ocline_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:
- Configure los ajustes del cliente MCP (p. ej.,
claude_desktop_config.json
ocline_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 enfalse
para certificados autofirmados o uso local.OBSIDIAN_PROTOCOL
(Predeterminado:"https"
): Protocolo (http
ohttps
).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. | dirpath* : 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. | filepath* : 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á. | filepath* : Ruta al archivo (relativa a la raíz del almacén) content* : 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á. | filepath* : Ruta al archivo (relativa a la raíz del almacén) content* : 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. | query* : Patrón de texto a buscar. Puede incluir etiquetas, palabras clave o frases. contextLength : 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 glob para la búsqueda de patrones (p. ej., '*.md') y var para acceder a la variable 'path'. Nota: Para búsquedas basadas en contenido (texto completo, etiquetas dentro del contenido, fechas), utilice obsidian_find_in_file . | query* : Un objeto de consulta JsonLogic que busca rutas de archivos. Ejemplo: {"glob": ["*.md", {"var": "path"}]} 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. | path : 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. | filepath* : 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.). | filepath* : Ruta al archivo de notas (relativa a la raíz del almacén). properties* : Propiedades a actualizar. replace : 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
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Permite la interacción entre LLM y bóvedas de Obsidian a través del Protocolo de contexto de modelo, lo que admite operaciones de archivos seguras, administración de contenido y capacidades de búsqueda avanzadas.
- 📋 Índice de contenidos
- ✨ Características
- 🚀 Instalación
- ⚙️ Configuración
- 🛠️ Herramientas
- 🔗 Recursos
- 📁 Estructura del proyecto
- 👥 Contribuyendo
- 📄 Licencia
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that enables LLMs to interact with Salesforce data through SOQL queries, SOSL searches, and various API operations including record management.Last updated -1077PythonMIT License
- AsecurityAlicenseAqualityAdds powerful Hacker News integration to LLM clients, allowing users to access stories, comments, user profiles, and search functionality through the Model Context Protocol.Last updated -9254JavaScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server enabling LLMs to search, retrieve, and manage documents through Rememberizer's knowledge management API.Last updated -24PythonApache 2.0
- -securityAlicense-qualityFEGIS is a Model Context Protocol server that gives LLMs structured, persistent and portable memory through customizable cognitive tools defined in schema.Last updated -16PythonMIT License