Обзор
Типичный процесс:Search
Параметры
Фильтрация и сортировка по времени
- Для явного интервала — «в прошлом месяце», «за 2024 год» — передавайте
modified_afterиmodified_before. - Для относительного порядка без интервала — «последний» или «самый ранний» — используйте
time_sort=newestлибоoldest. - Их можно сочетать: «самый ранний за 2024 год» означает границы
2024-01-01и2024-12-31плюсtime_sort=oldest. - Для относительной даты сначала возьмите текущее UTC-время из
[meta] now=...в ответе инструмента, затем вычислите границы.
Поля ответа
Outline
Принимает один или несколькоdoc_id и возвращает заголовки и диапазоны строк. Используйте перед read для длинных структурированных документов; для точной строки лучше grep.
Параметры
Когда использовать
Outline лучше всего работает с PDF, имеющими закладки, а также с Markdown, DOCX, PPTX и EPUB. Для простого текста и PDF без закладок поддержка пока ограничена.
Grep
Ищет регулярное выражение в одном выбранном документе. Это лучший способ найти имя, дату, термин или идентификатор, особенно приhas_outline=false; для нескольких документов вызовите инструмент отдельно для каждого.
Параметры
Grep или Outline
outline, когда нужна структура, и grep, когда известна фраза или шаблон.
Read
Возвращает текст одного документа с номерами строк и пагинацией.Параметры
Документы с изображениями
Ссылки на изображения внутри запрошенного диапазона разрешаются в отдельные проиндексированные документы и прикладываются к ответу:
Для
full действует бюджет: 2 000 символов на изображение и 20 000 на вызов. Превысившие лимит изображения автоматически переходят в abstract с подсказкой, как прочитать их отдельно.
Формат
Постраничная стратегия
List Libraries
Показывает доступные локальные и облачные библиотеки, их идентификаторы и основные метаданные. Параметры не требуются. Вызывайте инструмент, когда пользователь спрашивает, какие у него есть библиотеки, либо перед передачейlibrary в search, чтобы проверить имя.
Explore
Даёт обзор всех проиндексированных документов или одной библиотеки: распределение типов, структуру каталогов с числом файлов и медианным числом слов, а также главные ключевые слова с указанием источников.Параметры
Используйте
explore, когда пользователь хочет узнать состав базы, ещё не сформулировал тему поиска или агенту нужно оценить масштаб и распределение тем. Имена каталогов и ключевые слова из ответа используйте как подсказки для последующего search.
Find Paths (find_paths)
Нечётко сопоставляет ключевые слова с полем пути, агрегирует совпадения по каталогам и возвращает лучшие кандидаты. Это вспомогательный инструмент для search: когда пользователь называет контейнер («в моих заметках Notion»), но реальный путь неизвестен, сначала найдите его здесь.
Параметры
Поля JSON-ответа
Как работает агрегация
- Файлы, где шаблон совпал только с именем файла, отбрасываются: инструмент ищет каталоги, а не файлы. Если каталогов нет, но подходящие файлы могут существовать, вызовите
searchнапрямую. - Совпадение группируется по самой неглубокой позиции шаблона в пути и обрезается на следующем
/. Поэтому глубокий файл внутриNotion-Export-abcбудет агрегирован в этот корневой каталог.
search с *.pdf) или расплывчатого запроса без намерения выбрать каталог.
List (list)
Перечисляет элементы контейнера без полнотекстового поиска. Области: folder — файлы под каталогом, library — одна библиотека, notes — локальные карточки. Это плоский рекурсивный список всего поддерева, а не дерево каталогов.
Границы инструментов: explore даёт общий обзор; find_paths находит каталог; list перечисляет содержимое уже известного контейнера; outline и read читают документ.
Параметры
Поля ответа
Элементыfolder/library содержат doc_id, title, абсолютный path, doc_type, word_count, total_lines, has_outline, modified_at в миллисекундах Unix, keywords, необязательный snippet и skip_reason. Непустой skip_reason означает, что содержимое нельзя передавать в read или grep. Для локальной области total — полный размер; в облаке он может быть null, поэтому ориентируйтесь на offset и has_more.
Элементы notes содержат doc_id, note_id, актуальную version для CAS-редактирования, заголовок, абсолютный путь, created_at, modified_at, теги, источник и сниппет. available_tags содержит до 50 самых частых тегов.
Если для локального
folder или library задан явный path и непосредственно в нём лежит README-файл, верхний уровень ответа содержит указатель readme. При необходимости сначала прочитайте его. Облачные библиотеки этот указатель не возвращают.Новая заметка появляется в списке сразу, но до индексирования имеет
doc_id: null, indexed: false и пустые счётчики. Это ожидаемо. title также может быть null; тогда ориентируйтесь на сниппет, теги и время.Облачные библиотеки
folder принимает только локальные пути. Для облака используйте scope="library", полный cloud://<owner>/<slug> и относительный path из облачного find_paths. Несуществующий префикс неотличим от пустого каталога: на первой странице оба дают total: 0, но при переданном пути ответ содержит подсказку. В облаке нет sort="name", skip_reason всегда null, сниппеты ограничены примерно 120 символами, а total после первой страницы может быть null.
Save Note (note_save)
Создаёт или редактирует локальную карточку Markdown. Это единственный инструмент записи, и он может писать только в папку Notes. YAML-метаданные создаются сервером, поэтому вызывающая сторона не должна формировать их самостоятельно.
Параметры
Два обязательных правила
Формат тела задаётся списком разрешённых элементов
Формат тела задаётся списком разрешённых элементов
Этот путь принимает только Markdown, который может создать панель редактора: абзацы и переносы, жирный и зачёркнутый текст, нумерованные и маркированные списки и обычный текст.Заголовки, курсив, цитаты, код, ссылки, таблицы, списки задач, изображения и сырой HTML отклоняются с
NOTE_INVALID_INPUT. При ручном редактировании в приложении этого ограничения нет.Встроенные #tags вне кода являются тегами заметки, а тело — единственным источником истины. Чтобы удалить тег, удалите его #token; параметр tags умеет только добавлять. Старые заметки, где теги были лишь в YAML, исправляются при первом редактировании: отсутствующие токены добавляются в тело.Редактирование обязательно проходит цикл оптимистической блокировки (CAS)
Редактирование обязательно проходит цикл оптимистической блокировки (CAS)
Правильная последовательность:
- Вызовите
listсscope="notes", получитеnote_idиversion - Вызовите
read(doc_id)и получите полное текущее тело - Вызовите
note_saveсmode="edit",note_id,base_versionиз только что прочитанной версии и полным обновлённым телом; сохраните нужные#tagи удалите токен, если тег нужно убрать
base_version сервер вернёт NOTE_VERSION_CONFLICT и актуальную версию. Прочитайте заметку заново, объедините изменения и повторите. Не перезаписывайте вслепую.Успешный ответ содержит фактический content, куда сервер мог добавить токены, и новую version. Следующее изменение основывайте на них, а не на отправленном тексте. У только что созданной и ещё не проиндексированной заметки doc_id может быть null. Никогда не переписывайте целую заметку по одному фрагменту.Метаданные ответа
Каждый успешный ответ содержит текущее UTC-время, чтобы вычислять «прошлый месяц» или «последние 30 дней» независимо от даты обучения модели.-
В Markdown в конце добавляется:
-
В JSON используется объект верхнего уровня:
isError: true метаданные времени не получают. Для относительной даты возьмите now из последнего успешного ответа, вычислите ISO 8601 и передайте границы в search.
Кроме того, ответы могут содержать режим доступа, источник, пагинацию, предупреждения о неполном индексе и идентификаторы. Агент должен сообщать предупреждения, не скрывать усечение и использовать next_offset, если ответ продолжается.
Пример процесса
CLI
MCP
doc_id в outline, выберите диапазон и вызовите read.
Частые вопросы
Какие форматы документов поддерживаются?
Какие форматы документов поддерживаются?
Распознавание речи для аудио и видео по умолчанию выключено. Файлы всё равно индексируются по имени, но для поиска произнесённого включите Аудиотранскрипцию и Видеотранскрипцию в Настройки → Индекс. Подробнее: Настройки индекса.
Почему search недостаточно?
Почему search недостаточно?
Фрагмент поиска — подсказка, а не полный источник. Для важного ответа прочитайте документ.
Когда использовать grep?
Когда использовать grep?
Когда уже выбран документ и известна фраза, шаблон или имя символа.
Можно вызвать read сразу?
Можно вызвать read сразу?
Да для короткого известного документа, но для длинного сначала outline экономит контекст.
Почему ответ обрезан?
Почему ответ обрезан?
Используйте пагинацию и
next_offset; это защитное ограничение, а не потеря данных.Что делать, если outline недоступен?
Что делать, если outline недоступен?
Используйте
grep, если известен шаблон, либо читайте документ страницами через read: начните с первых 200 строк и продолжайте только при необходимости.Как работать с длинным документом?
Как работать с длинным документом?
Сначала получите
outline, затем по диапазонам строк вызовите read с offset и limit. За один вызов можно прочитать до 500 строк.Какой порт MCP используется по умолчанию?
Какой порт MCP используется по умолчанию?
Порт 60606. Если он занят, приложение автоматически пробует другие; фактический порт указан в настройках Linkly AI Desktop.
Что делать при неточных результатах поиска?
Что делать при неточных результатах поиска?
Уточните ключевые слова, попробуйте естественное описание, добавьте синонимы вроде
"authentication auth login sign-in" или сузьте типы через --type.
