mcpField
M
mcp-server-sql-analyzer

mcp-server-sql-analyzer

ローカル
github.com/j4c0bsデータベース3269 週間前に更新

mcp-server-sql-analyzer について

SQLGlot を利用して、SQL の構文チェック、方言間の変換、テーブルおよびカラム参照の抽出を行う MCP サーバーです。SQL の生成や移行を検証したいユーザー向けです。

主な機能

  1. 01エラー位置を含む SQL 構文チェック
  2. 02SQL 方言間の変換
  3. 03テーブルおよび CTE 参照の抽出
  4. 04テーブル情報付きのカラム参照の抽出
  5. 05対応 SQL 方言の一覧取得

活用シーン

  1. 01生成した SQL を使用前に検証
  2. 02MySQL のクエリを PostgreSQL へ移行
  3. 03複雑なクエリのテーブルとカラムの依存関係の分析

MCP 対応

本プロジェクトは MCP サーバーであり、lint_sql や transpile_sql などのツールと dialects://all リソースを通じて SQL 分析機能を MCP クライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"sql-analyzer": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
起動コマンドnpx -y @modelcontextprotocol/inspector

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

パッケージ
npm@modelcontextprotocol/inspector

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-server-sql-analyzer

SQLGlot を使用して、SQL の分析、リンティング、方言変換機能を提供する Model Context Protocol(MCP)サーバーです。

概要

SQL Analyzer MCP サーバーは、SQL クエリを分析して処理するためのツールを提供します。次のことに役立ちます。

  • SQL 構文の検証とリンティング
  • 異なる SQL 方言間でのクエリの変換(例:MySQL から PostgreSQL)
  • テーブル参照と依存関係の抽出および分析
  • カラムの使用状況と関連性の特定
  • 対応している SQL 方言の確認
Claude によるこのサーバーの使用方法

AI アシスタントとして、このサーバーは SQL を効率的に扱えるようユーザーを支援する能力を高めます。

  1. クエリの検証:ユーザーに提案する前に SQL 構文をすばやく検証できるため、正しく、方言に適したクエリを提示できます。

  2. 方言の変換:異なるデータベースシステム間でクエリを移行する必要がある場合、クエリのロジックを維持しながら、構文を正確に変換できます。

  3. コード分析:テーブルとカラムの参照分析により、複雑なクエリを理解しやすくなり、クエリの構造を説明したり、最適化を提案したりしやすくなります。

  4. 互換性の確認:対応している方言とそれぞれの機能を把握することで、データベース固有のベストプラクティスを案内できます。

このツールセットにより、構文エラーや方言固有の問題のリスクを抑えながら、SQL 関連の支援をより正確かつ有用なものにできます。

ヒント

Claude Desktop の設定で個人設定を更新し、生成された SQL を lint_sql ツールで最初に検証するよう指定してください。

ツール

  1. lint_sql

    • SQL クエリの構文を検証し、エラーがあれば返します
    • 入力:
      • sql (string):分析する SQL クエリ
      • dialect (string, optional):SQL 方言(例:'mysql'、'postgres')
    • 戻り値:ParseResult。次の内容を含みます。
      • is_valid (boolean):SQL が有効かどうか
      • message (string):エラーメッセージ、または「構文エラーはありません」
      • position (object, optional):エラーがある場合の行と列
  2. transpile_sql

    • 異なる方言間で SQL を変換します
    • 入力:
      • sql (string):変換する SQL 文
      • read_dialect (string):変換元の SQL 方言
      • write_dialect (string):変換先の SQL 方言
    • 戻り値:TranspileResult。次の内容を含みます。
      • is_valid (boolean):変換に成功したかどうか
      • message (string):エラーメッセージ、または成功を示すメッセージ
      • sql (string):変換に成功した場合の変換後の SQL
  3. get_all_table_references

    • SQL からテーブルと CTE の参照を抽出します
    • 入力:
      • sql (string):分析する SQL 文
      • dialect (string, optional):SQL 方言
    • 戻り値:TableReferencesResult。次の内容を含みます。
      • is_valid (boolean):分析に成功したかどうか
      • message (string):ステータスメッセージ
      • tables (array):タイプ、カタログ、データベース、テーブル名、エイリアス、完全修飾名を含むテーブル参照の一覧
  4. get_all_column_references

    • テーブルのコンテキストとともにカラム参照を抽出します
    • 入力:
      • sql (string):分析する SQL 文
      • dialect (string, optional):SQL 方言
    • 戻り値:ColumnReferencesResult。次の内容を含みます。
      • is_valid (boolean):分析に成功したかどうか
      • message (string):ステータスメッセージ
      • columns (array):カラム名、テーブル名、完全修飾名を含むカラム参照の一覧

リソース

SQL 方言の確認
dialects://all

すべてのツールで使用できる、対応 SQL 方言の一覧を返します。

設定

uvx を使用する場合(推奨)

claude_desktop_config.json に以下を追加します。

{
  "mcpServers": {
      "sql-analyzer": {
          "command": "uvx",
          "args": [
              "--from",
              "git+https://github.com/j4c0bs/mcp-server-sql-analyzer.git",
              "mcp-server-sql-analyzer"
          ]
      }
  }
}
uv を使用する場合

このリポジトリをクローンした後、claude_desktop_config.json に以下を追加します。

{
  "mcpServers": {
      "sql-analyzer": {
          "command": "uv",
          "args": [
              "--directory",
              "/path/to/mcp-server-sql-analyzer",
              "run",
              "mcp-server-sql-analyzer"
          ]
      }
  }
}

開発

開発モードでサーバーを実行するには:

# Clone the repository
git clone [email protected]:j4c0bs/mcp-server-sql-analyzer.git

# Run the server
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-server-sql-analyzer run mcp-server-sql-analyzer

ユニットテストを実行するには:

uv run pytest .

ライセンス

MIT

コメント

MCP は初めてですか?

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

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