Kioku
An MCP server that enables AI agents to read, search, and write to your Obsidian vault.
README
Kioku — MCP Server for Obsidian
Kioku (記憶) significa "memoria" en japonés.
Kioku es un servidor MCP (Model Context Protocol) que permite a agentes de IA como Claude Code y Antigravity CLI leer, buscar y escribir en tu bóveda de Obsidian de manera nativa, rápida y privada.
¿Qué hace Kioku?
- 🔍 Búsqueda full-text en todas tus notas por contenido, tags y título
- 📖 Lectura y escritura de notas directamente desde el agente de IA
- 🏷️ Gestión de tags y metadatos (frontmatter YAML)
- 🔗 Navegación de wikilinks — backlinks y enlaces salientes
- 🖥️ Bridge con Obsidian — el agente puede abrir notas en la app (opcional)
- ⚡ Inicio bajo demanda — no consume recursos cuando no se usa
Arquitectura
Agente de IA (Claude Code / agy)
│ stdio (MCP Protocol)
▼
Kioku.Mcp.Server (C# .NET 10)
│
├── VaultIndexService (FileSystemWatcher + índice invertido)
├── NoteQueryTools (read_note, search_notes, list_notes, ...)
├── NoteCommandTools (create_note, append_to_note, ...)
└── UtilityTools (ping, rebuild_index, ...)
│
│ WebSocket (opcional, solo si Obsidian está abierto)
▼
Plugin Obsidian (TypeScript)
│ Obsidian API
▼
Obsidian App
Inicio Rápido (Uso Local)
Requisitos
- .NET 10 SDK
- Obsidian instalado con tu bóveda de notas
- Ollama (opcional, necesario para búsqueda semántica con
nomic-embed-text)
1. Compilación del Servidor
Para el mejor rendimiento, se recomienda compilar Kioku como un único archivo ejecutable autónomo (Self-Contained). Así no dependerás de la ejecución mediante el SDK de dotnet.
Ejecuta el comando correspondiente a tu sistema operativo desde la raíz del proyecto:
- Linux:
dotnet publish src/Kioku.Mcp.Server/Kioku.Mcp.Server.csproj -c Release -r linux-x64 --self-contained -p:PublishSingleFile=true - Windows (PowerShell):
dotnet publish src/Kioku.Mcp.Server/Kioku.Mcp.Server.csproj -c Release -r win-x64 --self-contained -p:PublishSingleFile=true - macOS (Intel):
dotnet publish src/Kioku.Mcp.Server/Kioku.Mcp.Server.csproj -c Release -r osx-x64 --self-contained -p:PublishSingleFile=true - macOS (Apple Silicon):
dotnet publish src/Kioku.Mcp.Server/Kioku.Mcp.Server.csproj -c Release -r osx-arm64 --self-contained -p:PublishSingleFile=true
Esto generará el binario ejecutable Kioku.Mcp.Server (o Kioku.Mcp.Server.exe en Windows) en el directorio:
src/Kioku.Mcp.Server/bin/Release/net10.0/<runtime>/publish/
2. Registro en Clientes MCP (Claude Code, Cursor, VS Code, etc.)
Los clientes MCP ejecutarán este binario en segundo plano utilizando el protocolo stdio.
Para Claude Code (.mcp.json)
Añade lo siguiente al archivo .mcp.json en la raíz de tu espacio de trabajo o directorio raíz del agente:
{
"mcpServers": {
"kioku": {
"command": "/ruta/absoluta/a/kioku/src/Kioku.Mcp.Server/bin/Release/net10.0/<runtime>/publish/Kioku.Mcp.Server",
"env": {
"KIOKU_VAULT_PATH": "/ruta/absoluta/a/tu/boveda",
"KIOKU_OLLAMA_URL": "http://localhost:11434",
"KIOKU_EMBEDDING_MODEL": "nomic-embed-text"
}
}
}
}
Para Claude Desktop (claude_desktop_config.json)
Agrega la configuración en tu archivo de configuración de Claude Desktop (ubicado típicamente en %APPDATA%/Claude/claude_desktop_config.json en Windows o ~/Library/Application Support/Claude/claude_desktop_config.json en macOS):
{
"mcpServers": {
"kioku": {
"command": "/ruta/absoluta/a/kioku/src/Kioku.Mcp.Server/bin/Release/net10.0/<runtime>/publish/Kioku.Mcp.Server",
"env": {
"KIOKU_VAULT_PATH": "/ruta/absoluta/a/tu/boveda",
"KIOKU_OLLAMA_URL": "http://localhost:11434",
"KIOKU_EMBEDDING_MODEL": "nomic-embed-text"
}
}
}
}
3. Instalación del Plugin de Obsidian (Opcional)
[!NOTE] El plugin de Obsidian solo es necesario si deseas usar las herramientas del Bridge de la interfaz de usuario (como abrir notas automáticamente en el editor, ver qué nota está activa o ejecutar comandos de Obsidian). Todas las demás funciones de lectura, escritura y búsqueda semántica funcionan directamente sobre los archivos, incluso con Obsidian cerrado.
Para instalar el plugin localmente en tu Obsidian:
-
Instalar dependencias y compilar el plugin: En la raíz del proyecto, ejecuta:
pnpm install pnpm build:pluginEsto generará los archivos
main.js,manifest.jsonystyles.cssen la carpetasrc/obsidian-kioku-mcp/. -
Copiar los archivos a tu bóveda: Crea una carpeta llamada
kiokudentro de la carpeta oculta de complementos de tu bóveda de Obsidian (.obsidian/plugins/):# Crear directorio del plugin mkdir -p /ruta/a/tu/boveda/.obsidian/plugins/kioku # Copiar archivos compilados cp src/obsidian-kioku-mcp/{main.js,manifest.json,styles.css} /ruta/a/tu/boveda/.obsidian/plugins/kioku/ -
Habilitar el plugin en Obsidian:
- Abre Obsidian.
- Ve a Ajustes -> Complementos de la comunidad (Community Plugins).
- Haz clic en Recargar (Reload icon) para detectar el nuevo plugin.
- Activa el interruptor junto a Kioku MCP Bridge.
Variables de entorno
| Variable | Requerida | Descripción | Default |
|---|---|---|---|
KIOKU_VAULT_PATH |
✅ | Ruta absoluta a la bóveda de Obsidian | — |
KIOKU_OLLAMA_URL |
❌ | URL base del cliente Ollama local | http://localhost:11434 |
KIOKU_EMBEDDING_MODEL |
❌ | Modelo de Ollama utilizado para embeddings | nomic-embed-text |
KIOKU_MAX_RESULTS |
❌ | Máximo de resultados de búsqueda | 20 |
KIOKU_OBSIDIAN_PORT |
❌ | Puerto del WebSocket bridge con Obsidian | 7765 |
MCP Tools Disponibles (v2)
Consulta (Read-Only)
| Tool | Parámetros | Descripción |
|---|---|---|
ping |
— | Health check del servidor |
read_note |
note |
Lee el contenido completo de una nota |
list_notes |
folder? |
Lista todas las notas (o de una carpeta específica) |
search_notes |
query, max_results? |
Búsqueda full-text en toda la bóveda |
search_notes_semantic |
query, max_results?, min_score? |
Búsqueda semántica usando Ollama embeddings (requiere GPU local/Ollama) |
filter_notes |
tag?, status?, type?, date_from?, date_to? |
Filtra notas por tags, status, tipo, fecha |
get_note_metadata |
note |
Lee solo el frontmatter YAML de la nota |
get_backlinks |
note_name |
Notas que enlazan a una nota dada |
get_outgoing_links |
note |
Enlaces salientes de una nota dada |
get_vault_stats |
— | Estadísticas de la bóveda (conteo de notas, tags, carpetas) |
get_index_status |
— | Estado del índice en memoria y tiempos de indexación |
rebuild_index |
— | Re-indexar toda la bóveda y regenerar caché de embeddings |
Escritura
| Tool | Parámetros | Descripción |
|---|---|---|
create_note |
name, content, tags?, type?, status? |
Crea una nota nueva con frontmatter estructurado |
update_note_content |
note, content |
Reemplaza el cuerpo de la nota manteniendo frontmatter |
prepend_to_note |
note, content |
Inserta texto al inicio de la nota después del frontmatter |
append_to_note |
note, content, add_separator? |
Añade texto al final de una nota |
update_frontmatter |
note, tags?, status?, type? |
Actualiza o añade campos al frontmatter YAML |
add_tag |
note, tags |
Añade tags (separados por coma) |
remove_tag |
note, tags |
Remueve tags (separados por coma) |
move_note |
note, destination_folder |
Mueve una nota a otra carpeta |
rename_note |
note, new_name |
Cambia el nombre o ruta de la nota |
Obsidian UI Bridge
(Requiere la aplicación de Obsidian abierta y el plugin Kioku activado)
| Tool | Parámetros | Descripción |
|---|---|---|
open_note_in_obsidian |
note |
Abre y enfoca una nota en el editor de Obsidian |
get_active_note_in_obsidian |
— | Obtiene metadatos de la nota actualmente activa en el editor |
get_open_notes_in_obsidian |
— | Obtiene las notas en todas las pestañas actualmente abiertas |
trigger_obsidian_command |
command_id |
Ejecuta cualquier comando registrado en la paleta de Obsidian |
Hoja de Ruta
- v1 (actual): Transporte stdio, búsqueda full-text, lectura/escritura básica
- v2: HTTP-SSE (múltiples agentes), búsqueda semántica con Ollama, assets (Excalidraw, imágenes)
- v3: Native AOT, publicación en Obsidian Community Plugin Store
Ver docs/planning.md para el plan arquitectural completo.
Licencia
MIT — ver LICENSE
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。