מבוא
@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 שומרים אותם כפי שהם שומרים את השינויים של המשתמש. כשאין עורך שמחזיק את המסמך, אותם כלים עורכים את הקובץ עצמו.

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