[0:00]Друзья, ну что, ещё некоторое время назад n8n звучал из каждого утюга, и мы пользовались им активно. Сейчас же это заменяется агентскими автоматизациями, такими как Cloд, Code, Cursor, WinSurf, Codex. Хотя, честности ради, я скажу, что, наверное, многие из нас периодически открывают свои n8n-автоматизации, и самые важные какие-то вещи до сих пор держат на n8n. Я, например, держу, у меня много чего до сих пор работает на n8n. Но настало время вернуться к n8n, потому что они буквально пару дней назад сделали большой новый релиз. Это инструмент, который, по их заверениям, позволяет строить автоматизации с практически стопроцентной точностью, то есть никогда не переходить в редактор n8n, а всё делает через агентов. И прямо рассказывают, как буквально с одного промта у них получаются действительно рабочие автоматизации. И если почитать этот апдейт со стороны n8n, то тут можно увидеть такие фразы, что всё больше мы внутри не используем никакие другие инструменты, кроме этого. Так, давайте разберёмся, что же это за новый такой инструмент. Только с вас подписка, лайк и коммент к этому видео для того, чтобы его больше продвигать. Погнали дальше. n8n выпускает свой новый MCP-сервер, который работает удивительно хорошо, по их заверениям. Вы можете резонно спросить, в чём цимес, потому что MCP-серверы были. Да, были MCP-серверы. Это были разработки комьюнити, которые работали, ну, как бы хорошо, но, вообще говоря, не очень, и мы даже с вами некоторое время назад тестировали такие MCP-серверы. Они действительно позволяли строить автоматизацию, ну, на каком-то приемлемом уровне. А потом требовалось ещё не меньше времени, а иногда ещё и больше времени, чтобы доработать эти автоматизации. Вот тут, кстати, мы этим занимались, тестировали. Теперь же n8n выкатывает свой собственный MCP-сервер, который нативно встроен в сам n8n. И в этом MCP-сервере есть некоторые отличия, которые позволяют там доказывать, что это работает реально круче. Теперь MCP-сервер генерирует JavaScript, ну, или TypeScript, если быть точнее, вместо сырых JSON, с которыми у нейронок случаются иногда проблемы для того, чтобы их фиксить и дорабатывать до нужного результата. И они говорят, что очень много тестировали этот подход, и действительно генерация в TypeScript даёт крутые результаты по сравнению с тем, что было в JSON. Более того, n8n встраивает свой MCP-сервер workflow-валидацию, прежде чем отдавать нам готовый результат. И тесты, выполнение тестов для того, чтобы убедиться, что всё работает именно так, как задумано. И более того, теперь они итерируют над workflow, до тех пор, пока он не придёт к виду, который действительно выполняет нашу задачу. Каким образом воспользоваться новым MCP-сервером n8n. Здесь нужно понимать, что нам необходимо установить себя n8n версии не ниже 2.18.4 для того, чтобы там уже появился встроенный MCP-сервер. Я вот только что обновился в своём n8n, перехожу в дашборд, нажимаю Settings и вижу, что здесь у меня внизу появилась вкладка Instance-level MCP. Я нажимаю эту историю. И здесь необходимо убедиться, что наш MCP-сервер enabled, то есть доступен для работы. Здесь они предоставляют базовую защиту, то есть можно выбрать workflow, которые будут доступны через MCP-сервер. Если вы будете создавать новые workflow через него, то они будут автоматически доступны и попадут в этот список. Для того, чтобы к нему подключиться, нам понадобится с вами какой-нибудь агентский инструмент: Claude Code, Codex, в принципе, любой инструмент, который работает с MCP-серверами нам подойдёт. Здесь можно подключиться через авторизацию либо через Access Token. Здесь мы видим классическую структуру JSON для конфигурации MCP-серверов, можно подключиться через неё. Давайте мы прямо её заберём. Здесь указан туннель, но если вы запускаете свой n8n локально, как я, то можно будет сюда вписать прямо ваш LocalHost, и всё будет работать. Поэтому я забираю вот эту конфигурацию и перехожу в свой Claude Code. Итак, вот мой Claude Code запущен. Для того, чтобы добавить MCP-сервер, вы можете прямо в Claude Code вставить вашу конфигурацию, если вам не жалко, что туда попадёт Access Token. И сказать ему: засетапи мой MCP-сервер. Если вы хотите делать всё вручную и понимать прямо, как всё работает, вам нужно будет добавить файл mcp.json и потом его заэнейблить в settings.local.json. Соответственно, сюда прописываете ваш MCP-сервер, и важно сюда вставлять вашу авторизацию. То есть вам нужно будет вернуться в n8n, забрать ваш Access Token и здесь указать Bearer, ваш Access Token, и после этого протестировать. Кстати, как вы видите, я сюда прописал именно LocalHost mcp-сервер http, и сейчас проверим, насколько мы можем до него достучаться. Мы здесь вводим Slash-команду mcp. И вот мы видим с вами, что прямо на первом месте у нас активный наш n8n MCP-сервер. Прекрасно. Я себе придумал такую задачу. У меня есть моя Supabase, то есть я сделал себе аккаунт Supabase. Теперь у меня есть мой n8n, в который я не хочу заходить и делать что-то вручную. И у меня есть мой Claude Code. Что если я в Claude Code дам доступ к своей Supabase через MCP Supabase и к n8n через MCP n8n и скажу такую вещь: у меня есть список локальных файлов, они лежат прямо у меня на моём локальном компьютере, это всё текстовые файлы, мои заметки. Я хочу, чтобы Claude Code сделал такую автоматизацию: сначала бы он создал векторную таблицу в моей Supabase без моего участия, через мои голосовые команды, потом сделал автоматизации в n8n, которые будут забирать мои текстовые файлы на моём локальном диске, векторизовать эти текстовые файлы и перекидывать в Supabase. И после этого я хочу, чтобы Claude Code через n8n сделал агента, который также мог бы смотреть в мою Supabase, забирать оттуда векторизованные данные как себе контекст, то есть сделать векторный поиск и отвечать на основе моих файлов прямо в чате n8n. То есть это такой классический кейс, который мы с вами делали массу раз.
[5:58]Что если сделать это, не притрагиваясь ни к Supabase, ни к n8n, чисто через голосовые команды Claude Code? Звучит амбициозно. Давайте пробовать. Итак, я себе только что создал аккаунт в Supabase и создаю себе проект, который называется n8n. Итак, это совершенно пустой проект. Как видим, здесь вообще ничего нету, ни одной таблицы. Давайте теперь возвращаться в Claude Code. В Claude Code я выполняю вот такую Slash-команду: plugins. Здесь перехожу в поиск и начинаю вводить Supabase. Здесь, если у вас не установлен плагин, у вас появится плагин Supabase. Сразу после этого у вас Supabase появится в списке ваших плагинов. И здесь у вас будет возможность авторизоваться в вашей Supabase. То есть мы можем нажать вот эту кнопочку, то есть реавторизоваться. Вас перекинет в вашем браузере на Supabase.
[6:50]И здесь необходимо будет дать доступ к вашей Supabase именно к вашей желаемой организации, внутри которой лежат ваши проекты. Вы даёте этот доступ, получаете сообщение, что аутентификация успешна. Возвращайтесь в ваш Claude Code. И буквально через пару секунд увидите, что да, теперь аутентификация у нас произошла. Получается, у нас сейчас в Claude Code есть доступ к нашей Supabase и к нашей n8n. Пора творить. Кстати, если вы только начинаете постигать агентские автоматизации и n8n, то обязательно заскакивайте в нашу прогруппу. У нас там есть топовые мастер-классы, есть Claude Code. Буквально за несколько вечеров вы плотно погрузитесь в то, что такое Claude Code, каким образом его настраивать, каким образом им пользоваться. И, конечно же, у нас есть уже ставший классикой мастер-класс по n8n, который прямо чётко вам объяснит, для чего n8n, каким образом там происходит перетекание данных, каким образом настраиваются, тестируются workflow, в принципе, всё, что вам нужно, чтобы начать строить полноценные автоматизации на n8n. Ну, а мы возвращаемся в наш Claude Code, и, как видим, у нас проект совершенно пустой, но уже мы вооружены MCP-серверами Supabase и n8n. Давайте попробуем максимально полноценно прямо рассказать ему про нашу задачу. Потому что в рекомендациях к MCP-серверу n8n здесь написано, что необходимо говорить ему, как именно строить нашу автоматизацию, а не только про наши желания и что мы строим. Попробуем максимально чётко объяснить просто, как будто бы это наш помощник. Итак, я запускаю такой процесс. У тебя есть доступ к моей Supabase, к моему n8n. Мне нужно, чтобы ты сделал такие вещи: сначала сходи в Supabase, найди там проект n8n и создай в нём векторную таблицу для того, чтобы я хранил там свои эмбеддинги.
[8:43]Эмбеддинги. После этого тебе нужно пойти в n8n и сделать там две автоматизации. Первая автоматизация для внесения документов в эту таблицу. Я буду забирать свои текстовые файлы с локального диска, и после этого помещать их в свою векторную таблицу, которую мы создали на предыдущем шаге. Соответственно, позаботиться о том, чтобы у меня была автоматизация, которая делает это постоянно. После этого сделай мне автоматизацию для того, чтобы я смог коммуницировать с этими файлами. Соответственно, мне нужен будет агент, который будет обращаться в мою векторную базу, после этого получать оттуда контекст и отвечать мне на мои вопросы на основе этого контекста.
[9:22]Три шага. Supabase, векторная таблица, n8n ingestion workflow, n8n rag agent workflow. Начинаем с Supabase.
[9:40]Да, он понял, что наш неловкий n8n - это есть n8n, и он создаёт векторную таблицу. Сначала включает PGBase-вектор-расширение, потом таблицу и функцию поиска. Отлично. Погнали. Итак, Supabase готов. Теперь n8n. Читает SDK. Прекрасно. Давайте пока он это делает, сходим в свою Supabase. Итак, у нас появилась таблица documents.
[10:06]Здесь есть ID, content, embedding, metadata, created_at. В принципе, структура соответствует той, которую мы обычно с вами строим в нашей Supabase для векторов. Теперь мы видим, что он переходит к n8n MCP.
[10:19]Давайте, погнали дальше. Кстати, пока он всё строит, все ресурсы, которые мы сейчас посещаем, и апдейт на n8n, и автоматизации, которые у нас с вами получатся через этот MCP-сервер, я помещу в свою бесплатную Telegram-группу. Заскакивайте туда, забирайте это, сможете потом экспериментировать и идти по моим шагам. Да, то есть смотрите, сначала он получил типы всех нод, а теперь ищет document loader. Ну, есть в этом какой-то потенциал. Итак, итог. Сначала он говорит, что я пошёл в Supabase в проект n8n и сделал тебе таблицу documents, которая сделана с колонкой embedding-вектор. Да, вектор-размер у нас 1536, нормально. А дальше он говорит, что я тебе сделал два workflow. Один называется Document Ingestion, а другой Document Chat Assistant. Здесь есть local file trigger, есть chunking, есть embedding. Настроить: открой ноду, укажи папку для слежки. Ну, отлично. Chat Interface, я тебе сделал публичный hosted-чат, агента и память: 10 последних диалогов. Отвечает GPT-4-mini. Ну, в принципе, это обычно то, что мы с вами делаем, когда создаём автоматизации. Идём в n8n тестировать. Так, и тут я вижу две последних автоматизации. Одна называется Document Ingestion, другая Document Chat Assistant. Давайте открываем Document Ingestion. Так, у нас тут есть триггер, который отсматривает нашу папку. Давайте сразу, кстати, пропишем нужную папку. Итак, наша папка будет home/node/n8n-files/obsidian, и мы будем отслеживать добавление либо изменение файлов. Отлично. Давайте запустим этот шаг. Перейдём в наш Obsidian. Так, вот наш каталог. Давайте просто задублируем для того, чтобы посмотреть, насколько у нас. Да, он отследил. Отлично. То есть всё ровно так, как мы бы сделали с вами вручную. Идём дальше. Теперь мы читаем текстовый файл. Да, вот наш файл определился. И что? Мы сразу после этого переходим к Supabase. Давайте посмотрим Load Text File. Да, обратите внимание, вот здесь у нас может быть проблемка с метаданными. Но, в принципе, правильно настроено.
[12:24]Да, у нас чанкер наш. Хорошо. Здесь прокинуты, угу, text-embedding-3-small, всё хорошо. Так, проверим, что здесь. Да, единственное, я вижу, что он не закинул название таблицы. Ну, уже косячок. Ладно. Ну, вручную мы это можем делать. Как вы видите, тут просто живой эксперимент, а я прямо на ваших глазах всё подправляю, если вижу, что что-то идёт не так. Так, мы прокинули, наша таблица называется documents. По сути, нам ничего не мешает сейчас выполнить этот шаг и посмотреть, что же. Так, он говорит, я всё векторизовал. Соответственно, всё у нас прошло. Ничего себе. Давайте теперь перейдём обратно в Supabase. Посмотрим, что у нас теперь в таблице есть. Да, смотрите, наш ID, content, вот наши эмбеддинги в метаданные. Я думаю, что здесь, да, не прокинулся путь, потому что там был косячок, но это ладно, это не так уж страшно. Давайте для чистоты эксперимента я прямо сейчас триггер уберу, а просто пропишу конкретно, откуда брать у нас все файлы. То есть здесь я пропишу звёздочка.md, потому что у меня все там markdown. По идее, он у меня он должен вернуть, да, все мои 23 файла. Я это сделал для того, чтобы, а, ну, просто мы с вами сейчас наполнили нашу векторную таблицу вообще всеми файлами, которые у меня есть на моём диске. То есть я прогоню сейчас выполнение.
[13:48]Да, все 23 файла пробежали у нас, и теперь, если мы посмотрим в Supabase. Отлично, то есть всё у нас проходит ровно так, как нам и нужно. Соответственно, workflow с первого раза сработал, то есть нормально он построил. Причём он использует не самые тривиальные ноды. Как вы помните, предыдущие MCP-серверы, они пытались всё на одной-двух нодах там HTTP Request делать. Сейчас хорошее разнообразие нод. У нас даже есть триггер для локальных файлов, Read Write Text Files, то есть нормальные, вообще-то, автоматизации. Теперь, если мы перейдём в наш второй ассистент. Так, что мы видим? Смотрите, опять же, нормально построено. Так, у нас есть Chat Interface. После этого у нас есть агент сразу с прописанным системным месседжем: Ты ассистент и отвечаешь только на основе данных из базы, всегда используй Search Documents Tool. Ну, то есть инструмент поиска документов для того, чтобы отвечать. Соответственно, у нас есть инструмент, который называется Search Documents. Прописаны все дескрипшены, мы с вами этого не делали. Так, хорошо. Что у нас здесь? Эмбеддинги прописаны. Да, Embedding-3-small. Здесь у нас GPT-4-mini. Хорошо. Мне кажется, можно попробовать спросить какой-нибудь каверзный вопрос. Вот я здесь вижу в Supabase мысль: ИИ не заменят программистов, но программисты с ИИ заменят тех, кто без него. Это новый уровень абстракции. Давайте спросим какой-нибудь вопрос по этому кейсу. То есть я себе открываю свой чат-интерфейс и так и спрашиваю: Заменит ли ИИ программистов? Отсылаю. Так, у нас ошибка failed to receive response. Давайте разбираться. То есть, на самом деле, проблема в том, что в логах ничего нету, и обычно это означает то, что в самой автоматизации проблем нет, потому что эта проходка даже не считается за execution. Соответственно, он не дошёл никуда. Да, я думаю, если честно, что случается довольно часто, так как это свежая версия n8n, мне кажется, тут какая-то есть проблема в самой ноде Chat Interface. Либо если вы знаете, напишите мне. А мы, так как уже тёртые калачи, да, мы с вами всегда можем обойти такие глупые ограничения или ошибки. Мы с вами добавим новую ноду Edit Fields. Здесь создадим поле text и сюда запишем текстовое значение, которое соответствует нашему вопросу: Заменит ли ИИ программистов? Отлично. Теперь мы эту ноду можем соединить с нашим агентом для того, чтобы не зависеть от чат-триггера. Так, что у нас тут? Ага, у нас на входе ожидается чат-инпут, поэтому мы идём обратно и меняем название поля с text на chat-input. Возвращаемся в нашего агента. Так, давайте исполним эту ноду. Да, теперь у нас есть на выходе chat-input. Ага, и он появляется у нас на входе. Давайте выполним нашу. Да, у нас память отвалилась. Смотрим, что с ней не так. Потому что нет session ID, потому что мы убрали чат-триггер. Теперь мы выберем просто define below и просто прокинем пока статичный ключ просто для того, чтобы у нас работала нода. Отлично. Давайте пробуем ещё раз. Видим, как наша моделька думает и отвечает: ИИ не заменят программистов, но программисты, которые используют ИИ, смогут обойти тех, кто работает без него. То есть у нас произошёл поиск, векторный поиск. Смотрите, каким образом он подобрал все значения. Ну, собственно, если вы работаете с таким типом автоматизации, для вас здесь выглядит всё довольно буднично, но обратите внимание, что это просто построено с одного промта в Claude Code с новым MCP-сервером. То есть это реально, хоть и кейс довольно простой, но сам набор нод, сама вариативность того, что он делает. Да, нам чуть-чуть пришлось вручную подрихтовать, но, по-моему, это просто проблема текущей версии вот с этой нодой. В остальном обе автоматизации рабочие, то есть случилась сначала работа с Supabase, потом он создал две автоматизации для инжешна, потом для диалога с нашими данными прямо здесь. Как будто бы этот новый MCP-сервер стоит внимания, если вы всё ещё работаете с n8n. Ну, а на этом мы заканчиваем наше видео. Обязательно ставьте лайк, подписывайтесь на канал, комментируйте, проходите наши мастер-классы, заскакивайте в наше просообщество. До скорых встреч.



