Giriş
@dineug/erd-editor-mcp, bir kodlama ajanının erd-editor diyagramlarını düzenlemesini sağlayan bir MCP sunucusudur.
Claude Code, Codex ve diğer tüm Model Context Protocol istemcileri, bir belge üzerindeki her işlem için bir araç elde eder: bir tablo ekleme, bir sütunu yeniden adlandırma, iki tabloyu ilişkilendirme, bir DDL dökümünü içe aktarma, şemayı SQL olarak geri okuma.
Belge VS Code, Obsidian veya bir JetBrains IDE'si içindeki ERD Editor ile açık olduğunda, ajan düzenleyiciye bir ortak çalışan gibi katılır. Her değişiklik gerçekleştiği anda tuvalde görünür ve ajanın geri alma işlemi yalnızca kendi düzenlemelerini geri alır. VS Code, ajanın değişikliklerini ajan ya da siz kaydedene kadar kaydedilmemiş tutar, Obsidian ve bir JetBrains IDE'si ise bunları sizinkileri kaydettikleri gibi kaydeder. Belgeyi tutan bir düzenleyici yoksa aynı araçlar dosyanın kendisini düzenler.

Bir ajan neler yapabilir
- Sohbet içinde bir şema oluşturur veya değiştirir: tablolar, sütunlar ve tüm sütun seçenekleri, kardinaliteleri ile ON DELETE ve ON UPDATE eylemleriyle birlikte ilişkiler, dizinler, notlar, renkler ve tuval üzerindeki konumlar. İlişkiler bölümüne bakın.
- Tabloları tablo gruplarında toplar: Adını verdiği tabloların çevresine ya da tuvalin bir alanının üzerine bir grup ekler, ardından grubu yeniden adlandırır, renklendirir, tablolarıyla birlikte taşır, yeniden boyutlandırır, gruba tablo ekler veya gruptan tablo çıkarır ya da grubu, tablolarını oldukları yerde bırakarak kaldırır. Tablo grupları bölümüne bakın.
- Tabloları ve sütunları düzenleyicinin Sözlük sekmesindeki sözcüklerden ve terimlerden adlandırır ve sütunları, onlara veri türlerini veren değer alanlarına bağlar. Tabloların ve sütunların mantıksal adlarını ayarlar; sözlükler de fiziksel adları düzenleyicide olduğu gibi bunlardan türetir, ancak elle yazılmış bir fiziksel ad boş olmadıkça olduğu gibi kalır. Değer alanları, sözcükler ve terimler ekler, değiştirir ve kaldırır; bir sözcük veya terim değiştikten sonra fiziksel adları tek bir sütun, tek bir tablo ya da belgenin tamamı için yeniden türetir. Sekmenin
Checkssayfasının bulduklarını listeler: yasaklı, kayıtlı olmayan ve eş anlamlı sözcükler; bir sözlüğün iki satırının paylaştığı adlar; belgenin listelemediği bir değer alanına bağlantılar; terimlerinin verdiğinden farklı fiziksel adlar ve değer alanlarının veri türüne uymayan sütunlar. Sözlükler ve Sözlük denetimleri bölümlerine bakın. - Belgeyi SQL DDL, GraphQL SDL, DBML veya AML'den ayrıştırılan bir şemayla ya da başka bir
.erd.jsonbelgesiyle değiştirir. Ya da düzenleyicidekiImport and Addöğesinin yaptığı gibi, bu şemayı veya belgeyi diyagramın altına ekler ve zaten var olan her şeyi korur. Bir DBMLTableGrouptanımı her iki durumda da bir tablo grubu olarak gelir. Belgenin yerini alan bir şema belgenin sözlüklerini korur, belgenin yerini alan bir belge kendi sözlüklerini getirir, bir ekleme ise hiç sözlük getirmez. İçe aktarma bölümüne bakın. - Diyagramı mantıksal adları ve sözlük satırlarıyla birlikte bir kimlik listesi, eksiksiz varlıklar ya da bir kaydetme işleminin yazdığı
.erd.jsonmetni olarak geri okur. Ya da Şema SQL sekmesininStatementsveHeaderseçenekleri veWrite logical names into empty commentsanahtarıyla sekiz veritabanından herhangi biri için DDL olarak okur. Binlerce tablodan oluşan bir şemada her seferinde bir sayfa, birkaç tablo ya da birkaç tablo grubunun tablolarını okur. Belge okuma bölümüne bakın. - Veritabanını, veritabanı adını ve Şema SQL'de tablolardan önce ve sonra yazılan, tablolardan önceki bir
CREATE EXTENSIONya da sonraki birGRANTgibi betikleri ayarlar.erd_readaracı betikleri tek başına ya da belgenin tamamının DDL'i içinde verir. Ayarlar bölümüne bakın. - Birkaç düzenlemeyi ya hepsi ya hiçbiri ilkesiyle, tek bir geri alma adımı olan tek bir düzenleme olarak çalıştırır. erd_batch bölümüne bakın.
- Kendi düzenlemelerini geri alır ve yineler, sizinkileri asla.
Yapmadığı şeyler:
- Yakınlaştırmaz, kaydırmaz ve sekme değiştirmez. Bunlar her görüntüleyenin kendisine aittir, bu yüzden hiçbir araç bunları yapmaz. Yine de belgenin yerini alan bir içe aktarma, düzenleyicideki
Importöğesinin yaptığı gibi,Viewportkilitliyken bile görünümü taşır: %100 yakınlaştırmayla yeniden tuvalin başlangıcına ya daerd_import_jsonile yüklediği belgenin görünümüne ve o belgeCanvas Typeayarını kilitlemedikçe o belgenin sekmesine de. İçe aktarma bölümüne bakın. - Ad görünümünü
Physical Names,Logical NamesveBoth Namesarasında değiştirmez. Ad görünümü, yeni bir diyagramda olduğu gibi kilidi etkinken her görüntüleyenin kendisine aittir, kilit devre dışı bırakıldıktan sonra ise düzenleyicide sizin seçiminizdir; bu yüzden hiçbir araç onu değiştirmez. Ajan, görünüm ne olursa olsun mantıksal adları okur ve yazar. Belgenin yerini alan birerd_import_json, yüklediği belgenin Ad görünümünü yalnızca o belgedeName Viewkilidi devre dışıysa getirir. View Optionseçeneklerini, Kod oluşturucunun dilini ve ad biçimlerini, tırnak türünü ya da Ayarlar sekmesindekiRelationship DataType Sync,Maximum comment widthveColumn Orderayarlarını değiştirmez. Bunları düzenleyicide siz ayarlarsınız, ajan da bunları dosyanın kaydettiği şekliyle okur.- Bir kilidi etkinleştirmez veya devre dışı bırakmaz. Kilitleri ya da yukarıdaki ayarları yalnızca belgenin tamamının yerini alan
erd_import_jsonaracı, yüklediği belgeninkilerle değiştirir. VS Code uzantısının4.0.0sürümünden önceki ya da Obsidian veya JetBrains eklentisinin1.0.0sürümünden önceki bir sürümünün kaydettiği bir dosya gibi,lockSettingsalanı olmayan bir belge tüm kilitleri etkinleştirir. Belgenin yerini alan herhangi bir içe aktarmayı geri almak, belgenin önceden sahip olduğu ayarları ve kilitleri geri getirir. Map Columnsiletişim kutusunun yaptığı gibi bir ilişkiyi başka sütunlara yeniden eşlemez. Bunun yerine ajan, tek bir geri alma adımı olan tek birerd_batchçağrısında, ilişkiyi, yabancı anahtar sütunlarını yerinde bırakarak kaldırır ve istediği sütunlarıerd_link_columnsaracıyla bağlar.- Sözlük sekmesinin yaptığı gibi bir sözlüğü CSV olarak içe veya dışa aktarmaz, bir sayfayı sıralamaz ya da bir satırın üstüne veya altına satır eklemez. Ajan satır ekler, değiştirir ve kaldırır, tek bir
erd_batchiçinde birçoğunu birden; yeni bir satır da kendi sayfasının sonuna eklenir. - Kod oluşturucuyu çalıştırmaz.
erd_readaracı DDL ya da JSON ile yanıt verir, ajan da kodu bundan kendisi yazar.
Nasıl çalışır
Sunucu, MCP istemcinizin başlattığı bir stdio sürecidir. Sunucu her çağrıda belgeyi tutan bir düzenleyici arar: her birinde ERD Editor uzantısı veya eklentisi kurulu olan bir VS Code penceresi, bir Obsidian kasa penceresi ya da bir JetBrains IDE'si.
- Canlı – belge bir düzenleyicinin çalışma alanında, kasasında veya açık projelerinden birindedir ya da o düzenleyicide açıktır. Sunucu o düzenleyicinin düzenleme oturumuna katılır ve düzenleme düzenleyiciye yansır: VS Code'da kaydedilmemiş olarak, Obsidian'da ve bir JetBrains IDE'sinde ise kendi düzenlemeleriniz gibi kaydedilmiş olarak.
- Headless – düzenleyici yoktur. Sunucu dosyayı yükler, düzenlemeyi uygular ve dosyayı geri yazar.
- Reddedilir – belgeyi bir düzenleyici tutar, ancak düzenleyicinin hub'ı kapalıdır. Açık düzenleyici bir sonraki kaydetmesinde dosyanın üzerine yazabileceği için sunucu diskten okur ama hiçbir şey yazmaz. Hub'ı açık bir JetBrains IDE'si de yalnızca güvenmediği projelerin tuttuğu bir belgeyi değiştirmeyi reddeder, fakat ajan bu belgeyi yine de okuyabilir. Düzenleyicinin hub'ı açık olduğu hâlde düzenleyicideki ERD Editor uzantısı veya eklentisi sunucudan farklı bir hub protokolü kullandığında, okumalar dahil belgeye yapılan her çağrı
protocolMismatchkoduyla ve güncellenmesi gereken tarafı belirten bir iletiyle reddedilir. Güncelleme bölümüne bakın.
Ayrıntılar için Canlı ve headless sayfasına bakın.
Gereksinimler
| Node.js | Sunucuyu çalıştırmak için 22.12 veya sonraki bir sürüm |
| Bir MCP istemcisi | Claude Code, Codex veya bir stdio sunucusunu başlatabilen herhangi bir istemci |
| Canlı düzenleme için VS Code | 1.101.0 veya sonraki bir sürüm, ERD Editor uzantısının 4.0.0 veya sonraki bir sürümüyle birlikte |
| Canlı düzenleme için Obsidian | Masaüstü uygulamasının 1.5.7 veya sonraki bir sürümü, ERD Editor eklentisinin 1.0.0 veya sonraki bir sürümüyle birlikte |
| Canlı düzenleme için bir JetBrains IDE'si | IntelliJ tabanlı bir IDE'nin 2025.2 veya sonraki bir sürümü, ERD Editor eklentisinin 1.0.0 veya sonraki bir sürümüyle birlikte |
Sunucunun 1.0.0 veya sonraki bir sürümü ve yukarıdaki sürümler hub protokolü 2'yi kullanır.
Ajanlara hizmet veren daha eski sürümler protokol 1'i kullanır: VS Code uzantısının 3.0.0 sürümünden 3.1.0 sürümüne kadar olan sürümleri, Obsidian eklentisinin 0.1.0 ve 0.2.0 sürümleri ve JetBrains eklentisinin 0.9.0 ve 0.10.0 sürümleri.
Böyle bir sürüm ile sunucunun 1.0.0 veya sonraki bir sürümü birbirini reddeder, daha eski bir sunucu ile yukarıdaki sürümler de öyle. Güncelleme bölümüne bakın.
3.0.0 sürümünden önceki bir VS Code uzantısının ya da 0.9.0 sürümünden önceki bir JetBrains eklentisinin hub'ı yoktur, bu yüzden sunucu onu görmez ve diskteki dosyayı, o düzenleyicide açık olan bir diyagramı bile düzenler.
Mantıksal adlar, değer alanları ve sözlükler için araçlar, sunucunun 1.1.0 veya sonraki bir sürümünü ve belgenin açık olduğu her yerde en az VS Code uzantısının 4.2.0 sürümünü ya da Obsidian veya JetBrains eklentisinin 1.2.0 sürümünü gerektirir.
Yukarıdaki sürümlerden 4.2.0 sürümünden önceki bir uzantı veya 1.2.0 sürümünden önceki bir eklenti, protokol 2'yi kullandığı için ajanın canlı düzenleme yapmasına yine izin verir, ancak ajanın yazdığı mantıksal adları, değer alanı bağlantılarını ve sözlük satırlarını yok sayar ve dosyayı kaydettiğinde bunları dışarıda bırakır.
Bir dosyayı diskte düzenleyen, 1.1.0 sürümünden önceki bir sunucu dosyayı mantıksal adları, değer alanı bağlantıları ve sözlük satırları olmadan geri yazar. Güncelleme bölümüne bakın.
Aynı ada veya alana ya da aynı tablonun, notun veya tablo grubunun konumuna ya da boyutuna sizin ve ajanın aynı anda yaptığı düzenlemeler, sunucunun 1.2.0 veya sonraki bir sürümüyle ve belgenin açık olduğu her yerde VS Code uzantısının 4.3.0 veya sonraki bir sürümüyle ya da Obsidian veya JetBrains eklentisinin 1.3.0 veya sonraki bir sürümüyle düzenleyicide ve ajan için aynı sonuçla biter.
Bir renk, veritabanı ve bir tablodaki ya da dizindeki sütunların sırası istisnadır. Aynı anda yapılan düzenlemeler bölümüne bakın.
Sonraki adım: Kurulum.