Kioku

Kioku

An MCP server that enables AI agents to read, search, and write to your Obsidian vault.

Category
访问服务器

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:

  1. Instalar dependencias y compilar el plugin: En la raíz del proyecto, ejecuta:

    pnpm install
    pnpm build:plugin
    

    Esto generará los archivos main.js, manifest.json y styles.css en la carpeta src/obsidian-kioku-mcp/.

  2. Copiar los archivos a tu bóveda: Crea una carpeta llamada kioku dentro 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/
    
  3. 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选