Salt la conținutul principal

Introducere

@dineug/erd-editor-mcp este un server MCP care permite unui agent de programare să editeze diagrame erd-editor. Claude Code, Codex și orice alt client al Model Context Protocol primesc câte un instrument pentru fiecare operație asupra unui document: adăugarea unui tabel, redenumirea unei coloane, crearea unei relații între două tabele, importul unui dump DDL, citirea schemei sub formă de SQL.

Când documentul este deschis în ERD Editor din VS Code, Obsidian sau dintr-un IDE JetBrains, agentul se alătură editorului ca un colaborator. Fiecare modificare apare pe pânză în momentul în care se produce, iar anularea făcută de agent vizează doar propriile sale editări. VS Code păstrează modificările agentului nesalvate până la o salvare făcută de agent sau de dumneavoastră, în timp ce Obsidian și un IDE JetBrains le salvează așa cum le salvează pe ale dumneavoastră. Când niciun editor nu deține documentul, aceleași instrumente editează fișierul însuși.

Un agent de programare care adaugă tabele și relații într-o diagramă deschisă în VS Code

Ce poate face un agent​

  • Construiește sau modifică o schemă prin conversație: tabele, coloane și toate opțiunile coloanelor, relații cu cardinalitatea lor și cu acțiunile ON DELETE și ON UPDATE, indexuri, note, culori și poziții pe pânză. Consultați Relații.
  • Reunește tabele în grupuri de tabele: adaugă un grup în jurul tabelelor pe care le indică sau peste o zonă a pânzei, apoi îl redenumește, îl colorează, îl mută împreună cu tabelele sale, îl redimensionează, introduce tabele în el sau le scoate ori îl elimină, ceea ce lasă tabelele sale acolo unde se află. Consultați Grupuri de tabele.
  • Înlocuiește documentul cu o schemă obținută prin parsarea codului SQL DDL, GraphQL SDL, DBML sau AML ori cu un alt document .erd.json. Sau adaugă acea schemă ori acel document sub diagramă și păstrează tot ce există deja, așa cum face elementul Import and Add al editorului. Un bloc TableGroup din DBML devine un grup de tabele în ambele cazuri. Consultați Import.
  • Citește diagrama ca listă de ID-uri, ca entități întregi, ca textul .erd.json pe care îl scrie o salvare sau ca DDL pentru oricare dintre cele opt sisteme de baze de date, cu opțiunile Statements și Header ale filei Schemă SQL. La o schemă cu mii de tabele, citește pe rând câte o pagină, câteva tabele sau tabelele câtorva grupuri de tabele. Consultați Citirea unui document.
  • Setează baza de date, numele bazei de date și scripturile scrise înainte și după tabele în fila Schemă SQL, de exemplu CREATE EXTENSION înaintea lor sau GRANT după ele. Instrumentul erd_read returnează scripturile separat sau în cadrul codului DDL al întregului document. Consultați Setări.
  • Rulează mai multe editări ca una singură, aplicate toate sau niciuna, iar o singură anulare le inversează pe toate. Consultați erd_batch.
  • Anulează și reface propriile editări, niciodată pe ale dumneavoastră.

Ce nu face:

  • Nu modifică zoomul, nu derulează și nu comută filele. Acestea țin de fiecare persoană care privește diagrama, așa că niciun instrument nu face acest lucru. Un import care înlocuiește documentul mută totuși vizualizarea, chiar și cu rândul Viewport blocat, așa cum face elementul Import al editorului: înapoi la începutul pânzei, la 100%, sau, cu instrumentul erd_import_json, la vizualizarea documentului pe care îl încarcă și, în plus, la fila acestuia, cu excepția cazului în care acel document blochează rândul Canvas Type. Consultați Import.
  • Nu modifică View Option, limbajul și stilurile de denumire ale generatorului de cod, tipul de delimitator sau opțiunile Relationship DataType Sync, Maximum comment width și Column Order din fila Setări. Pe acestea le setați dumneavoastră în editor, iar agentul le citește așa cum le salvează fișierul.
  • Nu activează și nu dezactivează nicio blocare. Doar instrumentul erd_import_json, când înlocuiește întregul document, schimbă blocările sau setările de mai sus cu cele ale documentului pe care îl încarcă. Un document fără câmpul lockSettings, de exemplu un fișier salvat de extensia pentru VS Code înainte de versiunea 4.0.0 sau de pluginul pentru Obsidian ori JetBrains înainte de versiunea 1.0.0, activează toate blocările. Anularea oricărui import care a înlocuit documentul readuce setările și blocările pe care documentul le avea înainte.
  • Nu remapează o relație pe alte coloane, așa cum face caseta de dialog Map Columns. În schimb, agentul elimină relația, ceea ce lasă pe loc coloanele sale cheie străină, și leagă coloanele pe care le dorește cu instrumentul erd_link_columns, într-un singur apel erd_batch, pe care o singură anulare îl inversează.
  • Nu rulează generatorul de cod. Instrumentul erd_read răspunde cu DDL sau JSON, iar agentul scrie singur codul pe baza acestuia.

