Skip to main content

Vue d’ensemble des outils

Linkly AI expose neuf outils aux assistants IA via MCP (Model Context Protocol). Le cœur en est un flux de travail progressif d’accès aux documents :
Autour de lui gravitent trois outils de découvertelist_libraries (lister les bibliothèques de connaissances), explore (vue d’ensemble des collections de documents), find_paths (localiser des chemins de dossier par mot-clé pour alimenter le path_glob de search) — auxquels s’ajoutent list (énumérer un conteneur : les fichiers d’un dossier, une bibliothèque ou vos notes) et l’unique outil de notes : note_save (créer / modifier une note).

search

Rechercher des documents et trouver les résultats pertinents

outline

Consulter le sommaire du document pour comprendre sa structure

grep

Trouver des motifs de texte spécifiques par correspondance regex

read

Lire le contenu du document pour obtenir des informations détaillées

list_libraries

Lister les bibliothèques de connaissances et leurs nombres de documents

explore

Vue d’ensemble des thèmes et de la structure de la collection de documents

find_paths

Localiser des chemins de dossier par mot-clé pour alimenter le path_glob de search

list

Lister les entrées d’un conteneur — un dossier, une bibliothèque ou vos notes

note_save

Créer ou modifier une note, le seul outil d’écriture
À l’exception de note_save, tous ces outils sont en lecture seule : ils se contentent de lire vos documents, sans jamais rien y modifier. note_save n’écrit que dans le dossier des notes et il n’existe aucun outil de suppression : supprimer une note reste une action que vous seul pouvez faire depuis l’application. Recherche dans vos documents locaux indexés et retourne la liste des résultats les plus pertinents.

Paramètres

Si le modèle vectoriel est encore en cours de téléchargement, la recherche bascule automatiquement en mode mots-clés uniquement, sans impact sur l’utilisation.
À propos du filtrage et du tri par date :
  • Lorsque l’utilisateur fournit une fenêtre temporelle explicite (« le mois dernier », « en 2024 », « ces trois derniers mois »), utilisez modified_after / modified_before.
  • Lorsque l’utilisateur dit seulement « récent », « le plus récent », « le plus ancien » sans plage fixe, utilisez time_sort=newest ou oldest.
  • Les deux peuvent se combiner : « le plus ancien en 2024 » donne modified_after=2024-01-01 + modified_before=2024-12-31 + time_sort=oldest.
  • Pour une date relative (« le mois dernier »), lisez d’abord l’heure UTC actuelle depuis le champ [meta] now=... à la fin de toute réponse d’outil, puis calculez la date — voir Métadonnées de réponse ci-dessous.

Champs retournés

Chaque résultat de recherche contient les informations suivantes :

Exemples d’utilisation

Sommaire (outline)

Obtient le sommaire structuré et les métadonnées d’un ou plusieurs documents, permettant de comprendre rapidement la structure du document et de localiser les sections ciblées.

Paramètres

Quand utiliser le sommaire

La fonctionnalité de sommaire est optimale pour les PDF avec signets, les documents Markdown, DOCX, PowerPoint (PPTX) et EPUB. Elle est particulièrement efficace pour la lecture de documents volumineux et de livres. Le support du sommaire pour le texte brut et les PDF sans signets sera ajouté dans les itérations futures.

Exemples d’utilisation

Grep

Localise des lignes spécifiques au sein d’un seul document à l’aide d’un motif regex. Idéal pour les documents avec has_outline=false où le sommaire n’est pas disponible. Utilisez-le après search pour localiser les positions exactes de noms, dates, termes, identifiants ou tout motif, puis utilisez read avec offset pour voir le contexte complet. Fonctionne avec tous les types de documents (PDF, Markdown, DOCX, PPTX, EPUB, TXT, HTML). Pour rechercher dans plusieurs documents, appelez grep une fois par document.

Paramètres

Quand utiliser Grep vs Sommaire

Exemples d’utilisation

Lecture (read)

Lit le contenu d’un document avec positionnement par numéro de ligne et pagination, adapté à la lecture de sections spécifiques de documents longs. L’outil Read a un comportement cohérent avec celui du SDK Claude AI, garantissant des résultats optimaux avec divers modèles Agentic AI.

Paramètres

Lire des documents illustrés

