Dart MCP: что он на самом деле даёт кодовому агенту
MCP-сервер встроен в Dart SDK с июля 2025 года, а пользоваться им начали только недавно. MCP — это протокол, по которому кодовый агент обращается к серверу за информацией или действиями. Для Dart это значит, что агент больше не ограничен терминалом — он может дотянуться до вашего запущенного приложения.
Мы подключили его к Claude Code на демо-приложении и посмотрели, что он даёт на практике.
Подключение
Одна команда:
claude mcp add --transport stdio dart -- dart mcp-server --enable all
Без --enable all половина инструментов выключена. Внутри всё идёт через Dart
Tooling Daemon — тот же, которым для отладки пользуется DevTools. Следующая сессия
агента запускает сервер и получает список инструментов.
Что агент умел и раньше
Анализатор, тесты, dart fix, форматирование, поиск по pub.dev. Всё полезное — и
всё то, что агент делает без сервера, через терминал и веб. В демо он пошёл искать
по pub.dev через инструмент; пакет он нашёл бы и без него.
Что действительно ново: запущенное приложение
Вот за что стоит держаться:
- ошибки времени выполнения из живого приложения — сразу агенту;
- дерево виджетов в том виде, в каком оно в приложении прямо сейчас;
- тапы и ввод текста через Flutter Driver — тапнуть, ввести текст, подождать, получить смещение, снять скриншот;
- вычисление выражения внутри запущенного приложения — агент может распечатать значение на месте, а не искать нужное место в коде и добавлять print;
- hot reload после правки.
В демо агент вытащил ошибки времени выполнения, нашёл overflow в вёрстке, исправил его и сделал hot reload — при этом ему не показывали, где проблема. Без MCP он не увидел бы этих смещений и гадал бы.
Очевидное применение — то, которое масштабируется. Вы собрали большое приложение и хотите проверить каждый экран. Обычно вы находите каждый overflow глазами, а потом описываете: «в этом виджете overflow». С сервером агент сам обходит экраны и собирает ошибки вёрстки. Или вы сами прокликиваете, а агент собирает ошибки через MCP.
Чего это стоит
Описания всех 24 инструментов попадают в контекст каждой сессии и перечитываются на каждом шаге агента. Задача занимает от двадцати до нескольких сотен шагов, и каждый тащит весь список — закешированный, но всё равно прочитанный и всё равно занимающий контекст, внутри которого агенту приходится думать.
Вывод
Для инструмента, который нужен на редком баге вёрстки, эта цена платится постоянно. Поэтому в DartWay он не будет включён по умолчанию. Мы добавим его в фреймворк как инструмент по требованию — подключается на прогон визуальных сценариев или на починку багов вёрстки, и не присутствует в обычных сессиях разработки. Держать его в каждой сессии — избыточно.
Видеоверсия, на русском, — на YouTube.