Интеграция с IDE, AI и MCP

Export, Live Import, AI-ассистенты и MCP

Интеграция с IDE, AI и MCP

Одна из основных особенностей любой автоматизации это то, что со временем она имеет свойство разрастаться и покрывать все большую и большую площадь. Поначалу вы хотите, чтобы скрипт за вас просто нажимал одну кнопку. Потом добавляется пара условий нажатия этой кнопки. Через денек - еще одна кнопка. Глазом моргнуть не успеете, как в скрипте уже 1000+ строк.

Встроенный редактор скриптов EyeAuras рассчитан в основном на небольшие проекты - простой кликер, небольшой бот, какая-то вспомогательная утилита, ну и, разумеется, использование прикладных скриптов в деревьях поведения и макросах.

В какой-то момент, его возможностей просто перестает хватать - вы хотите разложить классы удобно по папочкам, навигироваться по коду с помощью умного поиска, написать юнит-тесты и пользоваться всеми остальными прелестями современной разработки, которые предоставляют IDE типа JetBrains Rider, Visual Studio или Visual Studio Code. Вот только в этих компаниях сотни и тысячи людей, чего нельзя сказать об EyeAuras. Вывод просто - EyeAuras никогда не догонит эти средства разработки, значит нужно искать какое-то другое решение.

И это решение - Export / Import / Live Import.

Изменить скрипт в IDE и вернуть его в EyeAuras

Работать будем с Hello, World - никакой принципиальной разницы нет, все ауры ведут себя примерно одинаково.

В верхней части C# Action есть группа кнопок, которые как раз отвечают за интеграцию с IDE Controls

Export

Export Экспортирует ваш скрипт + все зависимости в виде .sln и .csproj. По пути настраивается ссылка на EyeAuras NuGet сервер (нужна для подтягивания зависимостей и SDK), импорты и все остальные необходимые мелочи. Для экспорта выбирайте отдельную папку: операция может заменять файлы проекта, так что не экспортируйте в папку, где лежат какие-то важные данные. По умолчанию EyeAuras предложит одну из стандартный папок, рекомендую оставить как есть. По результатам экспорта у вас получится вот такая папочка с псевдо-случайным именем и несколькими файлами в ней. Это и есть ваш проект, который далее можно открыть в IDE. Export Result

Проверить сборку проекта

Обратите внимание, что проект, который вы получите на выходе должен успешно собираться - Export не просто подготавливает текстовые файлы, а именно полноценный C# проект со всеми нужными зависимостями и ожидается, что если скрипт работал в EyeAuras, то он будет собираться и в IDE. Если это не так - смело нажимайте Report a Problem в окне EyeAuras, будем разбираться. Только не забудьте отметить галочку Auras.zip, чтобы в репорт попал и ваш скрипт.

IDE

Работа с кодом

После восстановления зависимостей доступны обычные средства IDE: подсветка, навигация, создание файлов. Экспортированный проект содержит служебные заглушки host для компиляции; успешная сборка не означает, что скрипт можно запустить отдельно от EyeAuras. Работа отладчика в конкретной версии здесь не подтверждена. Что точно доступно и работает:

  • подсветка синтаксиса и автодополнение
  • навигация по коду, в том числе в служебные библиотеки EyeAuras
  • показ документации по классам прямо в редакторе (наведите мышь)
  • возможность подключать NuGet пакеты
  • работа с Blazor файлами (как с code-behind, так и без)
  • возможность создавать папки, классы и т.п.
  • возможность подключать внешние библиотеки - предпочтительнее всего через Embedded Resources
  • возможность писать юнит-тесты на обычные классы в отдельном проекте. Импорт сопоставляет проект скрипта и его зависимости; это не импорт любого .NET solution целиком. Не подключайте тестовый проект как runtime-зависимость скрипта

