SkillAgentSearch skills...

ai-edt

MCP-сервер внутри 1C:EDT: дает AI-агентам семантический доступ к проекту - код BSL, метаданные, валидация и живая отладка

Install / Use

claude mcp add Desko77 -- npx -y github:Desko77/ai-edt

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

84/100

Supported Platforms

Claude Code
Claude Desktop

Tags

<div align="center">

Русский · English

<img src="docs/assets/readme/ai-edt-hero-agentic.svg" alt="AI-EDT - агентная разработка для 1C:EDT: AI-агент получает доступ к проекту и конфигурации через MCP-сервер" width="100%">

Сборка Релиз Update site Telegram

1C:EDT Java MCP License

Дайте AI-ассистенту структурированный доступ к проекту 1С через службы запущенного экземпляра EDT.

Быстрый старт · Возможности · Архитектура · Участие в разработке

</div>

AI-EDT - MCP-сервер в виде плагина, работающего внутри запущенного экземпляра 1C:EDT. Он позволяет Claude, Cursor, GitHub Copilot и другим MCP-клиентам исследовать и изменять метаданные и BSL, переходить по семантическим ссылкам, управлять отладчиком, проверять проекты и работать с подключенной информационной базой.

Вместо того чтобы воспринимать рабочее пространство EDT как каталог XML- и BSL-файлов, ассистент использует семантическую модель, индексы, валидаторы и службы отладки самой EDT.

[!IMPORTANT] Текущая версия работает на 1C:EDT 2026.2 и 2026.1. Сборка идет против 2026.1, поэтому один артефакт ставится на обе. Плагин работает везде, где работает EDT; на Windows рассчитаны только описанные ниже скрипты сборки и установки.

🎯 Зачем нужен AI-EDT

Ассистент с доступом только к тексту может искать по файлам, но не способен надежно отвечать на вопросы, зависящие от модели 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, искать потенциально чувствительные данные в коде и метаданных, отключать записывающие инструменты пресетами. | | 📦 Забирать поставку одним файлом | Импортировать конфигурацию или расширение из .cf и .cfe прямо в проект - последний сценарий, ради которого приходилось открывать Конфигуратор. | | 🔀 Обновлять конфигурацию на поддержке | Сравнить проект с новой поставкой и с общим предком, принять решения по объектам или по отдельным методам, применить обновление с сохранением доработок. Читать реестр поддержки поставщика и записывать режимы объектов в файл перед объединением. | | 🧯 Проверить расширение до обновления | Получить список объектов расширения, которые после новой поставки перестанут применяться, с причиной по каждому: изменившаяся сигнатура перехватываемого метода, исчезнувшая цель, несовпадение заимствованного объекта. | | 👀 Видеть, что делал агент | Открыть историю вызовов из строки состояния: что вызывалось, с какими аргументами и что ответило. | | 📜 Смотреть, что было в базе | Читать журнал регистрации файловой информационной базы: входы, проведения, обновления конфигурации, ошибки платформы - с отбором по времени, событию, пользователю и важности. | | 🧭 Не путать запущенные EDT | Сервер называет рабочую область, в которой запущен, а self_status перечисляет живые экземпляры на машине с портами и открытыми проектами. |

Сервер предоставляет более ста операций. Родственные действия объединены фасадами code_search, edit_metadata, launch_debugger, diagnostics, insights и security_audit, поэтому MCP-клиент видит компактный набор инструментов вместо длинного списка почти одинаковых команд.

🧮 Метаданные, запросы и формы - там, где текстовый ассистент ломается чаще всего

Метаданные создаются по описанию, а не правкой XML. Разработчику достаточно сказать, что нужно: справочник с такими-то реквизитами, документ с движениями, форма списка к нему. Ассистент раскладывает это в план операций edit_metadata и выполняет его одним пакетом, а не десятком разрозненных вызовов. Любой шаг заранее прогоняется с dryRun=true и показывает, что именно будет затронуто; удаление и прочие деструктивные операции требуют отдельного подтверждения. Изменения идут через модель EDT, а не текстом по .mdo, и сразу после применения объекты перевалидируются, так что ошибка видна на месте, а не при первой загрузке в информационную базу.

Запрос проверяется до того, как его кто-то запустит. validate_query разбирает текст в контексте проекта и возвращает синтаксические и семантические ошибки с номерами строк, отдельно для обычных запросов и для запросов СКД. Вместе с ними приходит список подсказок на типовые промахи: слова SQL вместо языка запросов 1С, УБЫВАНИЕ вместо УБЫВ. Ассистенту не нужно запускать конфигурацию, чтобы выяснить, что запрос не соберется.

И что этот запрос вернет - тоже. С describeResult=true тот же инструмент сообщает колонки каждого результата и их типы, взятые из модели конструктора запросов EDT, а не вычитанные из текста. Пакет разбирается целиком: временные таблицы не выдаются за результат, но занимают свою позицию в ВыполнитьПакет(), поэтому индексы совпадают с реальными. Тип, который определить нельзя, не указывается вовсе - уверенная неправда обошлась бы дороже честного пробела. Ассистент перестает угадывать имена колонок, а с ними уходит целый класс ошибок, которые иначе доживают до рантайма.

Форму собирает генератор EDT, а не ассистент. Достаточно описать, какая форма нужна: create_form принимает назначение - форма объекта, форма списка, форма выбора, русские синонимы тоже принимаются, - и форму строит тот же генератор, которым пользуется мастер IDE, с основным реквизитом и рабочей раскладкой. Дальше она правится по частям: реквизиты и колонки, поля, таблицы динамических списков, команды, обработчики событий, параметры, командный интерфейс, функциональные опции. Результат читается через get_form_structure - он же отдает настройки компоновки каждого динамического списка формы: порядок, отбор, группировки и условное оформление - и просматривается глазами через get_form_screenshot - в редакторе, а через vanessa с доводом formToOpen еще и в работающей 1С, где форму открывает сценарий и снимает такой, какой ее видит пользователь, - а validate_for_export ловит дефекты формы, которые проходят валидацию EDT и проявляются только при загрузке в информационную базу; ту же проверку update_database выполняет сам и отказывает на находке, не доводя дело до платформы.

🔄 Типичный цикл работы агента

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 должна быть запущена, а целевой проект - загружен. Благодаря этому инструментам доступны разрешенные ссылки, выведенные типы, текущие маркеры валидации и состояние живой отладки.

🚀 Быстрый старт

📋 1. Требования

  • 1C:EDT
    • 2026.2
    • 2026.1
  • Java / JDK
    • 25 - для 1C:EDT 2026.2
    • 17 - для 1C:EDT 2026.1
  • Maven 3.9+ для сборки из исходников
  • MCP-совместимый клиент
  • ОС - любая, где работает 1C:EDT. Плагин собирается и полностью прогоняет тесты на Linux в CI. Windows нужна только вспомогательным скриптам build.cmd и scripts/edt-selfupdate.ps1, а команды установки ниже записаны для PowerShell; сама установка через p2 director от ОС не зависит

Для дополнительных возможностей потребуются YAxUnit, Vanessa Automation или конфигурация Attach. Подробнее - в разделе Дополнительные интеграции.

🔨 2. Сборка

В корне репозитория выполните:

build.cmd [EDT_INSTALL_DIR]

Альтернативный вариант - собрать Maven-реактор напрямую:

cd mcp
mvn clean verify

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars10
CategoryDevelopment
Updated3d ago
Forks0

Languages

Java

Security Score

97/100

Audited on Sep 3, 2026

1 info