Dans bien des documents — les notes Markdown et la documentation technique tout particulièrement — l’information décisive se trouve dans les illustrations. read résout les références d’images apparaissant dans la plage de lignes que vous êtes en train de lire vers les documents image correspondants déjà indexés, et les joint à la fin du résultat. image_text détermine ce qui est joint : full est soumis à un budget : 2 000 caractères au maximum par image, 20 000 caractères au total pour l’appel. Les images dépassant ce budget retombent automatiquement sur abstract, accompagnées de la marche à suivre pour les lire individuellement.
Repérez d’abord l’image utile avec le mode abstract par défaut, puis appelez read sur son seul doc_id : c’est nettement plus économe que de démarrer en full.

Format du contenu

L’outil Read retourne le contenu avec des numéros de ligne pour faciliter le référencement et le positionnement :

Stratégie de pagination

Pour les documents longs, il est recommandé de lire par blocs :
L’utilisation combinée avec le sommaire est encore plus efficace : localisez d’abord la plage de lignes de la section ciblée via le sommaire, puis utilisez read pour lire précisément cet intervalle.

Exemples d’utilisation

Lister les bibliothèques (list_libraries)

Liste toutes les bibliothèques de connaissances configurées par l’utilisateur, avec leurs descriptions et leurs nombres de documents.

Paramètres

Aucun paramètre requis.

Cas d’utilisation

  • Lorsque l’utilisateur demande « quelles bibliothèques ai-je ? »
  • Avant d’utiliser le paramètre library dans search, pour vérifier le nom d’une bibliothèque

Explorer (explore)

Obtient une vue d’ensemble de tous les documents indexés ou d’une bibliothèque spécifique. Retourne la distribution des types de documents, la structure des répertoires (avec le nombre de fichiers et la médiane du nombre de mots) et les mots-clés principaux (avec attribution de la source).

Paramètres

Cas d’utilisation

  • L’utilisateur souhaite savoir ce que contient sa base de connaissances ou sa collection de documents
  • L’utilisateur n’a pas de sujet de recherche spécifique et souhaite découvrir les thèmes et directions disponibles
  • L’assistant IA a besoin de comprendre l’échelle et la distribution thématique pour formuler des stratégies de recherche efficaces
Après l’exploration, utilisez les mots-clés et les noms de répertoires de la sortie comme pistes pour les requêtes search ultérieures.

Localisation de chemins (find_paths)

Effectue une correspondance approximative des mots-clés sur le champ chemin de fichier des documents indexés, agrège les correspondances au niveau du dossier et retourne les meilleurs candidats. Cet outil est positionné comme un complément de search : lorsque l’utilisateur nomme un conteneur (« dans mes notes Notion », « dans mon dossier de papiers Dropbox ») sans en connaître le chemin sur le disque, appelez d’abord find_paths pour découvrir le chemin réel, puis transmettez-le comme path_glob à search. Le nom réel du dossier sur le disque diffère souvent du nom utilisé par l’utilisateur (par exemple, un export peut résider sous Notion-Export-c58e430f... plutôt que simplement Notion), donc deviner directement un path_glob est fragile.

Paramètres

Champs retournés (mode JSON)

Comportement d’agrégation

  • Les fichiers dont les motifs ne correspondent qu’au segment du nom de fichier (sans correspondance dans un segment de répertoire) sont silencieusement écartés — c’est un outil de « recherche de dossiers », pas de « recherche de fichiers ». Si une requête ne renvoie aucun dossier candidat alors que des fichiers correspondants existent, repassez à un appel direct à search.
  • Chaque correspondance est regroupée par la position la moins profonde d’un motif dans le chemin, tronquée au prochain /. Ainsi local:///Users/me/Documents/Notion-Export-abc/workspace/page.md correspondant à Notion est agrégé sous .../Documents/Notion-Export-abc, peu importe la profondeur du fichier.

Quand l’utiliser

  • L’utilisateur nomme un conteneur avec un mot flou ou multilingue (« dans mes notes Notion », « dans mon dossier de papiers Dropbox », « dans ma sauvegarde de travail ») et vous ne connaissez pas le chemin réel
  • Avant search, pour déterminer la valeur de path_glob

Quand ne pas l’utiliser

  • Requêtes purement basées sur le contenu / le sujet (« trouve mes CV », « trouve les articles IA ») — appelez search directement ; sa recherche hybride couvre déjà titre, nom de fichier, contenu et chemin
  • Filtrage par type de fichier uniquement (« tous les PDF ») — appelez search avec path_glob="*.pdf" directement
  • Requêtes vagues sans intention de conteneur (« trouve les choses récentes ») — appelez search