Что НЕ работает:

  • экспорт сам по себе не создаёт работающий host EyeAuras в IDE. Проверяйте поведение скрипта в EyeAuras
  • pre-/post-build действия не будут отрабатывать в EyeAuras - это значит что вы все еще можете использовать их для, к примеру, генерации JavaScript из TypeScript для ваших Blazor UI, однако в EyeAuras будут потягиваться уже финальные JS файлы

Import

Import Итак, вы поработали с кодом и теперь готовы подтянуть изменения обратно в EyeAuras и запустить скрипт. Для этого есть несколько вариантов. Начнем с самого простого - нажать Import и выбрать .sln файл. EyeAuras загрузит этот солюшен, извлечет из него всю нужную информацию и обновит скрипт. Обратите внимание, что при синхронизации все ваши локальные изменения (сделанные в самой EyeAuras) ПОСЛЕ экспорта будут утеряны - EyeAuras именно загрузит ваш код из проекта.

Для проверки измените сообщение в Script.csx на Log.Info("Hello from IDE");, сохраните файл и выполните Import. Запустите C# Action в EyeAuras: в Event Log должно появиться Hello from IDE. Это проверяет возврат именно вашего изменения, а не только успешное создание .sln. Сборка в IDE требует установленного .NET SDK и доступных версий зависимостей; восстановление пакетов здесь не проверено. Run

В целом на этом бы можно было и остановиться - есть возможность экспорта, есть возможность импорта, с этим уже можно разрабатывать решения. Однако в разработке одна из самых ценных вещей это время "оборота" - сколько вы тратите на то, чтобы внести изменения в ваш код и далее увидеть их в готовом продукте. Меньше время оборота - быстрее разработка, быстрее тестирование, больше времени можно потратить на улучшение продукта, а не игру с инструментами.

И вот здесь EyeAuras предлагает решение, которое позволяет разрабатывать даже быстрее, чем с использованием самых современных IDE - Live Import

Live Import

Live Import Включите Live Import для экспортированного проекта и сохраните изменение сообщения в IDE. EyeAuras отслеживает изменения файлов и обновляет проект скрипта. Затем перезапустите C# Action и проверьте новое сообщение в Event Log.

Это не универсальный Hot Reload состояния .NET-процесса: изменение кода может пересоздать контекст и сбросить его поля. Автоматический перезапуск зависит от поверхности и версии редактора; если сообщения не изменились, проверьте выбранный проект, диагностику импорта и выполните Stop/Start. Время обновления не гарантировано.

Live Import + C# Overlay

В EyeAuras есть несколько способов запуска скриптов и один из них это C# Overlay. Этот оверлей можно использовать для создания кастомного пользовательского интерфейса, отображения нотификаций или отрисовки какой-то другой информации на экране. Под капотом это скрипт, использующий Blazor Windows для отображения C# Overlay

Его основная особенность по сравнению с C# Action в том, что окно, которое вы видите на экране - "живое". Обновление проекта может пересоздать содержимое окна. Проверьте видимый текст или другой результат своего изменения; это не обещание сохранения всего состояния окна. C# Overlay Live

Код оверлея, как и обычного скрипта, можно так же экспортировать и далее сделать Live Import - тогда сохранённые изменения проекта будут поступать в EyeAuras. Отображение результата зависит от успешной компиляции и жизненного цикла оверлея.

C# Overlay in Rider

Open in IDE

Open in IDE Эта кнопка объединяет Export + Live Import и позволяет свести к минимуму количество кликов. Когда вы на нее нажмете, EyeAuras сначала экспортирует проект в указанную папку, затем запустит IDE (ту, которая настроена для открытия .sln файлов по умолчанию, это может быть Rider/Visual Studio, что угодно), а затем сразу же запустит Live Import.

После открытия проекта проверьте состояние импорта и результат изменения в EyeAuras. Сроки открытия IDE и обновления не гарантированы.

Открыть проект в своей IDE

Используйте привычную среду с поддержкой C# и .sln: JetBrains Rider, Visual Studio или Visual Studio Code. Поддержка Razor, тестов, отладки и AI зависит от версии среды и установленных расширений. Условия лицензий и текущая доступность внешних продуктов здесь не проверены.