Cum funcționează​

Serverul este un proces stdio pe care îl pornește clientul MCP. La fiecare apel, caută un editor care deține documentul: o fereastră VS Code, o fereastră a unui seif Obsidian sau un IDE JetBrains, fiecare cu extensia sau pluginul ERD Editor.

  • În direct – un editor are documentul în spațiul său de lucru, în seiful său sau într-unul dintre proiectele sale deschise ori îl are deschis. Serverul se alătură sesiunii de editare a acelui editor, iar editarea ajunge în editor: nesalvată în VS Code și salvată așa cum sunt salvate editările dumneavoastră în Obsidian și într-un IDE JetBrains.
  • Fără interfață – niciun editor. Serverul încarcă fișierul, aplică editarea și rescrie fișierul.
  • Refuzat – un editor deține documentul, dar are hubul dezactivat. Serverul citește de pe disc, dar nu scrie nimic, deoarece editorul deschis ar putea suprascrie fișierul la următoarea salvare. Un IDE JetBrains cu hubul activat refuză, de asemenea, să modifice un document deținut doar de proiecte pe care nu le consideră de încredere, deși agentul îl poate citi în continuare. Când hubul editorului este activat, dar extensia sau pluginul său ERD Editor folosește alt protocol al hubului decât serverul, fiecare apel asupra documentului este refuzat, inclusiv citirile, cu codul protocolMismatch și un mesaj care indică partea ce trebuie actualizată (consultați Actualizarea).

Pentru detalii, consultați În direct și fără interfață.

Cerințe​

Node.js22.12 sau o versiune ulterioară, pentru a rula serverul
Un client MCPClaude Code, Codex sau orice client care poate porni un server stdio
VS Code, pentru editarea în direct1.101.0 sau o versiune ulterioară, cu extensia ERD Editor 4.0.0 sau o versiune ulterioară
Obsidian, pentru editarea în directAplicația pentru desktop 1.5.7 sau o versiune ulterioară, cu pluginul ERD Editor 1.0.0 sau o versiune ulterioară
Un IDE JetBrains, pentru editarea în directUn IDE bazat pe IntelliJ 2025.2 sau o versiune ulterioară, cu pluginul ERD Editor 1.0.0 sau o versiune ulterioară

Versiunea 1.0.0 a serverului și versiunile de mai sus folosesc protocolul 2 al hubului. Versiunile anterioare care deservesc agenți folosesc protocolul 1: extensia pentru VS Code de la versiunea 3.0.0 până la versiunea 3.1.0, pluginul pentru Obsidian în versiunile 0.1.0 și 0.2.0 și pluginul pentru JetBrains în versiunile 0.9.0 și 0.10.0. O astfel de versiune și versiunea 1.0.0 a serverului se refuză reciproc, la fel ca o versiune anterioară a serverului și versiunile de mai sus (consultați Actualizarea). O extensie pentru VS Code anterioară versiunii 3.0.0 sau un plugin pentru JetBrains anterior versiunii 0.9.0 nu are hub, așa că serverul nu îl vede și editează fișierul pe disc, chiar și pe cel al unei diagrame deschise în acesta.

Pasul următor: Instalare.