Exemple d’utilisation

Lister (list)

Liste les entrées d’un conteneur, sans aucune correspondance plein texte — pour retrouver du contenu par mot-clé ou par le sens, utilisez search. Trois conteneurs sont pris en charge : folder (les fichiers indexés sous un répertoire du disque), library (les fichiers d’une bibliothèque) et notes (les fiches de notes locales). Répartition des rôles : explore = vue d’ensemble → find_paths = trouver un répertoire → list = lister les fichiers d’un conteneur connu → outline / read = lire le contenu. Le listage est un balayage récursif à plat de tout le sous-arbre — aucune arborescence n’est renvoyée ; pour descendre, suivez les chemins absolus des entrées ou passez par find_paths.

Paramètres

Champs retournés

Les entrées folder / library comportent : doc_id, title, le path absolu, doc_type, word_count, total_lines, has_outline, modified_at (millisecondes Unix ; le mtime du système de fichiers), keywords, snippet (null sauf si les extraits sont activés) et skip_reason — un skip_reason non nul signifie que le contenu est illisible : ne lui appliquez ni read ni grep. Servez-vous de total_lines + has_outline pour arbitrer entre outline et read. Pour les scopes locaux, total compte l’ensemble filtré complet ; une bibliothèque cloud peut renvoyer total: null quand le décompte complet est inconnu — dans tous les cas, paginez avec offset + has_more. Les entrées notes comportent : doc_id (transmissible à read / grep / outline), note_id et la version du moment (ces deux-là servent de jeton de verrou optimiste lors d’une modification via note_save), title, le chemin absolu, created_at / modified_at (millisecondes Unix), tags, les informations de source, ainsi que le snippet joint par défaut. La réponse comporte en outre un champ available_tags : les 50 tags les plus fréquents parmi l’ensemble des notes, directement réutilisables pour filtrer l’appel suivant via tags.
Pointeur README : uniquement lorsque vous listez avec un path explicite (scope folder ou library locale) et qu’un fichier de type README se trouve directement dans ce répertoire (pas dans un sous-répertoire), la réponse porte un pointeur readme de premier niveau. Les bibliothèques cloud n’en renvoient jamais. S’il est présent et que vous devez comprendre à quoi sert le dossier, lisez d’abord ce document.
Le système de fichiers d’abord (notes) : une note tout juste écrite apparaît immédiatement dans la liste, mais son doc_id vaut alors null et indexed vaut false (le nombre de mots et de lignes restent vides également) ; tout cela se complète une fois l’indexation passée. « Une note tout juste écrite figure dans la liste mais reste introuvable à la recherche » est donc un comportement normal, elle n’est pas perdue.title peut lui aussi valoir null : les notes dont le nom de fichier est généré automatiquement n’ont pas de titre exploitable ; il faut alors s’appuyer sur l’extrait, les tags et la date.

Bibliothèques cloud

folder ne comprend que les chemins de disque locaux. Pour lister une bibliothèque cloud, utilisez scope="library" avec library="cloud://<owner>/<slug>" (disponible avec --remote) et passez dans path un préfixe de répertoire relatif — exactement la forme que renvoie le find_paths cloud. Le préfixe s’applique à l’union de toutes les sources de la bibliothèque ; un préfixe inexistant est indiscernable d’un répertoire vide — sur la première page (offset=0), les deux renvoient total: 0, avec une indication si un path a été fourni. Le listage cloud diffère du local sur quelques points : sort="name" n’est pas pris en charge, skip_reason vaut toujours null, les extraits sont tronqués à environ 120 caractères et, au-delà de la première page, total peut valoir null — paginez avec has_more.

Exemples d’utilisation

Enregistrer une note (note_save)

Crée ou modifie une fiche de note Markdown locale. C’est le seul outil qui écrit, et il n’écrit que dans le dossier des notes ; les métadonnées YAML sont intégralement générées côté serveur, l’appelant n’a pas à s’en préoccuper.

Paramètres

Deux règles à connaître impérativement