Если вы используете AI, сначала дайте ему контекст экспортированного проекта и объясните, что Log, Variables, Sleep и cancellationToken — члены host в Script.csx. В обычные классы их передают явно. Ссылка на карты API поможет выбрать нужный сервис без выдумывания глобальных C# API.

Что такое MCP и зачем он нужен

MCP это Model Context Protocol - открытый протокол, через который AI-инструменты могут получать доступ к внешним инструментам, ресурсам и действиям.

Если говорить совсем просто, MCP нужен для того, чтобы AI не просто "болтал про код", а мог:

  • читать структуру проекта
  • открывать нужные файлы
  • вызывать специальные инструменты
  • редактировать код через контролируемые tool calls
  • получать дополнительные знания из документации, логов, ресурсов и API

То есть MCP превращает AI из "умного автодополнения" в более серьезного рабочего помощника.

Хорошие официальные вводные по теме:

Подключить EyeAuras MCP

EyeAuras предоставляет MCP-инструменты для анализа выбранного экспортированного workspace EyePad: диагностики компиляции, поиска символов, документации и анализа ссылок/пакетов. Контекст определяется заново при каждом вызове; держите выбранным нужный проект и сверяйте возвращённый workspace.

Редактирование файлов экспортированного проекта выполняется средствами IDE или её AI-клиента. Подключение MCP само по себе не даёт клиенту доступ ко всем файлам и не запускает скрипт. После правок проверяйте диагностику и результат в EyeAuras.

Запустить сервер

  1. Откройте в EyeAuras вкладку AI Assistant / AI.
  2. При необходимости нажмите Show Settings.
  3. Проверьте поле MCP Port.
  4. Нажмите Start MCP.

По умолчанию порт сейчас 48080, а endpoint выглядит примерно так:

http://127.0.0.1:48080/mcp

Дождитесь статуса MCP server is running. или изучите сообщение об ошибке. Если вы меняли порт, используйте endpoint, который показывает EyeAuras. Значение 48080 — исходная настройка, а не гарантия свободного порта. Сам факт нажатия Start MCP ещё не означает успешного подключения клиента.

Подключить клиент

Rider

В Rider это делается через:

Settings | Tools | AI Assistant | Model Context Protocol (MCP)

Дальше добавляете HTTP MCP server и указываете URL EyeAuras, например:

http://127.0.0.1:48080/mcp

VS Code

В VS Code можно добавить MCP server через встроенные настройки MCP или через mcp.json, тоже указав EyeAuras endpoint.

Visual Studio

В Visual Studio история зависит от конкретного AI-инструмента, но общая идея та же: нужно добавить внешний MCP server и направить его на EyeAuras endpoint.

Расположение настроек и поддержка HTTP MCP зависят от версии клиента. Проверяйте показанный EyeAuras endpoint и список доступных инструментов; внешний клиент здесь не проверен.

Экспорт и возможности SDK

Идея проста - ваш C# скрипт экспортируется в виде полноценного C# проекта, который можно даже сбилдить с помощью IDE. Далее вы работаете над ним, используя современные и удобные вам средства разработки, а когда все готово - просто импортируете проект обратно в EyeAuras, тем самым получая лучше от обоих миров. Вы все еще можете использовать все встроенные возможности EyeAuras SDK, такие как работу с изображениями, симуляцию ввода, работу с памятью, создание кастомных интерфейсов на Blazor и ImGui, ну и все остальное.

В декабре 2024 появился прототип экспорта и на протяжении года он постепенно совершенствовался и разрастался.

На данный момент размер самого большого бота, который реализован с использованием этого подхода уже превышает 23000 строк и при этом использует практически все, что было разработано для EyeAuras за все эти годы. Так что думаю на этом этапе этот функционал уже достаточно стабилен и рекомендуем к использованию для реальных проектов. Bot example