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

  1. Configura un servidor HTTP local

  2. Agrega la configuración del servidor a Claude Desktop:

    • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "inkdrop": {
      "command": "npx",
      "args": ["-y", "@inkdropapp/mcp-server"],
      "env": {
        "INKDROP_LOCAL_SERVER_URL": "http://localhost:19840",
        "INKDROP_LOCAL_USERNAME": "your-local-server-username",
        "INKDROP_LOCAL_PASSWORD": "your-local-server-password"
      }
    }
  }
}

Componentes

Herramientas

  1. 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 _id en los documentos de la nota. Siempre comienza con note:.
    • Entradas opcionales:
      • includeTemplate: Cuando true y la nota tiene un sourceTemplateId, 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 se creó 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.
  2. 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 con note:.
    • 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.
  3. 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-note para obtener el contenido completo.
    • Admite calificadores de búsqueda avanzada como book:, tag:, status:, title:, etc.
  4. 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 ordenación (updatedAt, createdAt o title). Predeterminado: updatedAt.
      • descending: Invierte el orden de salida. Predeterminado: true.
    • Nota: Los resultados incluyen cuerpos de notas truncados (200 caracteres). Usa read-note para obtener el contenido completo.
  5. 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:'.
  6. 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:'.
  7. patch-note: Actualiza el cuerpo de una nota existente realizando un reemplazo exacto de cadena. Más eficiente que update-note para ediciones pequeñas en notas grandes, ya que ahorra tokens. Primero debes leer la nota con read-note para 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 para 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 reemplazar old_string. Usa una cadena vacía para eliminar el texto coincidente.
  8. list-notebooks: Recupera una lista de todos los cuadernos.
  9. read-book: Recupera un solo cuaderno por su ID.
    • Entradas requeridas:
      • bookId: El ID del cuaderno. Debe comenzar con 'book:'.
  10. list-tags: Recupera una lista de todas las etiquetas.
  11. read-tag: Recupera una sola etiqueta por su ID.
    • Entradas requeridas:
      • tagId: El ID de la etiqueta. Debe comenzar con 'tag:'.
  12. 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.
  13. update-tag: Actualiza una etiqueta existente en la base de datos.
    • Entradas requeridas:
      • _id: El ID de la etiqueta. Debe comenzar con 'tag:'.
      • _rev: El ID de revisión (token MVCC de CouchDB).
      • name: El nombre de la etiqueta.
    • Entradas opcionales:
      • color: El tipo de color de la etiqueta. Predeterminado: default.

Depuración

Dado que los servidores MCP se ejecutan a través de 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