مقدمه
@dineug/erd-editor-mcp یک سرور MCP است که به یک عامل کدنویسی امکان میدهد نمودارهای erd-editor را ویرایش کند.
Claude Code، Codex و هر کلاینت دیگر Model Context Protocol برای هر عملیات روی سند یک ابزار در اختیار دارند: افزودن یک جدول، تغییر نام یک ستون، ایجاد رابطه میان دو جدول، وارد کردن یک دامپ DDL، بازخوانی طرحواره بهصورت SQL.
وقتی سند در VS Code، Obsidian یا یک IDE از JetBrains در ERD Editor باز است، عامل مانند یک همکار به ویرایشگر میپیوندد. هر تغییر همان لحظه که رخ میدهد روی بوم نمایان میشود، و واگرد عامل فقط ویرایشهای خودش را برمیگرداند. 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 ذخیرهشده، همانطور که ویرایشهای خودتان ذخیره میشوند.
- بدون رابط کاربری — هیچ ویرایشگری در کار نیست. سرور فایل را بارگذاری میکند، ویرایش را اعمال میکند و فایل را دوباره مینویسد.
- ردشده — ویرایشگری سند را در اختیار دارد اما هابش خاموش است. سرور از روی دیسک میخواند اما هیچ چیز نمینویسد، زیرا ویرایشگر باز ممکن است در ذخیرهٔ بعدی خود فایل را بازنویسی کند. یک IDE از JetBrains که هابش روشن است نیز تغییر سندی را که فقط در اختیار پروژههایی است که به آنها اعتماد ندارد رد میکند، هرچند عامل همچنان میتواند آن را بخواند. وقتی هاب ویرایشگر روشن است اما افزونه یا پلاگین ERD Editor آن از پروتکل هابی متفاوت با پروتکل سرور استفاده میکند، هر فراخوانی روی سند، از جمله خواندنها، با
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 استفاده میکنند.
نسخههای قدیمیتری که به عاملها سرویس میدهند از پروتکل 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 هاب ندارد، پس سرور آن را نمیبیند و فایل را روی دیسک ویرایش میکند، حتی نموداری را که در آن باز است.
بعدی: نصب.