Перейти до основного вмісту

Вступ

@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, вікно сховища (vault) Obsidian або IDE від JetBrains, у кожному з яких є розширення чи плагін ERD Editor.

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

Докладніше див. режими Live і Headless.

Вимоги​

Node.js22.12 або новіша, для запуску сервера
MCP-клієнтClaude Code, Codex або будь-який клієнт, що може запустити stdio-сервер
VS Code, для редагування в режимі Live1.101.0 або новіша, з розширенням ERD Editor версії 4.0.0 або новішої
Obsidian, для редагування в режимі LiveНастільний застосунок версії 1.5.7 або новішої, з плагіном ERD Editor версії 1.0.0 або новішої
IDE від JetBrains, для редагування в режимі LiveIDE на основі 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 не має хаба, тому сервер його не бачить і редагує файл на диску, навіть коли діаграму відкрито в ньому.

Далі: Встановлення.