このプロジェクトについて

これは Microsoft SQL Server 向けのデフォルトで読み取り専用の Model Context Protocol (MCP) サーーであり、.NET 8.0 および 10.0 を対象とする .NET NuGet パッケージ (Alyio.McpMssql) として配布されています。AI エージェントと開発者が最小限の運用負荷で SQL Server インスタンスと安全に対話できるように設計されています。 主要な機能には、カタログ メタデータの探索(データベース、スキーマ、テーブル、ビュー、ストアド プロシージャ、関数の一覧表示)、構成可能な行数制限とタイムアウトを備えた安全なパラメーター化 SELECT 専用クエリの実行、遅いクエリ診断のための実行プラン分析が含まれます。analyze_query ツールは、コスト、演算子の詳細、カーディナリティ推定、警告、インデックス提案、待機統計を含む実行プランの簡潔な JSON サマリーを返します。完全な XML プランは、7 日後に期限切れになる専用のリソース URI を通じて利用できます。 構成では、MCPMSSQL_ 接頭辞付き環境変数による単一接続のセットアップと、ユーザー スコープの appsettings.json ファイルによるマルチプロファイルのセットアップ(Unix 系システムでは ~/.config/mcp-mssql/appsettings.json、Windows では %USERPROFILE%\.config\mcp-mssql\appsettings.json に配置)の両方をサポートします。プロファイルごとの設定には、接続文字列、クエリ行数上限、タイムアウト値、任意の書き込みアクセスが含まれます。Microsoft.Data.SqlClient を介して Microsoft Entra 認証を使用する Azure SQL をネイティブにサポートします。 サーバーは一連の MCP ツールを公開します。list_profiles は構成済み接続の列挙、get_server_properties はサーー制限とプロパティの取得、list_objects と get_object はメタデータ探索、run_query は SELECT 専用クエリの実行(最大 1000 行のインライン結果、または最大 50000 行のスナップショット CSV 結果をサポートし、スナップショットは 1 日後に期限切れ)、analyze_query は実行プラン分析、run_command は DDL/DML 書き込み操作の実行に使用します。run_command ツールはデフォルトで無効であり、明示的に AllowWrite=true を設定したプロファイルでのみ有効になり、ホスト側の確認ゲート用に破壊的としてマークされます。 セキュリティはデフォルトで読み取り専用です。書き込みアクセスはプロファイルごとに明示的にオプトインされ、クエリはインジェクションを防ぐためにパラメーター化された @paramName バインディングを使用します。AllowWrite フラグはアプリケーション レベルのガードであり、データベースのセキュリティ境界ではありません。密な読み取り専用保証が必要な場合、ドキュメントでは db_datareader ロールに制限されたログインを使用することを推しています。 デプロイ方法は 3 つあります。NuGet パッケージから直接実行する、グローバル .NET ツールとしてインストールする、またはソースから実行する方法です。Cursor、Gemini、Codex、Open Code、Claude Code、GitHub Copilot などの一般的な MCP ホスト向けに構成スニペットが提供されています。 統合テストには、McpMssqlTest データベースを備えた実際の SQL Server インスタンスが必要であり、プロセス間のデータベース競合状態を避けるためにテスト フレームワークを順番に実行するようガイダンスが示されています。プロジェクトのロードマップには、MCP Tasks 拡張機能 (SEP-2663) のサポートが予定されており、クライアントによる拡張機能の採用待ちではあるものの、ブロックする代わりに耐久性のあるタスク ハンドルを介して長時間実行クエリを処理します。このプロジェクトは MIT ライセンスの下で提供されています。