Cette voie n’accepte que la part de Markdown que la barre d’outils de l’interface sait produire : paragraphes et sauts de ligne, gras, barré, listes ordonnées ou à puces, texte brut.Les titres, l’italique, les citations, le code, les liens, les tableaux, les listes de tâches, les images et le HTML brut sont rejetés, avec un NOTE_INVALID_INPUT en retour. Ce que vous écrivez vous-même dans l’interface n’est pas soumis à cette restriction.Les #tag présents dans le corps (hors code) sont les tags de la note : le corps est l’unique source de vérité, exactement comme lorsque vous écrivez dans l’éditeur de l’application. Pour retirer un tag, effacez son #tag ; le paramètre tags ne sait qu’ajouter. Les notes écrites par les versions antérieures, dont les tags ne figurent que dans le YAML, se réparent d’elles-mêmes : à la première modification par l’IA, les #tag manquants sont ajoutés au corps.
La bonne séquence est la suivante :
  1. list (scope="notes") pour obtenir note_id et version
  2. read(doc_id) pour lire le corps intégral actuel
  3. note_save avec mode="edit", note_id, base_version (la version qui vient d’être lue) et le corps complet révisé — gardez les #tag que vous voulez conserver, effacez ceux dont vous voulez vous débarrasser
Si base_version est périmé (la note a été modifiée entre-temps), un NOTE_VERSION_CONFLICT est retourné, accompagné du numéro de version réel — il faut alors relire, fusionner et réessayer, surtout pas écraser aveuglément.Chaque réponse en succès retourne le content effectif de la note (le serveur y a peut-être ajouté des #tag) ainsi que sa nouvelle version — toute modification ultérieure doit partir du content retourné, jamais de celui que vous avez envoyé. Une note pas encore indexée a un doc_id à null : c’est précisément ainsi que l’on modifie une note que l’on vient de créer. Ne réécrivez jamais une note entière sur la seule foi de son extrait.
Il n’existe aucun outil de suppression. Une note ne se supprime que depuis l’interface de l’application, par l’utilisateur.

Métadonnées de réponse

Chaque réponse réussie d’outil contient l’heure UTC actuelle, ce qui permet aux appelants de calculer des dates relatives (« le mois dernier », « cette année », « ces 30 derniers jours ») sans dépendre de la date de coupure d’entraînement du modèle.
  • Sortie Markdown : un bloc de pied de page à la fin de la réponse, formaté comme :
  • Sortie JSON : un objet _meta au niveau supérieur :
Les réponses d’erreur (isError: true) n’incluent pas ces métadonnées — le corps d’erreur transmet déjà la cause, et ajouter un horodatage diluerait le signal. Lorsque l’utilisateur utilise une date relative, lisez now depuis la réponse d’outil la plus récente, calculez la date ISO 8601 correspondante, puis transmettez-la à modified_after / modified_before de search.

Exemples de flux de travail

Flux de travail complet : via CLI

L’exemple suivant illustre comment effectuer une recherche documentaire complète via le CLI :

Flux de travail complet : via MCP

Lorsque l’assistant IA appelle les outils via le protocole MCP, le format des requêtes est le suivant :

Questions fréquentes

Linkly AI prend actuellement en charge les formats suivants :La transcription vocale de l’audio et de la vidéo est désactivée par défaut : ces fichiers sont bien enregistrés dans l’index et se retrouvent par leur nom, mais pour chercher « ce qui s’y dit », il faut d’abord activer Transcription audio et Transcription vidéo dans Paramètres → Index. Voir Paramètres d’indexation.
Si le document n’a pas de sommaire disponible (has_outline: false), vous pouvez :
  1. Utiliser directement l’outil read pour parcourir le contenu du document page par page
  2. Lire d’abord le début du document (200 lignes par défaut) pour avoir un aperçu du contenu, puis décider si vous souhaitez poursuivre la lecture
Flux recommandé :
  1. Consulter d’abord la structure du document via outline (si un sommaire est disponible)
  2. En fonction de la plage de lignes indiquée dans le sommaire, utiliser les paramètres offset et limit de read pour lire précisément les sections ciblées
  3. Lire au maximum 500 lignes à la fois, en ajustant offset pour paginer
Le port par défaut est 60606. Si ce port est occupé, l’application essaie automatiquement d’autres ports. Vous pouvez vérifier le port réellement utilisé dans les paramètres de Linkly AI Desktop.
Vous pouvez essayer :
  • Utiliser des mots-clés plus précis
  • Utiliser des descriptions en langage naturel (en exploitant la correspondance sémantique vectorielle)
  • Combiner mots-clés et synonymes, par exemple "authentication auth login sign-in"
  • Utiliser --type pour filtrer des types de documents spécifiques et affiner le champ de recherche