Дайте AI-ассистенту структурированный доступ к проекту 1С через службы запущенного экземпляра EDT.
Быстрый старт · Возможности · Архитектура · Участие в разработке
AI-EDT - MCP-сервер в виде плагина, работающего внутри запущенного экземпляра 1C:EDT. Он позволяет Claude, Cursor, GitHub Copilot и другим MCP-клиентам исследовать и изменять метаданные и BSL, переходить по семантическим ссылкам, управлять отладчиком, проверять проекты и работать с подключенной информационной базой.
Вместо того чтобы воспринимать рабочее пространство EDT как каталог XML- и BSL-файлов, ассистент использует семантическую модель, индексы, валидаторы и службы отладки самой EDT.
Important
Текущая версия рассчитана на 1C:EDT 2026.1+, Java 17 и Windows.
Ассистент с доступом только к тексту может искать по файлам, но не способен надежно отвечать на вопросы, зависящие от модели IDE:
- На какой объект метаданных указывает эта ссылка?
- Какие формы, роли и подсистемы зависят от справочника?
- Какой тип EDT вывела в этой позиции BSL?
- Почему валидатор проекта отклоняет объект?
- Что происходит в приостановленной отладочной сессии 1С?
- Можно ли применить изменение метаданных без ручного редактирования XML EDT?
- Соберется ли этот запрос именно на этой конфигурации - есть ли в ней такие таблицы и поля?
- Что скажет о новом коде валидатор EDT, а не текстовый линтер со стороны?
- Откроется ли эта форма у пользователя или развалится при загрузке конфигурации в базу?
- Соберется ли схема компоновки так, чтобы отчет заработал, а не просто существовал в файле?
AI-EDT дает для этого специализированные MCP-инструменты - те же службы, которыми пользуется сама среда. Ассистент не просто пишет BSL, запрос, форму, схему компоновки или объект метаданных: он тут же проверяет результат валидаторами EDT, поэтому ошибка всплывает на месте, а не в тот момент, когда конфигурацию впервые загружают в информационную базу. Меньше гадания, меньше хрупких текстовых правок, и вся работа идет в той же модели, которую видит разработчик в IDE.
| Сценарий | Что может сделать ассистент |
|---|---|
| 🔍 Исследовать код и метаданные | Искать по BSL, разрешать символы, находить семантические ссылки, строить иерархии вызовов, получать список модулей и структуру объектов. |
| 🏗️ Создавать и изменять метаданные | Создавать справочники, документы, регистры, формы, роли, команды, сервисы и другие объекты через edit_metadata, включая предпросмотр и пакетные операции. |
| 🐞 Отлаживать BSL | Запускать или подключать отладочную сессию, ставить обычные и exception breakpoints, смотреть переменные, вычислять выражения, выполнять шаги и собирать профилирование. |
| 🩺 Диагностировать конфигурацию | Получать проблемы EDT, перевалидировать объекты, исследовать граф зависимостей, находить антипаттерны запросов и оценивать влияние изменений. |
| 🧱 Собирать сложные артефакты | Работать со СКД, MXL, XDTO, расширениями, внешними объектами и внешними источниками данных через специализированные мастерские. |
| 🧪 Тестировать и исследовать данные | Запускать и отлаживать тесты YAxUnit, выполнять сценарии Vanessa Automation и исследовать состояние исполнения в приостановленной сессии отладки. |
| 🛡️ Проверять границы доступа | Аудировать роли и RLS, искать потенциально чувствительные данные в коде и метаданных, отключать записывающие инструменты пресетами. |
Сервер предоставляет более ста операций. Родственные действия объединены фасадами code_search, edit_metadata, launch_debugger, diagnostics, insights и security_audit, поэтому MCP-клиент видит компактный набор инструментов вместо длинного списка почти одинаковых команд.
Метаданные создаются по описанию, а не правкой XML. Разработчику достаточно сказать, что нужно: справочник с такими-то реквизитами, документ с движениями, форма списка к нему. Ассистент раскладывает это в план операций edit_metadata и выполняет его одним пакетом, а не десятком разрозненных вызовов. Любой шаг заранее прогоняется с dryRun=true и показывает, что именно будет затронуто; удаление и прочие деструктивные операции требуют отдельного подтверждения. Изменения идут через модель EDT, а не текстом по .mdo, и сразу после применения объекты перевалидируются, так что ошибка видна на месте, а не при первой загрузке в информационную базу.
Запрос проверяется до того, как его кто-то запустит. validate_query разбирает текст в контексте проекта и возвращает синтаксические и семантические ошибки с номерами строк, отдельно для обычных запросов и для запросов СКД. Вместе с ними приходит список подсказок на типовые промахи: слова SQL вместо языка запросов 1С, УБЫВАНИЕ вместо УБЫВ. Ассистенту не нужно запускать конфигурацию, чтобы выяснить, что запрос не соберется.
Форму собирает генератор EDT, а не ассистент. Достаточно описать, какая форма нужна: create_form принимает назначение - форма объекта, форма списка, форма выбора, русские синонимы тоже принимаются, - и форму строит тот же генератор, которым пользуется мастер IDE, с основным реквизитом и рабочей раскладкой. Дальше она правится по частям: реквизиты и колонки, поля, таблицы динамических списков, команды, обработчики событий, параметры, командный интерфейс, функциональные опции. Результат читается через get_form_structure и просматривается глазами через get_form_screenshot, а validate_for_export ловит дефекты формы, которые проходят валидацию EDT и проявляются только при загрузке в информационную базу.
flowchart TD
Q["Разработчик описывает задачу"] --> S["AI исследует модель EDT:<br/>код, метаданные, зависимости"]
S --> P["Показывает предлагаемые изменения"]
P --> E["Изменяет BSL или метаданные"]
E --> V["Запускает валидацию EDT и тесты"]
V --> D{"Найдена проблема?"}
D -- Да --> B["Отлаживает сессию 1С"]
B --> E
D -- Нет --> R["Возвращает проверенный результат"]
flowchart TD
subgraph Client["MCP-клиент"]
AI["Claude · Cursor · Copilot · Cline"]
end
subgraph Plugin["Плагин AI-EDT · внутри процесса EDT"]
direction LR
HTTP["MCP endpoint<br/>Streamable HTTP + SSE"] --> GATE["Политика доступа<br/>пресеты и разрешения"] --> TOOLS["Фасады<br/>и мастерские"]
end
subgraph EDT["Службы 1C:EDT"]
direction LR
BM["Семантическая<br/>модель"]
AST["Парсер BSL"]
CHECKS["Валидация"]
DEBUG["Отладчик"]
end
subgraph Runtime["1С:Предприятие"]
APP["Клиент · сервер · задания · тесты"]
end
AI <-->|"JSON-RPC · localhost:12250"| HTTP
TOOLS --> BM
TOOLS --> AST
TOOLS --> CHECKS
TOOLS --> DEBUG
DEBUG <--> APP
По умолчанию сервер доступен по адресу http://localhost:12250/mcp. Плагин не является отдельным headless-сервером: EDT должна быть запущена, а целевой проект - загружен. Благодаря этому инструментам доступны разрешенные ссылки, выведенные типы, текущие маркеры валидации и состояние живой отладки.
- 1C:EDT 2026.1 или новее
- Java / JDK 17
- Maven 3.9+ для сборки из исходников
- MCP-совместимый клиент
- Windows для описанного ниже сценария сборки и установки
Для дополнительных возможностей потребуются YAxUnit, Vanessa Automation или конфигурация Attach. Подробнее - в разделе Дополнительные интеграции.
В корне репозитория выполните:
build.cmd [EDT_INSTALL_DIR]Альтернативный вариант - собрать Maven-реактор напрямую:
cd mcp
mvn clean verifyСгенерированный P2-репозиторий:
mcp/repositories/ru.aiedt.mcp.server.repository/target/repository
Установка сводится к одному сообщению агенту: он поставит плагин сам, без единого щелчка мышью. Нужен AI-агент с доступом к оболочке на той машине, где стоит EDT.
Скопируйте ему этот промпт:
Установи мне плагин AI-EDT в 1C:EDT.
Рецепт: https://github.com/Desko77/ai-edt/blob/main/docs/agent-install.md
Прочитай его целиком и следуй ему.
Ставь с update site https://desko77.github.io/ai-edt/ через Equinox p2 director
(1cedtc.exe из каталога установки EDT). Мастер "Установить новое ПО" не используй.
Это первая установка, поэтому -uninstallIU не передавай.
Перед установкой закрой запущенный сеанс EDT, запомнив его командную строку;
после установки запусти его теми же аргументами и дождись ответа status: ok
от health endpoint.
После этого поставь себе скил из каталога skills/ai-edt репозитория - без него
ты будешь пользоваться сервером вслепую. Порядок в skills/README.md.
Ничего не завершай принудительно. Если EDT не закрывается сам - остановись и скажи мне.
Если плагин уже установлен и вы его обновляете, замените предложение про первую установку на: Плагин уже установлен, обновляй его одним запросом director с -uninstallIU и -installIU.
Полный рецепт вместе с правилами обращения с запущенной средой - в docs/agent-install.md.
Оба ручных пути - мастер EDT и командная строка - ставят ту же фичу с того же update site, поэтому собирать плагин самостоятельно не обязательно:
https://desko77.github.io/ai-edt/
Этот адрес указывается в EDT так же, как локальный архив.
Шаг 1. Запустите EDT и откройте Справка → Установить новое ПО.
Шаг 2. Нажмите Добавить рядом с полем Работать с.
Шаг 3. В диалоге Добавить репозиторий укажите, откуда ставить. Подходит любой из вариантов:
- поле Расположение и адрес update site
https://desko77.github.io/ai-edt/; - Архив... и файл
mcp/repositories/ru.aiedt.mcp.server.repository/target/AI-EDT-<версия>.zipиз локальной сборки; - Расположение... и каталог
mcp/repositories/ru.aiedt.mcp.server.repository/target/repository.
Имя репозитория произвольное, например AI-EDT.
Шаг 4. Отметьте категорию AI-EDT или фичу AI-EDT (1C AI tools for EDT) внутри нее и нажмите Далее. Если список выглядит пустым, снимите флажок Группировать элементы по категории.
Шаг 5. Проверьте состав установки, примите лицензионное соглашение и нажмите Готово.
Шаг 6. Сборка не подписана, поэтому при первой установке EDT просит подтвердить установку неподписанного содержимого. Согласитесь, чтобы продолжить.
Шаг 7. Когда установщик предложит перезапустить EDT, нажмите Перезапустить.
После перезапуска переходите к разделу 4. Запуск и проверка.
Equinox P2 director ставит ту же фичу без интерфейса. Сначала закройте обновляемый сеанс EDT: запущенный экземпляр держит старый плагин в памяти до перезапуска, то есть перезапуск все равно понадобится, а сеанс, который сам выполняет операцию установки, удерживает блокировку профиля.
& "<EDT>\1cedtc.exe" -nosplash `
-application org.eclipse.equinox.p2.director `
-repository "file:///C:/path/to/AI-EDT/mcp/repositories/ru.aiedt.mcp.server.repository/target/repository" `
-uninstallIU ru.aiedt.mcp.server.feature.feature.group `
-installIU ru.aiedt.mcp.server.feature.feature.group `
-profileProperties org.eclipse.update.reconcile=trueФича - это p2-синглтон, поэтому установка новой версии поверх существующей не пройдет, если в том же запросе не удалить старую. При самой первой установке строку -uninstallIU нужно убрать: удалять еще нечего.
Для рабочей среды разработки скрипт scripts/edt-selfupdate.ps1 выполняет весь цикл: аккуратное закрытие, установку, перезапуск и проверку состояния.
Каким бы путем вы ни поставили плагин, установка на этом не заканчивается. Плагин дает агенту инструменты, но не объясняет, как ими пользоваться: какой фасад брать под задачу, какие проверки обязательны после правки, что означает ответ с ключом возврата. Это знание лежит в скиле skills/ai-edt и ставится копированием каталога:
Copy-Item -Recurse skills\ai-edt "$env:USERPROFILE\.claude\skills\ai-edt"cp -r skills/ai-edt ~/.claude/skills/ai-edtЭто расположение для Claude Code на уровне пользователя; каталог .claude/skills/ai-edt внутри проекта ограничит скил одним проектом. Если вы ставили плагин с update site и чекаута рядом нет, заберите каталог поверхностным клоном:
git clone --depth 1 https://github.com/Desko77/ai-edt.git "$env:TEMP\ai-edt-skill"
Copy-Item -Recurse "$env:TEMP\ai-edt-skill\skills\ai-edt" "$env:USERPROFILE\.claude\skills\ai-edt"
Remove-Item -Recurse -Force "$env:TEMP\ai-edt-skill"Для другого агента действует его собственное соглашение: SKILL.md - обычный Markdown с именем и описанием во front matter, файлы references/ подгружаются по мере надобности. Подробности - skills/README.md.
Скил необязателен: без него агент тоже работает, просто дороже - читает модули целиком, правит руками файлы, которыми владеет EDT, и повторяет вызов, который уже вернул ключ возврата.
Откройте Window → Preferences → AI-EDT и проверьте:
- порт сервера, обычно
12250; - нажмите Start, чтобы запустить сервер сейчас, либо включите Auto-start и перезапустите EDT;
- Plain text mode для клиентов без поддержки MCP resources;
- активный пресет инструментов.
После этого проверьте health endpoint:
curl.exe http://localhost:12250/healthГотовый экземпляр возвращает ответ со значениями status: ok и phase: ready. Если указано phase: indexing, дождитесь завершения загрузки проекта в EDT.
Добавьте сервер в %USERPROFILE%\.claude.json:
{
"mcpServers": {
"AI-EDT": {
"type": "http",
"url": "http://localhost:12250/mcp"
}
}
}Создайте .cursor/mcp.json в корне проекта и включите Plain text mode в настройках AI-EDT:
{
"mcpServers": {
"AI-EDT": {
"url": "http://localhost:12250/mcp"
}
}
}Создайте .vscode/mcp.json:
{
"servers": {
"AI-EDT": {
"type": "http",
"url": "http://localhost:12250/mcp"
}
}
}Конфигурации для Claude Desktop, Cline и Antigravity находятся в docs/clients.md.
Скил skills/ai-edt ставится на шаге установки - И сразу поставьте скил
агенту. Если вы его пропустили, сейчас самый момент: клиент уже
подключен, и разница видна с первого задания. Проверить просто - в Claude Code скил появляется в
списке доступных под именем ai-edt.
Попросите клиента вывести список проектов EDT или версию EDT. Успешный ответ должен содержать структурированную информацию о проекте, а не сообщение "инструмент недоступен".
Примеры запросов:
Покажи проекты EDT в текущем рабочем пространстве и кратко опиши состояние их валидации.
Найди все семантические ссылки на Справочник.Номенклатура и сгруппируй их по метаданным, формам и модулям BSL.
В основе API AI-EDT лежат фасады. Фасад принимает дискриминатор операции и направляет родственные действия через единую стабильную точку входа.
Tip
Открыть полный каталог инструментов →
Все группы инструментов, режимы доступа и раскрываемые описания ключевых фасадов.
| Фасад | Область применения |
|---|---|
code_search |
Текстовый поиск, ссылки, разрешение символов, иерархия вызовов, информация о символах и content assist. |
edit_metadata |
Изменение метаданных, форм, команд, ролей, сервисов, макетов и других элементов модели. |
launch_debugger |
Запуск/подключение, точки останова, шаги, переменные, вычисление выражений и профилирование. |
diagnostics |
Проблемы проекта, документация проверок, очистка и точечная перевалидация. |
insights |
Зависимости, метрики, антипаттерны, сравнение и анализ влияния. |
security_audit |
Права ролей, нарушения RLS и поиск чувствительных данных. |
project_admin / infobase_admin |
Проекты рабочего пространства, конфигурации запуска, обновление ИБ и синхронизация. |
dcs_workshop / mxl_workshop / xdto_workshop |
Программные конструкторы сложных артефактов 1С. |
extension_workshop / external_object_workshop |
Жизненный цикл расширений, внешних отчетов и обработок. |
yaxunit_tests |
Запуск или отладка выбранных тестов YAxUnit и чтение отчетов. |
Прежние отдельные имена инструментов сохранены как алиасы для обратной совместимости. Пресет Canonical скрывает их из tools/list, уменьшая расход контекста без потери возможностей.
На странице настроек Tools инструменты сгруппированы по назначению и доступны следующие пресеты:
| Пресет | Назначение |
|---|---|
| Canonical | Рекомендуемый вариант. В списке видны фасады, а алиасы совместимости остаются вызываемыми, но скрытыми. |
| All Tools | Показывает каждый зарегистрированный инструмент и алиас. Полезно для исследования API. |
| Read-only | Поиск, навигация и валидация без правок, отладки и обновления ИБ. |
| Editing | Чтение и запись без отладки. |
| Debug & Test | Чтение, отладка и тесты без изменения исходников и метаданных. |
| Code Review | Анализ кода и метаданных без записи. |
У каждого инструмента может быть состояние listed, callable-hidden или disabled. Скрытые инструменты продолжают принимать вызовы, отключенные - отклоняются. Благодаря этому Canonical уменьшает шум в каталоге, а ограничивающие пресеты действительно устанавливают границы доступа.
Caution
Плагин работает с правами процесса EDT. Он может изменять исходники, метаданные и информационные базы. Храните проект в системе контроля версий, проверяйте предпросмотр перед подтверждением разрушающих операций и не публикуйте локальный порт без аутентификации за пределами loopback-интерфейса.
По умолчанию сервер слушает только 127.0.0.1 и не требует аутентификации: за пределы машины он не выходит. Если endpoint нужно открыть наружу, на странице Preferences → AI-EDT есть две настройки, и включать их следует вместе:
- Bearer-токен. Кнопка генерации создает случайный токен; клиент передает его заголовком
Authorization: Bearer <токен>. Сравнение идет за константное время, чтобы токен нельзя было подобрать по времени ответа. Запрос без верного токена отклоняется до того, как дойдет до инструмента. - Привязка ко всем интерфейсам. Снимает ограничение loopback. Если ее включить без токена, плагин пишет предупреждение в лог: любой хост, который дотянется до машины, получит право читать и менять исходники и информационную базу.
Отдельная настройка включает маскирование данных, попадающих в ответ инструмента, - по категориям 152-ФЗ: ИНН, СНИЛС, номер карты, паспорт, телефон, email. По умолчанию выключена.
Что важно понимать про нее честно:
- Маскирование сделано с приоритетом точности над полнотой. ИНН, СНИЛС и карта проверяются по контрольной сумме, у паспорта и телефона обязателен разделитель - поэтому произвольный числовой идентификатор не будет испорчен. Обратная сторона: это не ловит ФИО, адреса и прочие персональные данные в свободном тексте.
- Маскируется собственный вывод инструмента и текст ошибок, но не конверт JSON-RPC и не бинарные изображения: структура ответа не меняется, только содержимое строк.
- Это снижает риск утечки в облачную модель, но не заменяет решение о том, какие данные вообще показывать ассистенту.
- Инструменты рефакторинга метаданных используют сценарий preview/confirm.
- Для незнакомых проектов рекомендуется пресет Read-only.
evaluate_expressionвыполняет код в живой сессии 1С.- Удаление ИБ, импорт конфигурации и синхронизацию можно отключить отдельно.
- Перед структурными обновлениями, которые нельзя отменить через Git, сделайте резервную копию ИБ.
Фасад отладки поддерживает обычные клиентские запуски и конфигурации Attach to 1C:Enterprise Debug Server. Attach необходим для HTTP-сервисов, серверных вызовов, фоновых и регламентных заданий, а также кода, выполняемого в rphost.
Агент получает список конфигураций запуска EDT, подключается к серверу отладки 1С, устанавливает точку останова и ждет приостановки. После этого AI-EDT возвращает стабильные ссылки на поток, стек и кадр, чтобы агент мог исследовать переменные, вычислять выражения, выполнять код по шагам и продолжать выполнение.
| Интеграция | Что становится доступно | Что нужно настроить |
|---|---|---|
| YAxUnit | Запуск и отладка unit-тестов, фильтрация наборов и разбор JUnit-отчетов. | Установить расширение YAxUnit в целевую информационную базу. |
| Vanessa Automation | Выполнение сценарных UI-тестов. | Отдельно настроить Vanessa и требуемую конфигурацию запуска. |
| Сервер отладки 1С | Отладка серверного BSL через Attach. | Запустить ragent с -debug -http и создать конфигурацию Attach в EDT. |
| BSL Language Server | Дополнительный анализ исходников через code_review. |
Указать внешний JAR в настройках AI-EDT. |
- AI-EDT зависит от внутренних и публичных служб EDT; после крупного обновления EDT может потребоваться новая версия плагина.
- Сервер доступен только при запущенной EDT.
- Для части семантических инструментов необходимо дождаться завершения индексации проекта.
- По умолчанию endpoint слушает loopback и не требует аутентификации. Bearer-токен и привязка ко всем интерфейсам есть в настройках, но включать их нужно осознанно - см. раздел про безопасность.
- Update site публикуется автоматически при выпуске релиза. Промежуточные сборки между релизами ставятся из исходников или из локального P2-репозитория.
Проект принимает воспроизводимые сообщения об ошибках, сфокусированные предложения возможностей, улучшения документации и pull request.
Начните с документов:
- CONTRIBUTING.md - сборка, стиль кода и правила участия;
- SECURITY.md - закрытая передача уязвимостей и модель угроз;
- docs/PROVENANCE.md - происхождение исходников и история переимплементации.
Структура репозитория:
mcp/
├── bundles/ # реализация OSGi-плагина
├── features/ # устанавливаемая Eclipse feature
├── repositories/ # генерируемый P2-репозиторий
├── targets/ # target platform EDT
└── tests/ # тесты плагина и контрактов
docs/ # руководства, аудиты и release notes
scripts/ # автоматизация разработки и обновления
Перед созданием pull request соберите Maven-реактор и опишите, как изменение было проверено на запущенном экземпляре EDT.
AI-EDT - самостоятельный продукт, созданный на основе EDT-MCP автора DitriX. Проект распространяется под лицензией AGPL-3.0-or-later; сохраненные уведомления и подробная история исходников описаны в LICENSE и docs/PROVENANCE.md.
GNU Affero General Public License версии 3.0 или новее. Полный текст - в LICENSE.












