Schemity について
Schemityは、データベースのスキーマやマイグレーションを扱うエンジニアとエージェント向けの、MCPサーバー内蔵型ローカルデータベース設計アプリです。SQLを実行せずにマイグレーションの影響を分析し、図の編集をレビュー用に保留します。エージェントにデータベース認証情報を渡さず、データベースへの書き込みも行いません。
主な機能
- 01行データを公開せずスキーマを読み取り
- 02実行前のマイグレーションファイル分析
- 03データ損失、ロック、依存オブジェクトの評価
- 04レビューと取り消しが可能な図の編集保留
- 05スキーマ検査と依存関係の確認
- 06Schemityで未保存の変更をプレビュー
活用シーン
- 01実行前のマイグレーションファイル確認
- 02テーブルの関係と依存関係の把握
- 03スキーマ変更案の安全なレビュー
- 04テーブルの分類と図の関係線の整理
MCP 対応
MCPサーバーはSchemityデスクトップアプリに組み込まれ、stdioまたはローカルのStreamable HTTPでMCPホストに接続します。スキーマ調査、マイグレーション分析、保留中の図編集ツールを提供し、エージェントが作成したSQLは実行しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Schemity MCP Server
ソフトウェアエンジニア向けデータベース設計ソフトウェアであるSchemityに組み込まれた、ローカルデータベース用のMCPサーバーです。AI エージェントは、稼働中のPostgreSQL、MySQL、MariaDB、SQL Server、SQLite、またはSnowflakeデータベースのスキーマを読み取り、マイグレーションの実行前にその影響を確認し、レビュー用に図の編集内容をステージングします。エージェントがデータベースの認証情報を取得することはなく、エージェントの操作によってデータベースに書き込みが行われることもありません。
サーバーはクローズドソースのSchemityデスクトップアプリに同梱されています。このリポジトリには、そのドキュメント、公開するツールの一覧(
tools.json)、すぐに貼り付けて使えるホスト設定(examples/)が含まれています。バグ報告や機能リクエストはschemity-feedbackにお寄せください。
統制された経路を使う理由
多くのデータベースMCPサーバーは、エージェントに接続文字列を渡し、エージェントが作成したSQLをそのまま実行します。Schemityはその逆の仕組みです。エージェントは、Schemityがデータベースから読み取った、現在開いている図を通じて作業します。
- 読み取りによって変更が加わることはありません。
- 編集内容はステージングされます。開いている図に未保存の変更として反映され、エージェント名で取り消し履歴に記録されます。保存前に内容を確認し、元に戻すことができます。
- 自分でマイグレーションを実行するまで、データベースに影響はありません。
- 間にベンダーのクラウドは入りません。 HTTPサーバーは
127.0.0.1のみで待ち受け、OSのキーチェーンに保存されたベアラートークンを必要とします。stdioホストはローカルソケット経由でアプリと通信します。スキーマが送信されるのは、エージェントホストがコードを送信する先だけです。ローカルモデルを使う場合は、スキーマはマシン内にとどまります。
ツール
Schemity 2.13.2時点で18個のツールがあります。エージェントが作成したSQLを実行するツールも、行データを返すツールもありません。すべての入力スキーマはtools.jsonにあります。
list_diagrams
現在Schemityで開いている図を一覧表示し、アクティブなタブを示します。読み取り専用です。
find_diagrams
保存済みの図をすべて、開いているかどうかにかかわらず、名前、データベース、またはワークスペースで検索し、一致度の高い順に表示します。読み取り専用です。
open_diagram
保存済みの図を新しいタブで開くか、前面に表示します。データベースに接続する図を開くときは、OSのキーチェーンパスワードを求められる場合があります。
open_schemity
Schemityを起動するか、前面に表示します。
get_schema
図または1つのコンテキストビューに含まれるテーブル、カラム、キー、チェック制約、インデックスに加え、命名規則と新しいテーブルに適用されるテンプレートを取得します。行データは含まれません。読み取り専用です。
get_dependencies
1つのテーブルへの依存関係と、そこからの依存関係を、両側のカラムとともに取得します。読み取り専用です。
get_context_views
コンテキストビュー、それらの間の依存関係、循環、および外部キーとして宣言されていない依存関係を取得します。読み取り専用です。
get_data_dictionary
説明を含む、ドキュメント化されたスキーマをMarkdown形式で取得します。読み取り専用です。
lint
規約、インデックスの不足、型の不一致など、スキーマに関する指摘を取得します。読み取り専用です。
get_pending_changes
図の未保存の編集内容を、その編集を生み出した取り消し履歴として取得します。読み取り専用です。
analyze_impact
保留中のマイグレーションに伴うコストを分析します。失われるデータ、既存の行に対して失敗するステートメント、大規模テーブルの書き換えやロック、依存するビューや関数が対象です。SQLは要求された場合にのみ提示し、実行はしません。読み取り専用です。
analyze_migration_file
手書き、またはPrisma、Alembic、Flywayで生成されたマイグレーションファイルを同様に分析します。解析のみを行い、実行はしません。読み取り専用です。
count_rows
指摘の根拠となる正確な件数を、60秒のタイムアウトを設定したSELECT COUNTとして取得します。要求された場合にのみ実行します。
show_preview
保留中の編集内容、マイグレーションファイル、または複数のテーブルを、指摘事項とともにSchemity上に描画して確認できるようにします。保存は行われません。
propose_changes
テーブル、カラム、リレーション、制約、インデックス、凡例、コンテキストビューを作成、変更、削除します。レビューできる未保存の編集としてステージングされます。作成したものを削除する場合は、事前に確認を求められます。
group_entities
ソースコードまたは説明をもとに、テーブルをドメイン別の凡例にグループ化します。レビューできる未保存の編集としてステージングされます。
route_relations
テーブルの周囲で関係線を再配置し、交差を減らします。未保存の編集としてステージングされ、レビューできます。
check_relation_lines
重なったり交差したりしている関係線と、曲がりの数を確認します。読み取り専用です。
プロンプトの例
普段の言葉で尋ねてください。エージェントのホストは、説明付きですべてのツールをモデルに渡し、リクエストに合うツールをモデルが呼び出します。「Schemity で」「図で」または図の名前を伝えると、対象が明確になります。コードリポジトリでは、「ステータス列を追加して」だけでは、エージェントがモデルファイルを変更する場合があります。
- 「Schemity で開いている図はどれですか?」
- 「Coffee Shop の図を開いてください。」
- 「現在の図のスキーマを説明してください。主なドメインは何ですか?」
- 「orders テーブルに依存しているものは何ですか?」
- 「現在の図を整理してください。このコードベースを参考に、テーブルをドメインごとにグループ化してください。」
- 「Billing の図の関係線の交差を解消してください。」
- 「Coffee Shop の図の変更点を見せてください。」
- 「未保存の変更を移行すると、どれくらいのコストがかかりますか?」
- 「実行する前に、migrations/0042_add_status.sql を shop データベースと照合してください。」
- 「図に loyalty_points テーブルを追加し、customers と関連付けてください。」
データベース
PostgreSQL、Supabase、MySQL、MariaDB、SQL Server、SQLite に、直接または SSH トンネル経由で接続できます。また、Snowflake にも対応しています。
セットアップ
- Schemity をインストールします。macOS、Windows、Linux に対応しています。
- エージェントに表示する図を開くか、エージェントが
find_diagramsとopen_diagramを使って保存済みの図を検索して開けるようにします。 - コントロールバーのプラグアイコンから、または
Cmd+Shift+A(macOS)/Ctrl+Shift+A(Windows、Linux)で MCP パネルを開きます。サーバーの状態、接続テスト、各ホスト向けの、お使いのプラットフォームに適したパスを含む設定例が表示されます。
以下の例では macOS のパスを使用しています。Windows と Linux では、代わりに MCP パネルから設定例をコピーしてください。
stdio:Claude Code、Claude Desktop、Codex、OpenCode
ホストは Schemity のバイナリを --mcp 付きで起動するため、アプリが閉じている場合も Schemity を起動できます。
Claude Code
claude mcp add --scope user schemity -- "/Applications/Schemity.app/Contents/MacOS/schemity" --mcp
Claude Desktop - claude_desktop_config.json に設定し、その後 Claude Desktop を再起動します
{
"mcpServers": {
"schemity": {
"command": "/Applications/Schemity.app/Contents/MacOS/schemity",
"args": ["--mcp"]
}
}
}
Codex - ~/.codex/config.toml
[mcp_servers.schemity]
command = "/Applications/Schemity.app/Contents/MacOS/schemity"
args = ["--mcp"]
OpenCode - opencode.json
{
"mcp": {
"schemity": {
"type": "local",
"command": ["/Applications/Schemity.app/Contents/MacOS/schemity", "--mcp"]
}
}
}
Streamable HTTP:Cursor およびその他の HTTP クライアント
Schemity を開いたままにしてください。HTTP ホストから Schemity を起動することはできません。ポートのデフォルトは 7332 で、パネルから変更できます。
Cursor - ~/.cursor/mcp.json
{
"mcpServers": {
"schemity": {
"url": "http://127.0.0.1:7332/mcp",
"headers": { "Authorization": "Bearer <token from the MCP panel>" }
}
}
}
トラブルシューティング
- 「Schemity が実行されていません」 - アプリを起動できるのは stdio ホストのみです。Cursor などの HTTP ホストでは、Schemity を手動で開いてから再試行してください。
- 401 Unauthorized - パネルでトークンが再生成されています。現在のトークンをコピーして、ホストの設定に入力してください。
- ポートが使用中 - パネルで別のポートを選択し、「Restart」をクリックしてください。
- ツールが図を「開いていない」と表示する - エージェントに
open_diagramで開くよう依頼するか、Schemity のウィンドウで図を手動で開いてください。
要件と価格
MCP サーバーはデスクトップ機能です。2 週間の無料トライアル(すべての機能が利用可能、クレジットカード不要)中、およびライセンス購入後に実行できます。ライセンスは $129 の買い切りです。無料のブラウザ版である Schemity Lite には含まれていません。
リンク
- ドキュメント:MCP 経由の AI エージェント
- 影響分析:実行前に移行のコストを確認
- ウェブサイト:schemity.com
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。