דילוג לתוכן הראשי

מבוא

@dineug/erd-editor-mcp הוא שרת MCP שמאפשר לסוכן קוד לערוך תרשימים של erd-editor. Claude Code, Codex וכל לקוח אחר של ה-Model Context Protocol מקבלים כלי אחד לכל פעולה על מסמך: הוספת טבלה, שינוי שם של עמודה, יצירת קשר בין שתי טבלאות, ייבוא dump של 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.

  • חי – עורך מכיל את המסמך בסביבת העבודה שלו, בכספת שלו או באחד מהפרויקטים הפתוחים שלו, או שהמסמך פתוח בו. השרת מצטרף לסשן העריכה של אותו עורך, והעריכה מגיעה לעורך: ב-VS Code היא נשארת לא שמורה, וב-Obsidian וב-IDE של JetBrains היא נשמרת כמו העריכות של המשתמש.
  • ללא ממשק – אין עורך. השרת טוען את הקובץ, מחיל את העריכה וכותב את הקובץ בחזרה.
  • נדחה – עורך מחזיק את המסמך, אבל ה-hub שלו כבוי. השרת קורא מהדיסק אבל אינו כותב דבר, כי העורך הפתוח עלול לדרוס את הקובץ בשמירה הבאה שלו. גם IDE של JetBrains שה-hub שלו מופעל דוחה שינוי של מסמך שמוחזק רק על ידי פרויקטים שהוא אינו נותן בהם אמון, אף שהסוכן עדיין יכול לקרוא אותו. כשה-hub של העורך מופעל, אבל ההרחבה או התוסף של ERD Editor בעורך מדברים בפרוטוקול hub שונה מזה של השרת, כל קריאה שנוגעת למסמך נדחית, כולל כלי הקריאה, עם protocolMismatch והודעה שמציינת את הצד שיש לעדכן – ראו עדכון.

לפרטים, ראו מצב חי ומצב ללא ממשק.

דרישות​

Node.js22.12 ומעלה, להרצת השרת
לקוח MCPClaude 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 של פרוטוקול ה-hub. הגרסאות הקודמות שמשרתות סוכנים מדברות בפרוטוקול 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 אין hub, ולכן השרת אינו רואה אותם ועורך את הקובץ בדיסק, אפילו תרשים שפתוח בהם.

השלב הבא: התקנה.