mcpField
S
sqemo

sqemo

ローカル
sqemo.comデータベース010 週間前に更新

sqemo について

sqemo-mcpは、AIエージェントやデータベースチームが共有命名規則に沿ってERDを設計するためのツールです。ローカルファイルとクラウドERDに対応し、スキーマの入出力や命名規則・稼働中のデータベースとの照合ができます。

主な機能

  1. 01エンティティとリレーションの照会・編集
  2. 02チーム用語集から物理名を生成
  3. 03SQLとDBMLのインポート・エクスポート
  4. 04ERDモデルの検証とLint
  5. 05モデルと稼働中のDBスキーマを比較
  6. 06CLIによるオフラインLintとエクスポート

活用シーン

  1. 01チームの命名規則に沿ったスキーマ設計
  2. 02インポート前のERD変更の確認
  3. 03モデルからSQLまたはDBMLを出力
  4. 04CIで命名規則からの逸脱を検出
  5. 05ERDとデータベーススキーマの比較

MCP 対応

MCPサーバーは、ERDの読み取り・編集、チーム命名規則の適用、SQLとDBMLの入出力を行うツールを提供します。ローカルの`.erd.json`ファイルはアカウント不要ですが、クラウドERDとProツールにはログインが必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sqemo-sqemo": {
"command": "npx",
"args": [
"-y",
"sqemo-mcp"
]
}
}
}
起動コマンドnpx -y sqemo-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmsqemo-mcp2.8.3

ツール

39

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
sourceanyはい対象の ERD — ローカルファイル({file})またはサーバー ERD({erdId})のいずれか一方

詳細

sqemo-mcp

npm version npm downloads MCP Registry Node License: MIT

Sqemo 用の MCP サーバー — チームのデータベース命名規則に従う AI エージェントを実現します。

エージェントはビジネス用語("Customer Number")でモデル化し、列名は cust_no になります。あなたの単語リストで customer → cust、number → no と定義されているためです(大文字・小文字や区切り文字もルールなので、設定を変えるだけで CUST_NO にできます)。同じ入力なら、どのテーブルでも、どのエージェントでも同じ名前になります。上書きもできますが、その場合はフラグが付けられ、CLI のリンターが CI での不整合を検出します。

{ "mcpServers": { "sqemo": { "command": "npx", "args": ["-y", "sqemo-mcp"] } } }

Claude Code、Claude Desktop、Cursor、およびすべての MCP クライアントで動作します。ローカルの .erd.json ファイルにはアカウントは不要です。クラウド ERD と Pro ツールには npx sqemo-mcp login が必要です。

使用例

メンバーが記事を投稿し、投稿への返信やコメントもできる掲示板をモデル化してください。

エージェントは論理名を使ってツールを呼び出すため、列名を入力することはありません。

upsert_entity    { logicalName: "Post" }
// → { physicalName: "POST" }

upsert_attribute { logicalName: "Post Content", domain: "Content" }
// → { physicalName: "POST_CNTS" }          // Content → CNTS: from the team word list

upsert_attribute { logicalName: "Delete Flag", domain: "Flag" }
// → { physicalName: "DELETE_YN" }          // Flag → YN: same rule in every table

lint_erd
// → naming drift, missing words, referential integrity — before any DDL is written

CNTS と YN はエージェントの好みではありません。チームがこれまでにモデル化したすべてのテーブルと同じ方法で適用される、単語リストの略語です。ドメインによってデータ型が決まるため、Content はどこに登場しても varchar(1000) になります。

AI エージェントでデータベーススキーマを構築 — 列名をひとつも指定せずに(3:25)

すべてのツール呼び出しを含む詳しい手順:作業内容を伝えて、統制されたスキーマを取得。

概要

AI エージェントはエンティティ、リレーションシップ、ドメインの照会と編集、共有チーム用語集からの物理名の生成、SQL(7 種類の方言)と DBML のインポート/エクスポート、ライブデータベースとのモデル比較を行えます。ローカルの .erd.json ファイルと、Sqemo クラウドに保存された ERD の両方で動作します。

Node.js >= 22 が必要です。ローカルファイル用のツールは、アカウントや設定なしで使用できます。クラウド ERD 用のツールと、以下で(Pro)と表示されているツールを使うにはログインが必要です。

インストール

Claude Code(.mcp.json)
{
  "mcpServers": {
    "sqemo": { "command": "npx", "args": ["-y", "sqemo-mcp"] }
  }
}
Claude Desktop

設定ファイルに同じ mcpServers エントリを追加します。

  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Cursor(.cursor/mcp.json)
{
  "mcpServers": {
    "sqemo": { "command": "npx", "args": ["-y", "sqemo-mcp"] }
  }
}

ログイン(クラウド ERD と Pro ツール)

npx sqemo-mcp login    # pick Google, GitHub, or email + password
npx sqemo-mcp logout   # removes stored credentials

login を実行すると、ログイン方法を選択できます。Google と GitHub の場合はブラウザータブが開き、PKCE OAuth フローを完了した後、127.0.0.1 上の一時的なループバックサーバーを介してセッションが戻されます。3 つ目の方法では、ターミナルでメールアドレスとパスワードを入力します。保存されるのはリフレッシュトークンのみです。

  • 認証情報は ~/.erdmaker/credentials.json に保存されます(POSIX ではモード 0600)。パスワードが保存されることはありません。
  • 非対話形式でのショートカット: --password はメールアドレスとパスワードを使う方法を強制し、--provider google|github はブラウザーベースの方法を強制します。
  • パイプ入力の場合、メニューを表示せずメールアドレスとパスワードの入力に進むため、既存の自動化もそのまま動作します:printf 'email\npassword\n' | npx sqemo-mcp login
  • ブラウザーベースの方法では、同じマシン上でブラウザーを使用できる必要があります(コールバックは 127.0.0.1 に戻ります)。SSH 経由または CI では、--password、または SQEMO_EMAIL/SQEMO_PASSWORD 環境変数を使用してください。

