Inkdrop
Interactúa con la base de datos local de la aplicación de toma de notas Inkdrop a través de su API HTTP.
Documentación
Servidor MCP de Inkdrop
Un servidor Model Context Protocol para la API del Servidor HTTP Local de Inkdrop.
Instalación
Componentes
Herramientas
read-note: Recupera el contenido completo de la nota por su ID desde la base de datos.- Entradas requeridas:
noteId: El ID de la nota a recuperar. Se puede encontrar como_iden la documentación de la nota. Siempre comienza connote:.
- Entradas opcionales:
includeTemplate: Cuandotruey la nota tiene unsourceTemplateId, también recupera esa plantilla e incrusta su cuerpo (instrucciones de llenado y ejemplos) como un bloque de texto adicional. Predeterminado:false.
- Nota: Si la nota fue creada a partir de una plantilla, la respuesta incluye un enlace de recurso a su plantilla de origen, cuyo cuerpo contiene las instrucciones de llenado y ejemplos.
- Entradas requeridas:
read-backlinks: Recupera los enlaces inversos de una nota — las notas que enlazan a ella.- Entradas requeridas:
noteId: El ID de la nota para la cual buscar enlaces inversos. Siempre comienza connote:.
- Nota: Cada resultado se devuelve como un enlace de recurso (
inkdrop://note/<id>) que apunta a la nota referente. Los enlaces inversos se encuentran buscando el URI de enlace de la nota en todos los cuerpos de las notas.
- Entradas requeridas:
search-notes: Lista todas las notas que contienen una palabra clave dada.- Entradas requeridas:
keyword: Palabra clave para buscar.
- Nota: Los resultados incluyen cuerpos de notas truncados (200 caracteres). Usa
read-notepara obtener el contenido completo. - Admite calificadores de búsqueda avanzada como
book:,tag:,status:,title:, etc.
- Entradas requeridas:
list-notes: Lista todas las notas con condiciones especificadas.- Entradas requeridas:
bookId: El ID del cuaderno. Siempre comienza con 'book:'.
- Entradas opcionales:
tagIds: Un arreglo de IDs de etiquetas para filtrar. Cada uno comienza con 'tag:'.keyword: Palabra clave para filtrar notas.sort: Campo de ordenamiento (updatedAt,createdAtotitle). Predeterminado:updatedAt.descending: Invierte el orden de la salida. Predeterminado:true.
- Nota: Los resultados incluyen cuerpos de notas truncados (200 caracteres). Usa
read-notepara obtener el contenido completo.
- Entradas requeridas:
create-note: Crea una nueva nota en la base de datos.- Entradas requeridas:
bookId: El ID del cuaderno. Debe comenzar con 'book:' o ser 'trash'.title: El título de la nota.body: El contenido de la nota en Markdown.
- Entradas opcionales:
status: El estado de la nota (none,active,onHold,completed,dropped).tags: Un arreglo de IDs de etiquetas para asignar a la nota. Cada uno debe comenzar con 'tag:'.
- Entradas requeridas:
update-note: Actualiza una nota existente en la base de datos. Solo se actualizarán los campos que proporciones; los campos omitidos permanecen sin cambios.- Entradas requeridas:
_id: El ID de la nota. Debe comenzar con 'note:'._rev: El ID de revisión (token MVCC de CouchDB).
- Entradas opcionales:
bookId: El ID del cuaderno. Debe comenzar con 'book:' o ser 'trash'.title: El título de la nota.body: El contenido de la nota en Markdown.status: El estado de la nota (none,active,onHold,completed,dropped).tags: Un arreglo de IDs de etiquetas para asignar a la nota. Cada uno debe comenzar con 'tag:'.
- Entradas requeridas:
patch-note: Actualiza el cuerpo de una nota existente realizando un reemplazo exacto de cadena. Más eficiente queupdate-notepara ediciones pequeñas en notas grandes, ya que ahorra tokens. Primero debes leer la nota conread-notepara obtener el cuerpo actual.- Entradas requeridas:
_id: El ID de la nota. Debe comenzar con 'note:'._rev: El ID de revisión (token MVCC de CouchDB).old_string: El texto exacto a buscar en el cuerpo de la nota. Debe coincidir exactamente con una ocurrencia. Incluye suficiente contexto circundante para garantizar una coincidencia única.new_string: El texto para reemplazarold_string. Usa una cadena vacía para eliminar el texto coincidente.
- Entradas requeridas:
list-notebooks: Recupera una lista de todos los cuadernos.read-book: Recupera un solo cuaderno por su ID.- Entradas requeridas:
bookId: El ID del cuaderno. Debe comenzar con 'book:'.
- Entradas requeridas:
create-book: Crea un nuevo cuaderno en la base de datos.- Entradas requeridas:
name: El nombre del cuaderno.
- Entradas opcionales:
parentBookId: El ID del cuaderno padre. Debe comenzar con 'book:'. Omítelo para crear el cuaderno en el nivel raíz.
- Entradas requeridas:
update-book: Actualiza un cuaderno existente en la base de datos. Solo se actualizarán los campos que proporciones; los campos omitidos permanecen sin cambios, por lo que no necesitas leer el cuaderno primero.- Entradas requeridas:
_id: El ID del cuaderno. Debe comenzar con 'book:'.
- Entradas opcionales:
_rev: El ID de revisión (token MVCC de CouchDB). Solo se necesita como protección de concurrencia optimista — pásalo para que la actualización falle ante una edición concurrente en conflicto.name: El nombre del cuaderno.parentBookId: El ID del cuaderno padre. Pasanullpara mover el cuaderno al nivel raíz.
- Entradas requeridas:
list-tags: Recupera una lista de todas las etiquetas.read-tag: Recupera una sola etiqueta por su ID.- Entradas requeridas:
tagId: El ID de la etiqueta. Debe comenzar con 'tag:'.
- Entradas requeridas:
create-tag: Crea una nueva etiqueta en la base de datos.- Entradas requeridas:
name: El nombre de la etiqueta.
- Entradas opcionales:
color: El tipo de color de la etiqueta (default,red,orange,yellow,olive,green,teal,blue,violet,purple,pink,brown,grey,black). Predeterminado:default.
- Entradas requeridas:
update-tag: Actualiza una etiqueta existente en la base de datos. Solo se actualizarán los campos que proporciones; los campos omitidos permanecen sin cambios, por lo que no necesitas leer la etiqueta primero.- Entradas requeridas:
_id: El ID de la etiqueta. Debe comenzar con 'tag:'.
- Entradas opcionales:
_rev: El ID de revisión (token MVCC de CouchDB). Solo se necesita como protección de concurrencia optimista — pásalo para que la actualización falle ante una edición concurrente en conflicto.name: El nombre de la etiqueta.color: El tipo de color de la etiqueta. Omítelo para mantener el color actual de la etiqueta.
- Entradas requeridas:
create-file: Crea un nuevo archivo adjunto en la base de datos desde un archivo de imagen local o desde datos de imagen en base64. Devuelve el Markdown para incrustar el adjunto en el cuerpo de una nota.- Entradas requeridas: exactamente una de
filePath: Ruta absoluta a un archivo de imagen local para adjuntar. Preferida — mantiene los bytes de la imagen fuera de la conversación.data: Datos de imagen codificados en base64, sin prefijo de URIdata:.
- Entradas opcionales:
name: El nombre del archivo. Se establece por defecto al nombre del archivo defilePath, oimage.<ext>cuando se proporcionadata.contentType: El tipo MIME (image/png,image/jpeg,image/jpg,image/svg+xml,image/gif,image/heic,image/heif). Se infiere de la extensión defilePathcuando se omite, por lo que es requerido condata.publicIn: Un arreglo de IDs de notas donde se incluye el adjunto. Cada uno debe comenzar con 'note:'.
- Nota: Los adjuntos están limitados a 10MB.
- Entradas requeridas: exactamente una de
read-file: Recupera un archivo adjunto por su ID. Devuelve los metadatos del archivo, y la imagen en sí cuando es PNG, JPEG o GIF.- Entradas requeridas:
fileId: El ID del adjunto. Debe comenzar con 'file:'.
- Entradas opcionales:
outputPath: Ruta absoluta para escribir el adjunto. Cuando se proporciona, el archivo se guarda allí y sus bytes no se devuelven en línea. Requerido para obtener adjuntos SVG, HEIC y HEIF, que no se pueden mostrar en línea.includeImage: Si devolver la imagen junto con los metadatos. Predeterminado:true. Establécelo enfalsepara obtener solo los metadatos de un adjunto grande.
- Entradas requeridas:
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 a través de npm con este comando:
npx @modelcontextprotocol/inspector "./dist/index.js"
Asegúrate de que las variables de entorno estén configuradas correctamente.
Al iniciarse, el Inspector mostrará una URL a la que puedes acceder en tu navegador para comenzar a depurar.
También puedes ver los registros del servidor con este comando:
tail -n 20 -f ~/Library/Logs/Claude/mcp-server-inkdrop.log