SqlToAi について
SqlToAiは、Microsoft SQL Server向けのローカルMCPサーバーで、データベースの調査や制御されたクエリ実行を行うクライアントを対象としています。stdio経由でスキーマ出力、アクセスレベル設定、クエリ比較、性能測定を提供します。
主な機能
- 01データベースオブジェクトと参照の調査
- 02スキーマをMarkdownファイルに出力
- 03パラメーター付きクエリとSQLスクリプトの実行
- 04クエリ結果と性能の比較
- 05データベースのアクセスレベル設定
- 06文字列結果のマスキングまたはトークン化
活用シーン
- 01データベーススキーマをオフラインで確認
- 02MCPクライアントからSQLスクリプトを実行
- 03基準クエリと候補クエリを比較
MCP 対応
SqlToAiはローカルstdio経由で、スキーマ調査、SQL実行、クエリ比較のツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SqlToAi
SqlToAi は、Microsoft SQL Server 向けのローカル Model Context Protocol(MCP)サーバーです。 MCP クライアントに、スキーマの調査、SQL の実行、クエリ結果とパフォーマンスの比較を行うツールを提供します。 サーバーは stdio 経由で動作し、.NET 10 で構築されています。
機能
- テーブル、ビュー、ルーチン、トリガー、キー、インデックス、オブジェクト参照を調査します。
- データベーススキーマを、オフラインで参照できる相互リンク付き Markdown ファイルとしてエクスポートします。
GOバッチを含む、パラメーター化クエリとローカルの.sqlスクリプトを実行します。- CPU 時間、経過時間、読み取り数、実行プランの警告を測定し、ベースラインクエリと候補クエリを比較して、不足しているインデックスの提案を調べます。
- スキーマのみのアクセスから読み書きアクセスまで、データベースのアクセスレベルを設定します。
- 文字列クエリの結果をマスキングするか、元に戻せるインメモリトークンに置き換えます。また、SQL Server またはメタデータデータベースからテーブルと列の説明を追加します。
引数と動作については、ツールのリファレンスを参照してください。
MCP サーバーを起動せずにスキーマをエクスポートします。
.\SqlToAi.exe export-schema --database primary/DemoDB --output C:\Doku\Database
出力ディレクトリは存在しないか、空である必要があります。エクスポートにはスキーマの詳細と SQL 定義が含まれますが、業務レコード、メタデータの説明、匿名化インジケーターは含まれません。失敗すると、ゼロ以外の終了コードが返され、すでに書き込まれたファイルはそのまま残ります。ファイル構成と再試行時の動作については、スキーマのエクスポートを参照してください。
はじめに
ダウンロードした Windows x64 パッケージを使用する場合は、パッケージの手動セットアップ(実行ファイルの隣に README.md として同梱)に従ってください。ZIP を選んで自分で展開して実行ファイルを起動するか、MCPB を選んで同じ実行ファイルをクライアントの起動エントリとしてインストールします。どちらも自己完結型で、別途 .NET ランタイムを必要としません。いずれの方法でもサーバーを起動する前に、同梱のテンプレートから %LOCALAPPDATA%\SqlToAi\appsettings.json を手動で作成してください。バンドルのインストールでは作成されません。
更新後も個別に管理されているユーザー設定とログは保持されますが、以前の単一サーバー設定からのアップグレードは、互換性を破る変更です。最初に新しいバージョンを起動する前に、古いセクションとプロバイダー設定を名前付きサーバーの下に手動で移動し、データベースの許可設定を修飾し、環境変数のキー名を変更してください。自動移行はありません。アップグレード手順に従ってください。
.NET 10 SDK、接続可能な SQL Server、および使用するツールに必要な権限を持つデータベースログインが必要です。
ビルド
dotnet build SqlToAi.slnx -c Release
Windows 実行ファイルと設定ファイルは src/SqlToAi/bin/Release/net10.0/ に出力されます。
データベースアクセスの設定
SqlToAi を起動する前に、同梱のテンプレートから %LOCALAPPDATA%\SqlToAi\appsettings.json を手動で作成してください。メインのテンプレートにはデータベースの許可設定も有効な認証情報もありません。サーバー、認証情報、アクセスリストを慎重に設定してください。DemoDB の例には、ローカルデモ用の架空の認証情報と ReadWrite アクセスが設定されています。ローカルのテストデータベースでのみ、手動で選択してください。ホストが自動的に読み込むことはありません。
Windows 認証と文字列マスキングを使用する場合は、データベース名とサーバー名を置き換えて、Databases セクションと Servers セクションを次のように設定します。
"Databases": {
"CacheTtlSeconds": 300,
"ReadWrite": [],
"ReadWriteAnonymized": [],
"ReadOnly": [],
"ReadOnlyAnonymized": ["primary/ReportingDB"],
"SchemaOnly": []
},
"Servers": {
"primary": {
"Server": "localhost\\MSSQLSERVER2022",
"IntegratedSecurity": true,
"ConnectTimeoutSeconds": 30
}
}
これらのセクションは、既存の SqlToAi オブジェクト内に配置します。Anonymizer.Enabled は true のままにしてください。アクセスリストにないデータベースへのアクセスは拒否されます。アプリケーションのアクセスリストに加えて、権限を制限した SQL Server ログインを使用してください。
手動セットアップ、SQL 認証、フィールドごとの環境変数によるオーバーライド、メタデータ、ログ記録については、設定を参照してください。
MCP クライアントへの接続
実行ファイルの絶対パスを指定して、クライアントの MCP 設定に stdio サーバーのエントリを追加します。設定場所はクライアントによって異なります。
{
"mcpServers": {
"sql-to-ai": {
"command": "C:\\Path\\To\\SqlToAi\\src\\SqlToAi\\bin\\Release\\net10.0\\SqlToAi.exe",
"args": []
}
}
}
コマンドラインからツールを確認する
Set-Location src/SqlToAi/bin/Release/net10.0
.\SqlToAi.exe query --help
.\SqlToAi.exe query sql_list_databases --server primary
.\SqlToAi.exe query sql_execute_query --database primary/ReportingDB --query "SELECT TOP 5 name FROM sys.tables"
ツールの実行結果は Markdown または JSON 形式です。CLI 呼び出しが成功すると、データは stdout に出力されます。通知とエラーは stderr に出力されます。呼び出しに失敗すると、終了コード 1 が返されます。エクスポートとデプロイについては、開発と CLI の使用方法を参照してください。
保護と制限
読み取り専用の実行では、SQL ステートメントの検証とロールバックトランザクションが使用されます。
ReadWrite では、変更が許可され、結果は未加工の文字列で返されます。ReadWriteAnonymized では、変更が許可されるとともに、クエリとスクリプトの結果に対して設定済みの文字列マスキングまたはトークン化が適用されます。これらのアプリケーションチェックは SQL Server の権限を補完するものであり、権限に代わるものではありません。
文字列マスキングは、ReadOnlyAnonymized および ReadWriteAnonymized データベースのクエリとスクリプトの結果に適用されます。数値、日付、スキーマ定義、クエリ比較の差分サンプル、実行プランの内容は表示されたままになる可能性があります。トークンは実行中のサーバー内で元に戻せます。すべての機密データが削除されることを保証するものではありません。
アプリケーションとエラーの診断機能は有効なままです。使用する前に、セキュリティ境界とログ設定を確認してください。
ドキュメントと開発
dotnet test SqlToAi.slnx を実行して、xUnit v3 テストスイートを実行します。
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。