できること

ツールは合計 36 個です。

読み取り(17 個のツール)
ツール説明
list_erds / list_workspaces所属しているクラウド ERD とワークスペース(ログインが必要です)
get_erd_overview名前、方言、エンティティ/リレーションシップ/ドメイン/用語集の統計
list_entities / get_entityエンティティ一覧と詳細情報(属性、キー、論理/物理マッピング)
list_relationshipsエンドポイントとカーディナリティを含むリレーションシップ
list_domainsドメイン定義(ワークスペースの標準用語集の定義も含みます)
search_dictionaryチーム用語集を検索します(論理語/物理語、略語、同義語)
check_naming論理名をチームの命名規則に照らして確認します
generate_physical_name用語集と命名規則を使って、論理名から物理名を生成します
export_sqlCREATE TABLE SQL — mysql、postgres、cubrid、oracle、sqlserver、sqlite、h2
export_dbmlDBML テキスト
validate_erd / lint_erd構造検証と完全なリンティング(命名規則の不一致、参照整合性、重複)
diff_erds2 つのソースを比較します(ファイル、クラウド ERD、または生の SQL/DBML テキスト)— インポート前のドライラン
export_alter_sqlベースラインとの差分から物理モデルのマイグレーション(ALTER)スクリプトを生成します — 安定した ID により名前変更は名前変更として維持され、破壊的な変更はコメントアウトされます(Pro)
list_proposals用語集への提案キューの状態(ログインが必要です)
ライブデータベース(2 個のツール)

ご自身のデータベースに対する読み取り専用操作です。どちらも情報スキーマのみを照会し、 テーブルデータは一切参照しません。また、接続 URL はこのローカルプロセスのみで使用され、 Sqemo サーバーに送信されることはありません。

ツール説明
introspect_dbライブの PostgreSQL/MySQL スキーマを既存の ERD にインポートします(Pro)
check_db_driftライブデータベースまたはスキーマダンプを ERD の物理モデルと照合します — テーブルや列の不足/余分、PK/FK/NOT NULL の不一致を確認します(Pro)
書き込み(17 個のツール)
ツール説明
create_erdゼロから、または SQL/DBML テキストから新しい ERD を作成します — ファイルまたはクラウドに保存できます
upsert_entity / delete_entity物理名を自動導出するエンティティ編集
upsert_attribute / delete_attribute属性編集 — PK の規則と FK の反映は自動で処理されます
upsert_relationship / delete_relationshipFK を自動導出するリレーションシップ編集
upsert_domain / delete_domainドメイン定義の編集
upsert_dictionary_word / delete_dictionary_word用語集の編集(標準にリンクされた用語集は保護されています)
update_naming_rules命名規則の編集(区切り文字、大文字/小文字、未知の単語の処理)
import_sql / import_dbml解析した SQL/DBML から ERD を置き換えます(ID は維持されます)
auto_layoutエンティティ/テーブルを自動配置します(dagre)
propose_dictionary_word / withdraw_proposalオーナーの承認を求めて新しい用語集の単語を提案します/提案を取り下げます

クラウドへの書き込みには、オーナーまたは共有編集者の権限が必要です。並行編集に対しては、 バージョン CAS と 3 者間の自動マージで保護されます。

CI パイプライン用 CLI

オフラインで実行できるファイルベースのサブコマンドです(ログインは不要です)。

# Naming-standard check — exits 1 on violations, great as a CI gate
npx sqemo-mcp lint schema.erd.json

# Schema export to stdout
npx sqemo-mcp export schema.erd.json --format sql --dialect postgres > schema.sql
npx sqemo-mcp export schema.erd.json --format dbml > schema.dbml

ドリフトモードでは、モデルを実際のデータベースまたはダンプと比較し、不一致がある場合は 1 を終了コードとして返します(Pro、ログインが必要です)。

npx sqemo-mcp lint schema.erd.json --db "$DATABASE_URL" [--db-schema public] [--strict]
npx sqemo-mcp lint schema.erd.json --schema dump.sql --dialect postgres
npx sqemo-mcp lint --erd <cloud-erd-id> --db "$DATABASE_URL" --ignore 'tmp_*'

GitHub Actions の例:

- run: npx sqemo-mcp lint schema.erd.json
- run: npx sqemo-mcp lint schema.erd.json --db "${{ secrets.DATABASE_URL }}"

環境変数

変数用途
SQEMO_EMAIL / SQEMO_PASSWORDCI と SSH セッションでの非対話型ログイン(ブラウザーは不要です)
ERDMAKER_HOME認証情報ディレクトリを上書きします(デフォルトは ~/.erdmaker です)
ERDMAKER_SUPABASE_URLAPI URL を上書きします(デフォルトは Sqemo クラウドです)
ERDMAKER_SUPABASE_ANON_KEYAPI の公開可能キーを上書きします
ERDMAKER_MAX_REQUESTS_PER_MINUTE1 分あたりのリクエスト上限(デフォルトは 120、0 で無効になります)
ERDMAKER_MAX_REQUESTS_PER_DAY1 日あたりのリクエスト上限(デフォルトは 10000、0 で無効になります)

リクエスト上限は、エージェントがループに陥った場合の安全策です。上限を超えると、 エージェントに停止してユーザーに知らせるよう指示する rate_limited エラーが返されます。

エラー

すべてのツールエラーは { code, message } を返します。例:not_authenticated、no_permission、 save_conflict(再読み込み後に再試行)、validation_failed、rate_limited。

リンク

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。