Попросите ИИ-ассистента описать вчерашний инцидент, и он хорошо справится — ровно до графика. Скриншот лежит у вас на рабочем столе, в заметке написано «см. вложение», а вложения нет. До сих пор MCP-сервер Notez умел читать, писать и перестраивать ваши заметки, но до файла на вашем компьютере дотянуться не мог.
Notez v0.11.0 это исправляет. Любой MCP-ассистент, который умеет выполнять команды в терминале, — Claude Code, Cursor, Codex CLI — теперь загружает картинку или файл с вашего компьютера и вставляет прямо в заметку.
Как это выглядит
Вы пишете:
Добавь ./grafana-latency.png в заметку «Инцидент 2026-09-10» сразу под заголовок «Хронология» и приложи сырые логи из ./incident-logs.zip.
Ассистент загружает оба файла и редактирует заметку. Скриншот появляется прямо в тексте под заголовком «Хронология», архив становится плашкой файла, по клику на которую он скачивается. Оба файла видны на странице Файлы, занимают место в вашем хранилище, как и всё остальное, и подчиняются тем же ограничениям на форматы и размер, что и в редакторе.
Это работает везде, где пишется заметка: при создании новой, при правке части текста и при полной перезаписи.
Почему файл не проходит через чат
Очевидное решение — инструмент, который принимает файл аргументом. Но вызовы инструментов в MCP — это JSON, и файл пришлось бы передавать текстом в base64 прямо в ответе модели: около 35 000 токенов на скриншот в 100 КБ, а PDF не влез бы вовсе. Способа передать файл в протоколе пока нет; предложение ровно об этом всё ещё в черновике.
Поэтому я пошёл тем же путём, что и редактор Notez. Когда вы перетаскиваете картинку в редактор, браузер запрашивает у сервера подписанную ссылку для загрузки и отправляет байты прямо в файловое хранилище. Ассистент делает то же самое в три шага:
Запрашивает загрузку. Инструмент
create_uploadполучает имя файла, его тип и точный размер и отвечает готовой командойcurl, подписанной для этого единственного файла.Выполняет команду. Файл идёт с вашего компьютера прямо в файловое хранилище. Через разговор ничего не проходит, поэтому PDF на 20 МБ стоит столько же токенов, сколько файл на 20 КБ.
Подтверждает.
confirm_uploadпроверяет, что файл действительно дошёл, и возвращает однострочный фрагмент разметки, который ассистент вставляет в заметку.
Ограничение простое: для второго шага нужен терминал. Ассистенты, которые умеют выполнять команды, например Claude Code и Cursor, справляются без подсказок. Клиенты, где есть только чат, например Claude Desktop, этого не умеют и честно об этом говорят, а не притворяются: они отправляют вас в приложение.
Проверка, что файл правда дошёл
Агент может отчитаться «готово» о команде, которая упала. Поэтому confirm_upload не верит ему на слово, а спрашивает файл у хранилища. Если файла нет, ассистент получает указание выполнить команду ещё раз. Если размер дошедших байтов не совпадает с заявленным, загрузка отклоняется, и он начинает заново. В квоту засчитывается именно заявленный размер, поэтому файл, размер которого указан неверно, Notez не регистрирует вовсе.
Фрагмент, а не ссылка, и ошибка, которую я исключил заранее
На эту часть я потратил больше всего времени.
Notez следит за каждым файлом, который использует заметка. Благодаря этому он убирает за вами: когда вы удаляете картинку из заметки, место со временем освобождается, а файл, который загрузили, но так и не использовали, удаляется через три дня. В редакторе вы этого не замечаете, потому что в каждой картинке, которую он вставляет, есть скрытый id файла.
Ассистент пишет Markdown вручную. После загрузки самое естественное для модели — написать обычную ссылку на картинку: . Она отображается. Выглядит правильно. Но id файла в ней нет, и для Notez заметка этот файл не использует. Через три дня очистка его удаляет, и в заметке, которой вы поделились на прошлой неделе, молча появляется битая картинка.
Я заметил это, пока делал функцию, а не после релиза, и закрыл проблему с двух сторон:
Ассистент получает правильную разметку.
confirm_uploadвозвращает фрагмент, в котором уже есть id файла, а инструкции сервера велят ассистенту вставить его без изменений.Notez не принимает неправильную разметку. Если при записи заметки только что загруженный файл вставлен одной ссылкой по адресу, запись отклоняется с объяснением, и ассистент повторяет её с фрагментом. Ссылки на всё остальное работают как раньше: картинки с других сайтов и файлы, которые уже надёжно живут в другой заметке.
Та же проверка защищает ИИ-чат в приложении, так что ни один из ассистентов не оставит в ваших заметках бомбу замедленного действия.
Что знать, прежде чем пробовать
Загруженные файлы доступны по точному адресу, как и картинки, которые вы вставляете в редактор. Нигде нет их списка, и адрес не угадать, но не загружайте то, что не положили бы в заметку.
Место расходуется из хранилища владельца рабочего пространства. Загрузки учитываются в аккаунте владельца пространства, как бы ни подключился ассистент.
Скриншоты хранятся в полном размере. Редактор сжимает картинки в браузере, а файл от ассистента приходит ровно таким, каким лежит на диске.
ИИ-чат в приложении не загружает файлы. Он работает в браузере и не видит ваших файлов. Два инструмента загрузки и
list_workspacesдля подключений через вход в аккаунт — единственные, которые есть у MCP-сервера и нет у чата.
Попробуйте
В Notez откройте Настройки → Интеграции → MCP-сервер Notez и нажмите Создать ключ MCP.
Добавьте ключ в Claude Code командой с этой страницы или в Cursor через JSON-конфигурацию.
Попросите о чём-нибудь с файлом: «Вставь ./architecture.png в мою заметку „Архитектура системы“».
Полный справочник со всеми инструментами, ошибками и ограничениями — в статье Настройка MCP-сервера, а о форматах и месте рассказывает статья Файлы и вложения.
Частые вопросы
Может ли Claude Code загружать картинки в Notez?
Да. Claude Code умеет выполнять команды в терминале, поэтому через инструменты create_upload и confirm_upload кладёт картинку или файл с вашего компьютера в любую заметку рабочего пространства, к которому подключён.
Это работает в Claude Desktop?
Из коробки — нет. Шаг загрузки выполняет команду curl, а Claude Desktop не выполняет команды, если вы не дали ему инструмент, который это умеет. Он предложит добавить файл в приложении.
Какие файлы может загрузить ИИ-ассистент?
Те же, что и редактор: картинки (JPG, PNG, GIF, SVG, WEBP и другие), PDF и офисные документы, видео, архивы ZIP и RAR — в пределах ограничения на размер файла вашего тарифа.
Загруженный файл занимает место в моём хранилище?
Да, в хранилище аккаунта владельца рабочего пространства, точно так же, как файл, добавленный в редакторе.
Что значит NOTE_UPLOAD_NOT_LINKED?
Ассистент попытался вставить загруженный файл одной ссылкой по адресу. Notez это отклоняет, потому что такой файл не отслеживался бы и удалился бы через три дня. Ассистент должен вставить фрагмент, который вернул confirm_upload, и большинство ассистентов сами повторяют запись.
Читайте также
Второй мозг с Claude: память ИИ в ваших заметках — одно рабочее пространство с заметками как память, которую читает и пополняет каждый ассистент, и что в ней хранить.
Ваши заметки в Claude и ChatGPT без API-ключа — как добавить Notez в Claude, ChatGPT или VS Code по одному URL со входом в аккаунт и как потом отозвать доступ.
Как подключить Notez к Claude, Cursor и Windsurf по MCP — как настроить ключ MCP в Claude Code, Cursor или Windsurf и какие инструменты он даёт ассистенту.