メインコンテンツまでスキップ

はじめに

@dineug/erd-editor-mcp は、コーディングエージェントが erd-editor のダイアグラムを編集できるようにする MCP サーバーです。 Claude Code、Codex をはじめとする Model Context Protocol のクライアントは、ドキュメントに対する操作ごとに 1 つのツールを使えます。テーブルの追加、カラム名の変更、2 つのテーブルの関連付け、DDL ダンプの読み込み、SQL としてのスキーマの読み出しなどです。

ドキュメントが VS Code 拡張機能で開かれているときは、エージェントは共同編集の参加者のようにエディタに加わります。 変更はその場でキャンバスに現れ、エージェントかユーザーが保存するまで未保存のままです。エージェントの Undo は、エージェント自身の編集だけを元に戻します。 そのドキュメントを扱う VS Code のウィンドウがない場合は、同じツールがファイルそのものを編集します。

VS Code で開いているダイアグラムに、コーディングエージェントがテーブルとリレーションシップを追加する様子

エージェントにできること

  • 会話しながらスキーマを作成・変更します。テーブル、カラムとすべてのカラムオプション、リレーションシップ、インデックス、メモ、色、キャンバス上の位置が対象です。
  • SQL DDL、GraphQL SDL、DBML、AML から解析したスキーマや、別の .erd.json ドキュメントで、ドキュメントを置き換えます。
  • ダイアグラムを、ID の一覧、エンティティ全体、8 つのデータベースいずれかの DDL、または生の JSON として読み出します。数千のテーブルがあるスキーマでは、1 ページずつ、または数個のテーブルずつ読み取ります。ドキュメントの読み取りを参照してください。
  • ドキュメントに保存される設定を変更します。データベース、Code Generator の言語と名前のケース、括弧の種類、テーブルのどの部分を表示するかです。
  • 複数の編集を、すべて適用するか何も適用しないかの 1 つの編集として実行し、1 回の Undo で元に戻せます。erd_batch を参照してください。
  • 自身の編集を Undo・Redo します。ユーザーの編集は対象外です。

できないことは次のとおりです。

  • 拡大・縮小、スクロール、タブの切り替え。これらはドキュメントではなく各閲覧者に属するため、変更するツールはありません。
  • Code Generator の実行。erd_read は DDL か JSON を返し、エージェントはそこから自分でコードを書きます。
  • IntelliJ でのライブ編集。IntelliJ プラグインはサーバーが見つけられるロックファイルを置かないため、そこで開いているドキュメントは閉じているものとみなされ、エージェントはディスク上のファイルを編集します。プラグインはファイルを開くときにしか読み込まず、そこでユーザーが次に編集するとダイアグラム全体がエージェントの変更の上に書き戻されるため、エージェントが編集している間は IntelliJ でそのダイアグラムを閉じてください。

仕組み

サーバーは、MCP クライアントが起動する stdio プロセスです。 呼び出しのたびに、そのドキュメントを保持している VS Code のウィンドウを探します。

  • ライブ — ワークスペースにそのドキュメントを含むか、ドキュメントを開いているウィンドウがある場合です。サーバーはそのウィンドウの編集セッションに参加し、編集は未保存のままエディタに反映されます。
  • ヘッドレス — ウィンドウがない場合です。サーバーはファイルを読み込み、編集を適用して、ファイルに書き戻します。
  • 拒否 — ドキュメントを保持しているウィンドウはあるものの、そのハブがオフになっている場合です。サーバーはディスクから読み取りますが、何も書き込みません。開いているエディタが次に保存するときに、ファイルを上書きしてしまうためです。

詳しくはライブとヘッドレスを参照してください。

動作要件

Node.jsサーバーの実行に 22.12 以降
MCP クライアントClaude Code、Codex、または stdio サーバーを起動できる任意のクライアント
ライブ編集用の VS Code1.101.0 以降と、ERD Editor 拡張機能 3.0.0 以降

次はインストールです。