Перейти к основному содержимому

Введение

@dineug/erd-editor-mcp — это MCP-сервер, который позволяет агенту для программирования редактировать диаграммы erd-editor. Claude Code, Codex и любой другой клиент Model Context Protocol получают по одному инструменту на каждую операцию с документом: добавить таблицу, переименовать столбец, связать две таблицы, импортировать дамп DDL, прочитать схему обратно в виде SQL.

Когда документ открыт в ERD Editor для VS Code, Obsidian или IDE JetBrains, агент подключается к редактору как соавтор. Каждое изменение появляется на холсте сразу, как только оно вносится, а отмена, которую выполняет агент, откатывает только его собственные правки. VS Code оставляет изменения агента несохраненными, пока документ не сохранит агент или вы, а Obsidian и IDE JetBrains сохраняют их так же, как сохраняют ваши собственные. Если документ не находится ни в одном редакторе, те же инструменты редактируют сам файл.

Добавление агентом для программирования таблиц и связей в диаграмму, открытую в VS Code

Что может агент​

  • Создавать или изменять схему в ходе диалога: таблицы, столбцы и все параметры столбцов, связи с их кардинальностью и действиями ON DELETE и ON UPDATE, индексы, заметки, цвета и расположение на холсте. См. Связи.
  • Объединять таблицы в группы таблиц: добавлять группу вокруг названных им таблиц или поверх области холста, а затем переименовывать ее, задавать ей цвет, перемещать вместе с ее таблицами, изменять ее размер, добавлять в нее таблицы или исключать их из нее либо удалять ее, оставляя таблицы на своих местах. См. Группы таблиц.
  • Заменять документ схемой, полученной при разборе SQL DDL, GraphQL SDL, DBML или AML, либо другим документом .erd.json. Или добавлять эту схему или документ под диаграммой, сохраняя все, что в ней уже есть, как это делает пункт Import and Add в редакторе. Блок TableGroup из DBML в обоих случаях становится группой таблиц. См. Импорт.
  • Читать диаграмму обратно в виде списка идентификаторов, сущностей целиком, текста .erd.json, который записывается при сохранении, или DDL для любой из восьми баз данных с вариантами Statements и Header вкладки «Схема SQL». В схеме из тысяч таблиц агент читает за раз страницу, несколько таблиц или таблицы нескольких групп таблиц. См. Чтение документа.
  • Задавать базу данных, имя базы данных и скрипты, которые записываются в Схеме SQL перед таблицами и после них, например CREATE EXTENSION перед таблицами или GRANT после них. Инструмент erd_read выдает скрипты отдельно или в составе DDL всего документа. См. Настройки.
  • Выполнять несколько правок как одну, которая применяется целиком или не применяется вовсе и откатывается одной отменой. См. erd_batch.
  • Отменять и повторять собственные правки, но никогда не ваши.

Чего агент не делает:

  • Масштабировать, прокручивать или переключать вкладки. Это остается за каждым, кто просматривает документ, поэтому ни один инструмент этого не делает. Импорт, заменяющий документ, все же перемещает вид даже при включенной блокировке Viewport, как и пункт Import в редакторе: обратно в начало холста с масштабом 100% или, в случае erd_import_json, к виду загружаемого документа, а также на его вкладку, если только в этом документе не включена блокировка Canvas Type. См. Импорт.
  • Изменять переключатели View Option, язык и стили имен Генератора кода, тип кавычек или параметры Relationship DataType Sync, Maximum comment width и Column Order на вкладке «Настройки». Их задаете вы в редакторе, а агент читает их в том виде, в каком они сохранены в файле.
  • Включать или выключать блокировку. Только инструмент erd_import_json при замене всего документа меняет блокировки или перечисленные выше настройки — на значения из загружаемого документа. В документе без поля lockSettings, например в файле, сохраненном расширением VS Code до версии 4.0.0 либо плагином Obsidian или JetBrains до версии 1.0.0, включены все блокировки. Отмена любого импорта, заменившего документ, возвращает настройки и блокировки, которые были у документа до этого импорта.
  • Заново сопоставлять связь с другими столбцами, как это делает окно Map Columns. Вместо этого агент удаляет связь, при этом ее столбцы внешнего ключа остаются на месте, и связывает нужные ему столбцы с помощью erd_link_columns — в одном вызове erd_batch, который откатывается одной отменой.
  • Запускать Генератор кода. Инструмент erd_read возвращает DDL или JSON, и агент сам пишет код на их основе.

Как это работает​

Сервер — это stdio-процесс, который запускает MCP-клиент. При каждом вызове он ищет редактор, в котором находится документ: окно VS Code, окно хранилища Obsidian или IDE JetBrains, в каждом из которых установлено расширение или плагин ERD Editor.

  • Live — документ находится в рабочей области, хранилище или одном из открытых проектов редактора либо открыт в редакторе. Сервер подключается к сеансу редактирования этого редактора, и правка попадает в редактор: в VS Code она остается несохраненной, а в Obsidian и IDE JetBrains сохраняется так же, как ваши собственные правки.
  • Headless — редактора нет. Сервер загружает файл, применяет правку и записывает файл обратно.
  • Отказ — документ находится в редакторе, но хаб этого редактора выключен. Сервер читает с диска, но ничего не записывает, так как открытый редактор может перезаписать файл при следующем сохранении. IDE JetBrains с включенным хабом также отказывается изменять документ, который находится только в проектах, которым она не доверяет, хотя агент по-прежнему может его читать. Если хаб редактора включен, но его расширение или плагин ERD Editor использует протокол хаба, отличный от протокола сервера, все вызовы для этого документа, в том числе чтение, отклоняются с кодом protocolMismatch и сообщением, в котором указано, какую сторону нужно обновить, — см. Обновление.

Подробнее см. Режимы Live и Headless.

Требования​

Node.jsВерсия 22.12 или новее для запуска сервера
MCP-клиентClaude Code, Codex или любой клиент, который может запустить stdio-сервер
VS Code для редактирования вживуюВерсия 1.101.0 или новее с расширением ERD Editor версии 4.0.0 или новее
Obsidian для редактирования вживуюНастольное приложение версии 1.5.7 или новее с плагином ERD Editor версии 1.0.0 или новее
IDE JetBrains для редактирования вживуюIDE на основе IntelliJ версии 2025.2 или новее с плагином ERD Editor версии 1.0.0 или новее

Сервер версии 1.0.0 и перечисленные выше версии используют протокол хаба 2. Более ранние версии с поддержкой агентов используют протокол 1: расширение VS Code версий с 3.0.0 по 3.1.0, плагин Obsidian версий 0.1.0 и 0.2.0 и плагин JetBrains версий 0.9.0 и 0.10.0. Такая версия и сервер версии 1.0.0 отклоняют друг друга, и так же ведут себя более ранний сервер и перечисленные выше версии — см. Обновление. У расширения VS Code до версии 3.0.0 или плагина JetBrains до версии 0.9.0 нет хаба, поэтому сервер не видит такой редактор и редактирует файл на диске, даже если диаграмма открыта в нем.

Далее: Установка.