EN RU

@demondehellis

Рассказываю о технологиях и программировании.

Тестирую MCP в Claude на реальной задаче

У меня на проекте была такая задача — обновить компонент для Laravel Nova, переписать его с Vue 2 на Vue 3, но с сохранением логики. Решил ради эксперимента не лезть в код и по максимуму проверить, что может нейросеть сама. Подключил MCP к Claude Desktop для доступа к моему локальному терминалу и браузеру (через Playwright и Chrome DevTools Protocol). Что из этого вышло?

Например, разбор кода и поиск узких мест — делает довольно уверенно. Особенно классно, как быстро она анализирует сторонние библиотеки и подкидывает идеи, до которых я бы сам, скорее всего, не дошёл или просто забил бы — слишком много времени уходит на изучение кода сторонних библиотек.

Суть задачи, которой я занимался, была в том, что компонент с фильтрами в дропдауне не работал как надо. Для этого у нас в команде есть фронтендер, конечно, но мне кажется, это как раз тот случай, когда LLM может сделать быстрее и дешевле. Я расписал шаги через скрипты на JS: перезагрузить страницу, кликнуть, увидеть, что фильтра нет, найти нужный селектор, открыть фильтр, закрыть, снова открыть и проверить значение. Времени на всё это ушло больше, чем если бы я сам раз 100 протыкал этот фильтр. Но это дало понимание, как выстраивать подобный процесс с нейросетями и какие подводные камни могут встречаться.

Например, есть нюанс — в MCP сервере, через который я даю доступ агенту к браузеру, нет доступа к консольным логам. И если фильтр просто не загрузился, упал с ошибками при инициализации, агент этого не видит и делает странные выводы. Я решил вопрос временным костылём — начал писать логи прямо в HTML, чтобы хоть как-то показать, что происходит. Решение так себе, но сработало. Иногда сам протокол или сервер добавляет проблем — например, агент делает скриншот, картинка получается слишком увесистой и превышает допустимые размеры (протокола, библиотеки или api). Тогда агент просто галлюцинирует, хотя на деле скриншота не видит.

В целом, если задать агенту чёткий сценарий, описать, какой результат нужен (по сути, описать тест), прописать, что использовать, а что нет, и очертить рамки — он входит в нормальный рабочий цикл с обратной связью. Сам пишет код, сам собирает, сам тестит. В последний раз я испытал похожий технологический экстаз, когда купил робот-пылесос и первый раз смотрел, как он моет пол. Тыкается в стены и углы, ищет обходные пути, но пытается выполнить задачу. С нейронкой пока так же — иногда изобретает супер сложные решения чтобы всего-то кнопку нажать. Но увы, не всегда получается 🥲


Еще всякое интересное