Obsidian
Interactuando con Obsidian a través de la API REST
Documentación
Servidor MCP para Obsidian
Servidor MCP para interactuar con Obsidian mediante el plugin comunitario Local REST API.
Componentes
Herramientas
El servidor implementa múltiples herramientas para interactuar con Obsidian:
- list_files_in_vault: Lista todos los archivos y directorios en el directorio raíz de tu bóveda de Obsidian
- list_files_in_dir: Lista todos los archivos y directorios en un directorio específico de Obsidian
- get_file_contents: Devuelve el contenido de un solo archivo en tu bóveda.
- search: Busca documentos que coincidan con una consulta de texto especificada en todos los archivos de la bóveda
- patch_content: Inserta contenido en una nota existente en relación con un encabezado, referencia de bloque o campo de frontmatter.
- append_content: Añade contenido a un archivo nuevo o existente en la bóveda.
- delete_file: Elimina un archivo o directorio de tu bóveda.
Ejemplos de indicaciones
Es bueno primero indicar a Claude que use Obsidian. Luego siempre llamará a la herramienta.
Usa indicaciones como estas:
- Obtén el contenido de la última nota de llamada de arquitectura y resúmelo
- Busca todos los archivos donde se mencione Azure CosmosDb y explícame rápidamente el contexto en el que se menciona
- Resume las últimas notas de reunión y colócalas en una nueva nota 'resumen reunión.md'. Añade una introducción para poder enviarla por correo electrónico.
Requisitos
- Python >= 3.11
mcpPython SDK>=1.1.0,<2.0.0(fijado enpyproject.toml).mcp-obsidianactualmente registra sus manejadores de herramientas mediante la API de bajo nivelmcp1.xServer(@app.list_tools()/@app.call_tool()), que fue eliminada enmcp2.0. Instalar con unmcp>=2.0sin restricciones provocará un fallo al importar conAttributeError: 'Server' object has no attribute 'list_tools'.
Configuración
Clave de API REST de Obsidian
Hay dos formas de configurar el entorno con la clave de API REST de Obsidian.
- Añadir a la configuración del servidor (recomendado)
{
"mcp-obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<your_api_key_here>",
"OBSIDIAN_HOST": "<your_obsidian_host>",
"OBSIDIAN_PORT": "<your_obsidian_port>"
}
}
}
A veces Claude tiene problemas para detectar la ubicación de uv / uvx. Puedes usar which uvx para encontrar y pegar la ruta completa en la configuración anterior en tales casos.
- Crear un archivo
.enven el directorio de trabajo con las siguientes variables requeridas:
OBSIDIAN_API_KEY=your_api_key_here
OBSIDIAN_HOST=your_obsidian_host
OBSIDIAN_PORT=your_obsidian_port
Nota:
- Puedes encontrar la clave de API en la configuración del plugin de Obsidian
- El puerto predeterminado es 27124 si no se especifica
- El host predeterminado es 127.0.0.1 si no se especifica
Inicio rápido
Instalación
Obsidian REST API
Necesitas el plugin comunitario Obsidian REST API en ejecución: https://github.com/coddingtonbear/obsidian-local-rest-api
Instálalo y actívalo en la configuración y copia la clave de API.
Claude Desktop
En MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
En Windows: %APPDATA%/Claude/claude_desktop_config.json
Configuración de Servidores de Desarrollo No Publicados
{
"mcpServers": {
"mcp-obsidian": {
"command": "uv",
"args": [
"--directory",
"<dir_to>/mcp-obsidian",
"run",
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<your_api_key_here>",
"OBSIDIAN_HOST": "<your_obsidian_host>",
"OBSIDIAN_PORT": "<your_obsidian_port>"
}
}
}
}
Configuración de Servidores Publicados
{
"mcpServers": {
"mcp-obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<YOUR_OBSIDIAN_API_KEY>",
"OBSIDIAN_HOST": "<your_obsidian_host>",
"OBSIDIAN_PORT": "<your_obsidian_port>"
}
}
}
}
Docker
Puedes ejecutar el servidor en un contenedor en lugar de instalar uv/Python localmente.
- Copia
.env.examplea.envy completa tu clave de API REST de Obsidian:
cp .env.example .env
Por defecto, OBSIDIAN_HOST está configurado en host.docker.internal, que se resuelve a
tu máquina host desde dentro del contenedor (funciona en Linux, Mac y Windows).
- Construye la imagen:
docker compose build
- Apunta tu cliente MCP al contenedor. Dado que MCP habla JSON-RPC sobre
stdio, el cliente debe ejecutarlo con stdin adjunto y sin pseudo-TTY — usa
docker compose run --rm -T, nodocker compose up:
{
"mcpServers": {
"mcp-obsidian": {
"command": "docker",
"args": [
"compose",
"-f",
"<dir_to>/mcp-obsidian/docker-compose.yml",
"run",
"--rm",
"-T",
"mcp-obsidian"
]
}
}
}
También puedes ejecutarlo manualmente para verificar que el contenedor se inicia:
docker compose run --rm -T mcp-obsidian
(permanecerá esperando un mensaje JSON-RPC en stdin; Ctrl+C para salir)
Desarrollo
Compilación
Para preparar el paquete para distribución:
- Sincroniza las dependencias y actualiza el archivo de bloqueo:
uv sync
Depuración
Dado que los servidores MCP se ejecutan sobre stdio, la depuración puede ser desafiante. Para la mejor experiencia de depuración, recomendamos encarecidamente usar el Inspector MCP.
Puedes iniciar el Inspector MCP mediante npm con este comando:
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-obsidian run mcp-obsidian
Al iniciarse, el Inspector mostrará una URL a la que puedes acceder en tu navegador para comenzar a depurar.
También puedes observar los registros del servidor con este comando:
tail -n 20 -f ~/Library/Logs/Claude/mcp-server-mcp-obsidian.log