Kioku

Kioku

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

Category
Visit Server

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured