Visión general de herramientas
Linkly AI expone nueve herramientas a los asistentes de IA a través de MCP (Model Context Protocol). El núcleo es un flujo de trabajo progresivo de acceso a documentos:list_libraries (listar bibliotecas de conocimiento), explore (visión general de colecciones de documentos) y find_paths (localizar rutas de carpeta por palabra clave para alimentar el path_glob de search) — más list (enumerar un contenedor: los archivos de una carpeta, una biblioteca o sus notas) y la única herramienta de notas: note_save (crear o editar una nota).
search
Buscar documentos y encontrar resultados relevantes
outline
Ver el esquema del documento para comprender su estructura
grep
Encontrar patrones de texto específicos con coincidencia regex
read
Leer el contenido del documento para obtener información detallada
list_libraries
Listar las bibliotecas de conocimiento y sus cantidades de documentos
explore
Visión general de los temas y la estructura de la colección de documentos
find_paths
Localizar rutas de carpeta por palabra clave para alimentar el
path_glob de searchlist
Listar las entradas de un contenedor: una carpeta, una biblioteca o sus notas
note_save
Crear o editar una nota, la única herramienta de escritura
note_save, todas son herramientas de solo lectura: leen sus documentos, sin modificar nada. note_save solo puede escribir en el directorio de notas y no existe ninguna herramienta de borrado: las notas solo se eliminan desde la propia aplicación.
Búsqueda (search)
Busca en los documentos locales indexados y devuelve la lista de resultados más relevantes.Parámetros
Acerca del filtrado y ordenamiento por fecha:
- Cuando el usuario indique una ventana temporal explícita (“el mes pasado”, “en 2024”, “los últimos tres meses”), use
modified_after/modified_before. - Cuando el usuario solo dice “reciente”, “más reciente”, “más antiguo” sin un rango fijo, use
time_sort=newestuoldest. - Ambos pueden combinarse: “el más antiguo en 2024” es
modified_after=2024-01-01+modified_before=2024-12-31+time_sort=oldest. - Para fechas relativas (“el mes pasado”), lea primero la hora UTC actual desde el campo
[meta] now=...al final de cualquier respuesta de herramienta, luego calcule la fecha — vea Metadatos de respuesta más abajo.
Campos de respuesta
Cada resultado de búsqueda incluye la siguiente información:Ejemplos de uso
Esquema (outline)
Obtiene el esquema estructurado y los metadatos de uno o más documentos, ayudando a comprender rápidamente la estructura del documento y localizar las secciones objetivo.Parámetros
Cuándo usar el esquema
La función de esquema funciona mejor con PDF con marcadores, Markdown, DOCX, PowerPoint (PPTX) y EPUB. Es especialmente efectiva al leer documentos extensos y libros. El soporte de esquema para texto plano y PDF sin marcadores se añadirá en futuras iteraciones.
Ejemplos de uso
Grep
Localiza líneas específicas dentro de un solo documento mediante un patrón regex. Es ideal para documentos conhas_outline=false donde el esquema no está disponible. Utilícelo después de search para ubicar posiciones exactas de nombres, fechas, términos, identificadores o cualquier patrón, y luego use read con offset para ver el contexto completo. Funciona con todos los tipos de documentos (PDF, Markdown, DOCX, PPTX, EPUB, TXT, HTML). Para buscar en múltiples documentos, llame a grep una vez por documento.
Parámetros
Cuándo usar Grep vs Esquema
Ejemplos de uso
Lectura (read)
Lee el contenido del documento con posicionamiento por número de línea y paginación, ideal para leer partes específicas de documentos extensos. El comportamiento de la herramienta Read es consistente con el del SDK de Claude AI, lo que garantiza resultados óptimos en diversos modelos de IA agéntica.Parámetros
Leer documentos con ilustraciones
En muchos documentos (sobre todo notas en Markdown y documentación técnica) la información clave está en las ilustraciones.read resuelve las referencias a imágenes que aparecen dentro del rango de líneas que está leyendo hacia los documentos de imagen ya indexados, y las adjunta al final del resultado. image_text controla cuánto se adjunta:
full tiene límites de presupuesto: 2000 caracteres como máximo por imagen y 20 000 caracteres en total por llamada. Las imágenes que se pasen del presupuesto bajan automáticamente a abstract, con una indicación de cómo leerlas por separado.
Formato de contenido
La herramientaRead devuelve contenido con números de línea para facilitar la referencia y el posicionamiento:
Estrategia de paginación
Para documentos extensos, se recomienda la lectura por bloques:read para leer con precisión el contenido de ese intervalo.
Ejemplos de uso
Listar bibliotecas (list_libraries)
Lista todas las bibliotecas de conocimiento configuradas por el usuario, junto con sus descripciones y cantidades de documentos.Parámetros
No se requieren parámetros.Casos de uso
- Cuando el usuario pregunta “¿qué bibliotecas tengo?”
- Antes de utilizar el parámetro
libraryensearch, para verificar el nombre de una biblioteca
Explorar (explore)
Obtiene una visión panorámica de todos los documentos indexados o de una biblioteca específica. Devuelve la distribución de tipos de documentos, la estructura de directorios (con recuentos de archivos y medianas de cantidad de palabras) y las palabras clave principales (con atribución de origen).Parámetros
Casos de uso
- El usuario desea saber qué contiene su base de conocimiento o colección de documentos
- El usuario no tiene un tema de búsqueda específico y desea descubrir temas y direcciones disponibles
- El asistente de IA necesita comprender la escala y la distribución temática para formular estrategias de búsqueda efectivas
search posteriores.
Localización de rutas (find_paths)
Realiza una coincidencia aproximada de palabras clave contra el campo ruta de archivo de los documentos indexados, agrega las coincidencias a nivel de carpeta y devuelve los mejores candidatos. Está posicionada como una herramienta auxiliar desearch: cuando el usuario nombra un contenedor (“en mis notas de Notion”, “en mi carpeta de papers de Dropbox”) sin conocer su ruta en el disco, llame primero a find_paths para descubrir la ruta real, y luego pásela como path_glob a search.
El nombre real de la carpeta en el disco a menudo difiere del nombre coloquial del usuario (por ejemplo, una exportación puede residir en Notion-Export-c58e430f... en lugar de simplemente Notion), por lo que adivinar directamente un path_glob es frágil.
Parámetros
Campos de respuesta (modo JSON)
Comportamiento de agregación
- Los archivos cuyos patrones solo coinciden con el segmento de nombre de archivo (sin coincidencia en algún segmento de directorio) se descartan silenciosamente — esta es una herramienta para “encontrar carpetas”, no para “encontrar archivos”. Si una consulta no devuelve carpetas candidatas a pesar de que existan archivos coincidentes, recurra a llamar
searchdirectamente. - Cada coincidencia se agrupa por la posición menos profunda de cualquier patrón en la ruta, truncada en el siguiente
/. Asílocal:///Users/me/Documents/Notion-Export-abc/workspace/page.mdcoincidente conNotionse agrega bajo.../Documents/Notion-Export-abc, sin importar cuán profundo viva el archivo.
Cuándo usarla
- El usuario nombra un contenedor con una palabra ambigua o multilingüe (“en mis notas de Notion”, “en mi carpeta de papers de Dropbox”, “en mi respaldo de trabajo”) y no conoce la ruta real
- Antes de
search, para determinar el valor depath_glob
Cuándo no usarla
- Consultas puramente de contenido / tema (“encuentra mis CV”, “encuentra papers de IA”) — llame
searchdirectamente; su búsqueda híbrida ya cubre título, nombre de archivo, contenido y ruta - Filtrado solo por tipo de archivo (“todos los PDF”) — llame
searchconpath_glob="*.pdf"directamente - Consultas vagas sin intención de contenedor (“encuentra cosas recientes”) — llame
search
Ejemplo de uso
Listar (list)
Lista las entradas de un contenedor, sin hacer coincidencia de texto completo: para buscar contenido por palabra clave o por significado, usesearch. Se admiten tres contenedores: folder (archivos indexados bajo un directorio del disco), library (los archivos de una biblioteca) y notes (las notas locales en forma de tarjeta).
Reparto de papeles entre herramientas: explore = visión global → find_paths = encontrar un directorio → list = listar los archivos de un contenedor conocido → outline / read = leer el contenido. El listado es un barrido recursivo plano de todo el subárbol — no se devuelve ningún árbol de directorios; para profundizar, siga las rutas absolutas de las entradas o use find_paths.
Parámetros
Campos de respuesta
Las entradas defolder / library traen: doc_id, title, path absoluta, doc_type, word_count, total_lines, has_outline, modified_at (milisegundos Unix; el mtime del sistema de archivos), keywords, snippet (null salvo que los extractos estén activados) y skip_reason — un skip_reason no nulo significa que el contenido no es legible, así que no le haga read / grep. Use total_lines + has_outline para decidir entre outline y read. En los ámbitos locales total cuenta todo el conjunto filtrado; una biblioteca en la nube puede devolver total: null cuando el recuento completo se desconoce — en cualquier caso, pagine con offset + has_more.
Las entradas de notes traen: doc_id (que puede pasarse a read / grep / outline), note_id y la version actual (ambos son las credenciales de bloqueo optimista que necesita note_save para editar), title, ruta absoluta, created_at / modified_at (milisegundos Unix), tags, información de origen y el snippet que se adjunta por defecto. La respuesta incluye además available_tags: las 50 etiquetas más usadas entre todas las notas, listas para aprovecharlas como filtro tags en la siguiente llamada.
Puntero README: solo cuando se lista con un
path explícito (scope folder o una library local) y un archivo de tipo README está directamente en ese directorio (no en un subdirectorio), la respuesta trae un puntero readme de nivel superior. Las bibliotecas en la nube nunca lo devuelven. Si está presente y necesita entender para qué sirve la carpeta, lea antes ese documento.Primero el sistema de archivos (notes): una nota recién escrita aparece de inmediato en la lista, pero con
doc_id a null e indexed a false (el número de palabras y de líneas también vienen vacíos) hasta que termine la indexación. Por eso es normal que «una nota recién escrita se liste pero no se encuentre al buscar»: no se ha perdido.title también puede ser null: las notas cuyo nombre de archivo se generó automáticamente no tienen un título aprovechable, así que en ese caso hay que identificarlas por el extracto, las etiquetas y las fechas.Bibliotecas en la nube
folder solo entiende rutas de disco locales. Para listar una biblioteca en la nube, use scope="library" con library="cloud://<owner>/<slug>" (disponible con --remote) y pase en path un prefijo de directorio relativo — exactamente la forma que devuelve el find_paths de la nube. El prefijo se aplica a la unión de todas las fuentes de la biblioteca; un prefijo inexistente no puede distinguirse de un directorio vacío — en la primera página (offset=0) ambos devuelven total: 0, con una pista si se pasó un path.
El listado en la nube difiere del local en algunos puntos: sort="name" no está disponible, skip_reason es siempre null, los extractos se recortan a unos 120 caracteres y, pasada la primera página, total puede ser null — pagine con has_more.
Ejemplos de uso
Guardar notas (note_save)
Crea o edita una nota local en formato Markdown. Es la única herramienta que escribe, y solo puede escribir en el directorio de notas; los metadatos YAML los genera el servidor por completo, así que quien llama no tiene que ocuparse de ellos.Parámetros
Dos reglas que hay que conocer
El formato del texto es una lista blanca, no vale cualquier cosa
El formato del texto es una lista blanca, no vale cualquier cosa
Por esta vía solo se acepta la parte de Markdown que la barra de herramientas de la interfaz es capaz de producir: párrafos y saltos de línea, negrita, tachado, listas ordenadas y sin ordenar, y texto plano.Los encabezados, la cursiva, las citas, el código, los enlaces, las tablas, las listas de tareas, las imágenes y el HTML suelto se rechazan con
NOTE_INVALID_INPUT. Cuando escribe usted a mano en la aplicación no tiene esta limitación.Los #tag que aparecen en el texto (fuera del código) son las etiquetas de la nota: el texto es la única fuente de verdad, igual que cuando escribe usted en el editor de la aplicación. Para quitar una etiqueta, elimine su #tag; el parámetro tags solo sirve para añadir. Las notas escritas por versiones anteriores, con las etiquetas únicamente en el YAML, se reparan solas: en la primera edición de la IA se completan en el texto los #tag que falten.Editar exige un ciclo de bloqueo optimista (CAS)
Editar exige un ciclo de bloqueo optimista (CAS)
El orden correcto para editar es:
list(conscope="notes") para obtenernote_idyversionread(doc_id)para leer el texto completo actualnote_saveconmode="edit",note_id,base_version(laversionrecién leída) y el texto completo ya modificado: deje los#tagque quiera conservar y borre los que quiera quitar
base_version ha caducado (porque la nota se modificó entretanto), se devuelve NOTE_VERSION_CONFLICT junto con el número de versión real: hay que releer, fusionar y reintentar, nunca sobrescribir a ciegas.Cada respuesta correcta devuelve el content efectivo de la nota (puede que el servidor haya añadido algún #tag) y su nueva version: cualquier edición posterior debe partir del content devuelto, nunca del que usted envió. Las notas que todavía no se han indexado tienen doc_id a null, así que esta es además la manera de editar una nota recién creada. Nunca reescriba una nota entera basándose solo en el extracto.Metadatos de respuesta
Cada respuesta exitosa de herramienta lleva la hora UTC actual, lo que permite a quien llama calcular fechas relativas (“el mes pasado”, “este año”, “los últimos 30 días”) sin depender de la fecha de corte de entrenamiento del modelo.-
Salida Markdown: un bloque de pie de página al final de la respuesta, formateado como:
-
Salida JSON: un objeto
_metade nivel superior:
isError: true) no incluyen estos metadatos — el cuerpo del error ya transmite la causa, y agregar una marca de tiempo solo diluiría la señal.
Cuando el usuario use una fecha relativa, lea now desde la respuesta de herramienta más reciente, calcule la fecha ISO 8601 correspondiente, y pásela a modified_after / modified_before de search.
Ejemplos de flujo de trabajo
Flujo de trabajo completo: vía CLI
El siguiente ejemplo demuestra cómo realizar una búsqueda completa de documentos mediante CLI:Flujo de trabajo completo: vía MCP
Cuando el asistente de IA invoca las herramientas a través del protocolo MCP, el formato de solicitud es el siguiente:Preguntas frecuentes
¿Qué formatos de documento son compatibles?
¿Qué formatos de documento son compatibles?
Linkly AI actualmente es compatible con los siguientes formatos:
La transcripción de voz del audio y el vídeo está desactivada por defecto: estos archivos entran igualmente en el índice y se encuentran por su nombre, pero para poder buscar «lo que se dice dentro» hay que activar antes Transcripción de audio y Transcripción de vídeo en Ajustes → Índice. Más detalles en Ajustes de indexación.
¿Qué hacer si el esquema no está disponible?
¿Qué hacer si el esquema no está disponible?
Si el documento no tiene un esquema disponible (
has_outline: false), puede:- Usar directamente la herramienta
readpara navegar por el contenido del documento página por página - Leer primero el inicio del documento (200 líneas por defecto) para tener una idea general del contenido antes de decidir si continuar leyendo
¿Cómo manejar documentos extensos?
¿Cómo manejar documentos extensos?
Flujo recomendado:
- Primero, comprender la estructura del documento a través de
outline(si tiene esquema) - Según el rango de líneas del esquema, usar los parámetros
offsetylimitdereadpara leer con precisión las secciones objetivo - Leer como máximo 500 líneas por vez, paginando mediante el ajuste de
offset
¿Cuál es el puerto predeterminado del servicio MCP?
¿Cuál es el puerto predeterminado del servicio MCP?
El puerto predeterminado es 60606. Si ese puerto está ocupado, la aplicación intentará automáticamente otros puertos. Puede consultar el puerto en uso en la configuración de Linkly AI Desktop.
¿Qué hacer si los resultados de búsqueda no son precisos?
¿Qué hacer si los resultados de búsqueda no son precisos?
Puede intentar:
- Usar palabras clave más precisas
- Usar descripciones en lenguaje natural (aprovechando la coincidencia semántica vectorial)
- Combinar palabras clave y sinónimos, como
"authentication auth login sign-in" - Usar
--typepara filtrar tipos de documentos específicos y reducir el alcance de la búsqueda

