Microsoft SQL MCP Server について
Microsoft SQL MCP Serverは、AIアシスタントにMicrosoft SQL Serverデータベースへの制御されたインターフェースを提供します。スキーマ探索、クエリ、分析、エクスポート機能を備え、読み取り専用の既定設定とスキーマ制限にも対応します。
主な機能
- 01スキーマ、テーブル、関連の探索
- 02SELECTクエリとテーブルの絞り込み
- 03テーブルデータの分析と集計
- 04CSV、JSON、Excelへの結果出力
- 05スキーマ制限と読み取り専用モード
活用シーン
- 01データベース構造と関連を調査
- 02テーブルを照会してレコードを分析
- 03レポート用にクエリ結果を出力
MCP 対応
SQL Serverのスキーマ探索、クエリ実行、分析、メタデータ確認、データ出力のためのMCPツールを提供します。読み取り専用モードと許可スキーマの設定でアクセスを制限できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Microsoft SQL MCP Server
Model Context Protocol(MCP)標準を使用した堅牢な SQL Server インターフェースです。AI アシスタントが SQL データベースを制御された方法で操作できるようにします。このプロジェクトは、スキーマの調査、クエリの実行、データ分析のためのツールを提供し、有害な操作を防ぐ安全機構を備えています。
🚀 Claude Desktop との連携(主なユースケース)
このツールは主に Claude Desktop で動作するように設計されており、Claude が SQL Server データベースにシームレスにアクセスしてクエリを実行できます。
Claude Desktop のセットアップ
-
前提条件をインストールします:
- Python 3.8+ および SQL Server(2016+ 推奨)
- Microsoft ODBC Driver for SQL Server(17+ 推奨)
-
専用の SQL ユーザーを作成します(推奨):
- 読み取り専用権限を持つ専用の SQL Server ユーザーを作成します
- sa/admin アカウントは使用せず、管理者権限も付与しないでください
- 必要なテーブルに対する SELECT 権限がユーザーにあることを確認します
- アクセスを必要なスキーマのみに制限します
- 専用ユーザーを作成する SQL の例:
-- Create login CREATE LOGIN SQLMCP WITH PASSWORD = 'YourStrongPassword'; -- Switch to your database USE YourDatabaseName; -- Create user and grant permissions CREATE USER SQLMCP FOR LOGIN SQLMCP; GRANT SELECT TO SQLMCP; -- Optionally restrict to specific schemas GRANT SELECT ON SCHEMA::dbo TO SQLMCP;
-
このリポジトリをインストールします:
git clone https://github.com/aaaaalexander/MS_SQL_MCP_server.git cd MS_SQL_MCP_server python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt -
設定ファイルを作成します:
- Claude Desktop の設定フォルダーに
claude_config.jsonという名前のファイルを作成します - 以下の構成を使用し、パスと認証情報を実際の値に置き換えます:
- Claude Desktop の設定フォルダーに
{
"sqlmcp": {
"command": "C:/path/to/your/venv/Scripts/python.exe",
"args": [
"C:/path/to/your/project/sql_mcp_server.py"
],
"env": {
"PYTHONUNBUFFERED": "1",
"DB_SERVER": "\\\\SERVER\\INSTANCE",
"DB_NAME": "DATABASENAME",
"DB_USERNAME": "username",
"DB_PASSWORD": "password",
"DB_ALLOWED_SCHEMAS": "[\"dbo\"]",
"DB_DEBUG": "true",
"DB_LOG_LEVEL": "DEBUG"
}
}
}
-
重要な設定上の注意事項:
- Python 実行ファイルとスクリプトの両方に絶対パスを使用します
- Windows のネットワークパスではエスケープされたバックスラッシュ(
\\)を使用します - SQL Server の認証情報が正しく設定されていることを確認します
DB_ALLOWED_SCHEMASを調整して、アクセスを特定のデータベーススキーマに制限します
-
Claude Desktop を再起動して変更を適用します
-
Claude はこのサーバーが提供するすべての SQL Server ツールにアクセスできるようになります
Claude での SQL ツールの使用
正しく設定すると、Claude に次のことを依頼できます:
- データベーススキーマを調べる
- SQL クエリを実行する
- データを分析する
- データベースレポートを生成する
- SQL データからデータの可視化を作成する
プロンプトの例:「Customers テーブルの構造を表示し、国別の顧客数を教えてください。」
機能
- 🔒 安全なデータベースアクセス:設定可能なセキュリティ制限を使用して Microsoft SQL Server データベースに接続します
- 🛠️ 豊富なツールセット:クエリ、スキーマの調査、分析に使用できるさまざまなデータベース操作ツール
- 📊 データ可視化のサポート:さまざまな形式でデータをエクスポートして分析できます
- 🧠 AI 対応インターフェース:LLM との統合に向けて Model Context Protocol(MCP)を実装しています
- ⚡ 最適化されたパフォーマンス:高いスループットを実現するコネクションプーリングと効率化の最適化
代替インストール(スタンドアロンモード)
Claude Desktop を使用しない場合でも、スタンドアロンモードでサーバーを実行できます:
- このリポジトリをクローンします
- 仮想環境を作成します:
python -m venv .venv - 仮想環境を有効化します:
- Windows:
.venv\Scripts\activate - Linux/Mac:
source .venv/bin/activate
- Windows:
- 依存関係をインストールします:
pip install -r requirements.txt .env.exampleを.envにコピーし、データベース設定を行います- 付属のバッチファイルを使用してサーバーを実行します:
run_sql_mcp.bat
設定
.env ファイルを編集して、SQL Server の接続情報を設定します:
DB_SERVER=your_server_name
DB_NAME=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password
DB_ALLOWED_SCHEMAS=["dbo"]
環境変数リファレンス
後方互換性のため、サーバーは3種類の変数プレフィックス形式をサポートしています。
- DB_ - 推奨される標準プレフィックス(例:
DB_SERVER) - SQLMCP_ - 移行用プレフィックス(例:
SQLMCP_DB_SERVER) - DB_USER_ - レガシープレフィックス(例:
DB_USER_DB_SERVER)
同じ設定に複数のプレフィックスが定義されている場合、優先順位は次のとおりです。
DB_(最優先)SQLMCP_(中優先)DB_USER_(最下位)
🛠️ データベースツールキット:利用可能なツール
🔍 スキーマエクスプローラーツール
データベース構造を簡単に見つけて、内容を確認できます。
-
list_schemas- 🗂️ 利用可能なすべてのデータベーススキーマの概要を取得します。データベースの世界を探るためのロードマップです! -
list_tables- 📋 スキーマ内のすべてのテーブルとビューを見つけて、データベースに何があるか確認できます! -
get_table_schema- 📊 テーブルの構造を詳しく確認できます。列、データ型、キー、制約をすべて表示します! -
search_schema_objects- 🔎 データベース全体から、目的のオブジェクトを数秒で見つけます。データベース全体を対象にした Ctrl+F のような機能です! -
get_query_examples- ✨ 任意のテーブルのクエリ例を自動生成します。学習や手早く始めたいときに最適です!
🔗 リレーションシップナビゲーターツール
データベース内でデータがどのようにつながっているかを把握できます!
-
find_foreign_keys- 🔑 テーブルのすべてのリレーションシップを見つけ、テーブル同士のつながりを確認できます! -
find_related_tables- 🌐 任意のテーブルの関連範囲をマッピングし、つながりのあるエンティティを一覧で確認できます! -
find_related_tables_advanced- 🚀 サンプル結合や可視化に対応した、高度なリレーションシップ情報を取得できます!
📝 クエリ実行ツール
安全機能を備えた強力なクエリを実行できます!
-
execute_select- ⚡ 安全なパラメーターのバインドで SQL クエリを実行します。安全、高速、そして信頼性に優れています! -
query_table- 🎯 SQL を書かずにテーブルをクエリできます。簡単なフィルターや並べ替えに最適です! -
get_sample_data- 👀 テーブルの内容をすぐにプレビューできます。手間をかけずに実際のデータ例を確認できます!
📊 データ分析ツール
データから有用な洞察を引き出します!
-
analyze_table_data- 📈 データの統計的な内訳を取得します。分布、パターン、異常を確認できます! -
find_duplicate_records- 🔄 重複している可能性のあるレコードを特定します。データを整理すれば、より良い洞察につながります! -
summarize_data- 📌 グループ化による詳細な要約を生成します。集計、件数、平均などを取得できます! -
analyze_table_data_advanced- 🧪 サンプルや可視化を含む包括的なデータ分析を実行します。データサイエンティスト向けです!
🔬 メタデータツール
データベースに隠れた詳細情報を見つけます!
-
get_database_info- 🏢 SQL Server とデータベースに関する重要な統計情報を取得します。バージョン、構成などを確認できます! -
list_stored_procedures- 📜 利用可能なすべてのストアドプロシージャを見つけて、強力なデータベースルーチンを確認できます! -
get_procedure_definition- 📝 ストアドプロシージャの実際のコードを確認できます。複雑なロジックの把握に最適です!
📦 エクスポートツール
データベースの外でもデータを共有し、活用できます!
export_data- 💾 クエリ結果を CSV、JSON、Excel など、さまざまな形式にエクスポートします!
セキュリティに関する考慮事項
- サーバーはすべての SQL クエリを検証し、サニタイズします
- 読み取り専用モードにより、デフォルトでデータの変更を防止します
- スキーマの制限により、指定されたデータベースオブジェクトへのアクセスのみを許可します
- タイムアウト制限付きのコネクションプーリングにより、リソースの枯渇を防ぎます
- このサービス専用の、読み取り専用権限を持つ SQL ユーザーを作成してください
- sa/admin として、または管理者権限でデータベースを実行しないでください
- 認証情報を安全に保管し、バージョン管理にコミットしないでください
- MCP エンドポイントが外部に公開されないよう、ファイアウォールの内側で実行してください
トラブルシューティング
接続の問題や設定については、sql_connection_help.md ファイルを参照してください。
よくある問題を確認してください。
- SQL Server が実行中で、アクセス可能であることを確認します
- ポート 1433(SQL Server のデフォルトポート)のファイアウォール設定を確認します
- 設定内の認証情報が正しいことを確認します
- SQL ユーザーにテーブル/スキーマへの適切な権限があることを確認します
- ODBC ドライバーが正しくインストールされていることを確認します
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルを参照してください。
謝辞
- 優れたデータベースツールキットを提供している SQLAlchemy チーム
- Model Context Protocol(MCP)仕様
- Claude Desktop の統合サポートを提供している Anthropic
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。