Einführung
@dineug/erd-editor-mcp ist ein MCP-Server, mit dem ein Coding-Agent Diagramme von erd-editor bearbeiten kann.
Claude Code, Codex und jeder andere Client des Model Context Protocol erhalten ein Tool pro Vorgang an einem Dokument: eine Tabelle hinzufügen, eine Spalte umbenennen, zwei Tabellen in Beziehung setzen, einen DDL-Dump importieren, das Schema als SQL auslesen.
Ist das Dokument im ERD Editor von VS Code, Obsidian oder einer JetBrains-IDE geöffnet, tritt der Agent dem Editor wie ein Mitbearbeiter bei. Jede Änderung erscheint auf der Zeichenfläche, sobald sie geschieht, und das Rückgängigmachen des Agenten nimmt nur seine eigenen Änderungen zurück. VS Code lässt die Änderungen des Agenten ungespeichert, bis der Agent oder Sie speichern, während Obsidian und eine JetBrains-IDE sie so speichern, wie sie Ihre eigenen speichern. Hält kein Editor das Dokument, bearbeiten dieselben Tools die Datei selbst.

Was ein Agent tun kann
- Ein Schema im Gespräch aufbauen oder ändern: Tabellen, Spalten und sämtliche Spaltenoptionen, Beziehungen mit ihrer Kardinalität und ihren Aktionen für ON DELETE und ON UPDATE, Indizes, Notizen, Farben und Positionen auf der Zeichenfläche. Siehe Beziehungen.
- Tabellen in Tabellengruppen zusammenfassen: eine Gruppe um die angegebenen Tabellen oder über einem Bereich der Zeichenfläche hinzufügen, sie dann umbenennen, einfärben, mit ihren Tabellen verschieben, ihre Größe ändern, Tabellen aufnehmen oder herausnehmen oder die Gruppe entfernen, wobei ihre Tabellen bleiben, wo sie sind. Siehe Tabellengruppen.
- Tabellen und Spalten mit den Wörtern und Begriffen der Registerkarte Wörterbuch des Editors benennen und Spalten mit deren Domänen verknüpfen, die ihnen ihre Datentypen geben. Er legt die logischen Namen von Tabellen und Spalten fest, und die Wörterbücher leiten daraus die physischen Namen ab, wie sie es im Editor tun, wobei ein von Hand geschriebener physischer Name bestehen bleibt, sofern er nicht leer ist. Er fügt Domänen, Wörter und Begriffe hinzu, ändert und entfernt sie und leitet, nachdem sich ein Wort oder Begriff geändert hat, die physischen Namen für eine Spalte, eine Tabelle oder das ganze Dokument neu ab. Er listet auf, was das Blatt
Checksder Registerkarte findet: verbotene, nicht registrierte und als Synonym geführte Wörter; Namen, die zwei Zeilen eines Wörterbuchs gemeinsam haben; Verknüpfungen mit einer Domäne, die das Dokument nicht führt; physische Namen, die von dem abweichen, den ihr Begriff ergibt; und Spalten, die vom Datentyp ihrer Domäne abweichen. Siehe Wörterbücher und Wörterbuchprüfungen. - Das Dokument durch ein Schema ersetzen, das aus SQL DDL, GraphQL SDL, DBML oder AML eingelesen wird, oder durch ein anderes Dokument im Format
.erd.json. Oder dieses Schema oder Dokument unterhalb des Diagramms hinzufügen und alles behalten, was bereits vorhanden ist, so wieImport and Addim Editor. Ein BlockTableGroupaus DBML kommt in beiden Fällen als Tabellengruppe an. Ein Schema, das das Dokument ersetzt, behält die Wörterbücher des Dokuments bei, ein Dokument, das es ersetzt, bringt seine eigenen mit, und ein Hinzufügen bringt keine mit. Siehe Import. - Das Diagramm samt seinen logischen Namen und Wörterbuchzeilen als Liste von IDs, als vollständige Entitäten oder als Text im Format
.erd.json, wie ihn ein Speichern schreibt, auslesen. Oder es als DDL für eine beliebige der acht Datenbanken auslesen, mit den OptionenStatementsundHeaderder Registerkarte Schema SQL und ihrem SchalterWrite logical names into empty comments. Bei einem Schema mit Tausenden von Tabellen liest er jeweils eine Seite, einige Tabellen oder die Tabellen einiger Tabellengruppen. Siehe Dokument lesen. - Die Datenbank, den Datenbanknamen und die Skripte festlegen, die in Schema SQL vor und nach den Tabellen geschrieben werden, etwa
CREATE EXTENSIONdavor oderGRANTdanach.erd_readliefert die Skripte für sich allein oder innerhalb der DDL des ganzen Dokuments. Siehe Einstellungen. - Mehrere Änderungen ganz oder gar nicht als eine einzige ausführen, die ein einziges Rückgängigmachen zurücknimmt. Siehe erd_batch.
- Seine eigenen Änderungen rückgängig machen und wiederholen, nie Ihre.
Was er nicht tut:
- Zoomen, scrollen oder Registerkarten wechseln. Das ist Sache jedes einzelnen Betrachters, daher tut das kein Tool. Ein Import, der das Dokument ersetzt, verschiebt die Ansicht trotzdem, selbst wenn
Viewportgesperrt ist, wie esImportim Editor tut: zurück zum Anfang der Zeichenfläche bei 100 % oder miterd_import_jsonzur Ansicht des geladenen Dokuments und auch zu dessen Registerkarte, es sei denn, dieses Dokument sperrtCanvas Type. Siehe Import. - Die Namensansicht zwischen
Physical Names,Logical NamesundBoth Nameswechseln. Sie gehört jedem einzelnen Betrachter, solange ihre Sperre eingeschaltet ist, wie in einem neuen Diagramm, und wird, sobald die Sperre ausgeschaltet ist, von Ihnen im Editor gewählt, daher tut das kein Tool. Der Agent liest und schreibt logische Namen unabhängig von der Ansicht. Einerd_import_json, das das Dokument ersetzt, bringt die Namensansicht des geladenen Dokuments nur mit, wenn bei diesem Dokument die SperreName Viewausgeschaltet ist. View Option, die Sprache und die Schreibweisen des Codegenerators, den Begrenzertyp oderRelationship DataType Sync,Maximum comment widthundColumn Orderauf der Registerkarte Einstellungen ändern. Diese legen Sie im Editor fest, und der Agent liest sie so, wie die Datei sie speichert.- Eine Sperre ein- oder ausschalten. Nur
erd_import_jsonändert die Sperren oder die oben genannten Einstellungen, wenn es das ganze Dokument ersetzt, und zwar auf die des Dokuments, das es lädt. Ein Dokument ohne das FeldlockSettings, etwa eine Datei, die die Erweiterung für VS Code vor4.0.0oder das Plugin für Obsidian oder JetBrains vor1.0.0gespeichert hat, schaltet jede Sperre ein. Das Rückgängigmachen eines beliebigen Imports, der das Dokument ersetzt hat, stellt die Einstellungen und Sperren wieder her, die das Dokument vorher hatte. - Eine Beziehung anderen Spalten neu zuordnen, wie es
Map Columnstut. Stattdessen entfernt der Agent die Beziehung, wobei ihre Fremdschlüsselspalten erhalten bleiben, und verknüpft die gewünschten Spalten miterd_link_columns, und zwar in einem einzigenerd_batch, das ein einziges Rückgängigmachen zurücknimmt. - Ein Wörterbuch als CSV importieren oder exportieren, ein Blatt sortieren oder Zeilen über oder unter einer Zeile einfügen, wie es die Registerkarte Wörterbuch tut. Der Agent fügt Zeilen hinzu, ändert und entfernt sie, viele auf einmal in einem einzigen
erd_batch, und eine neue Zeile kommt ans Ende ihres Blatts. - Den Codegenerator ausführen.
erd_readliefert DDL oder JSON, und der Agent schreibt daraus selbst Code.
Funktionsweise
Der Server ist ein stdio-Prozess, den Ihr MCP-Client startet. Bei jedem Aufruf sucht er nach einem Editor, der das Dokument hält: einem Fenster von VS Code, einem Vault-Fenster von Obsidian oder einer JetBrains-IDE, jeweils mit der Erweiterung oder dem Plugin ERD Editor.
- Live – ein Editor hat das Dokument in seinem Arbeitsbereich, seinem Vault oder einem seiner geöffneten Projekte oder hat es geöffnet. Der Server tritt der Bearbeitungssitzung dieses Editors bei, und die Änderung landet im Editor: in VS Code ungespeichert und in Obsidian und einer JetBrains-IDE so gespeichert wie Ihre eigenen Änderungen.
- Headless – kein Editor. Der Server lädt die Datei, wendet die Änderung an und schreibt die Datei zurück.
- Abgelehnt – ein Editor hält das Dokument, hat aber seinen Hub ausgeschaltet. Der Server liest vom Datenträger, schreibt aber nichts, da der geöffnete Editor die Datei bei seinem nächsten Speichern überschreiben könnte. Eine JetBrains-IDE mit eingeschaltetem Hub lehnt es außerdem ab, ein Dokument zu ändern, das nur in Projekten liegt, denen sie nicht vertraut, doch der Agent kann es weiterhin lesen. Ist der Hub des Editors eingeschaltet, spricht aber seine Erweiterung oder sein Plugin ERD Editor ein anderes Hub-Protokoll als der Server, wird jeder Aufruf für das Dokument abgelehnt, Lesevorgänge eingeschlossen, und zwar mit
protocolMismatchund einer Meldung, die die zu aktualisierende Seite nennt – siehe Aktualisieren.
Einzelheiten finden Sie unter Live und Headless.
Voraussetzungen
| Node.js | 22.12 oder neuer, um den Server auszuführen |
| Ein MCP-Client | Claude Code, Codex oder jeder Client, der einen stdio-Server starten kann |
| VS Code für die Live-Bearbeitung | 1.101.0 oder neuer, mit der Erweiterung ERD Editor 4.0.0 oder neuer |
| Obsidian für die Live-Bearbeitung | Die Desktop-App 1.5.7 oder neuer, mit dem Plugin ERD Editor 1.0.0 oder neuer |
| Eine JetBrains-IDE für die Live-Bearbeitung | Eine auf IntelliJ basierende IDE 2025.2 oder neuer, mit dem Plugin ERD Editor 1.0.0 oder neuer |
Der Server 1.0.0 oder neuer und die oben genannten Versionen sprechen das Hub-Protokoll 2.
Die früheren Versionen, die Agenten bedienen, sprechen Protokoll 1: die Erweiterung für VS Code von 3.0.0 bis 3.1.0, das Plugin für Obsidian 0.1.0 und 0.2.0 sowie das Plugin für JetBrains 0.9.0 und 0.10.0.
Eine solche Version und der Server 1.0.0 oder neuer lehnen einander ab, und ebenso ein älterer Server und die oben genannten Versionen – siehe Aktualisieren.
Eine Erweiterung für VS Code vor 3.0.0 oder ein Plugin für JetBrains vor 0.9.0 hat keinen Hub und ist daher für den Server unsichtbar, sodass er die Datei auf dem Datenträger bearbeitet, selbst ein darin geöffnetes Diagramm.
Die Tools für logische Namen, Domänen und die Wörterbücher benötigen den Server 1.1.0 oder neuer und, wo immer das Dokument geöffnet ist, mindestens die Erweiterung für VS Code 4.2.0 oder das Plugin für Obsidian oder JetBrains 1.2.0.
Von den oben genannten Versionen lässt eine Erweiterung vor 4.2.0 oder ein Plugin vor 1.2.0 den Agenten weiterhin live bearbeiten, da diese Versionen Protokoll 2 sprechen, ignoriert aber die logischen Namen, Domänenverknüpfungen und Wörterbuchzeilen, die der Agent schreibt, und lässt sie beim Speichern der Datei weg.
Ein Server vor 1.1.0, der eine Datei auf dem Datenträger bearbeitet, schreibt sie ohne ihre logischen Namen, Domänenverknüpfungen und Wörterbuchzeilen zurück – siehe Aktualisieren.
Bearbeitungen, die Sie und der Agent zeitgleich am selben Namen oder Feld oder an der Position oder Größe derselben Tabelle, Notiz oder Tabellengruppe vornehmen, enden im Editor und für den Agenten gleich, mit dem Server 1.2.0 oder neuer und, wo auch immer das Dokument geöffnet ist, der Erweiterung für VS Code 4.3.0 oder neuer oder dem Plugin für Obsidian oder JetBrains 1.3.0 oder neuer.
Eine Farbe, die Datenbank und die Reihenfolge der Spalten in einer Tabelle oder einem Index sind die Ausnahmen – siehe Zeitgleich vorgenommene Bearbeitungen.
Weiter: Installation.