mcpField
M
Microsoft SQL MCP Server

Microsoft SQL MCP Server

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

Microsoft SQL MCP Server について

Microsoft SQL MCP Serverは、AIアシスタントにMicrosoft SQL Serverデータベースへの制御されたインターフェースを提供します。スキーマ探索、クエリ、分析、エクスポート機能を備え、読み取り専用の既定設定とスキーマ制限にも対応します。

主な機能

  1. 01スキーマ、テーブル、関連の探索
  2. 02SELECTクエリとテーブルの絞り込み
  3. 03テーブルデータの分析と集計
  4. 04CSV、JSON、Excelへの結果出力
  5. 05スキーマ制限と読み取り専用モード

活用シーン

  1. 01データベース構造と関連を調査
  2. 02テーブルを照会してレコードを分析
  3. 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 のセットアップ
  1. 前提条件をインストールします:

  2. 専用の 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;
      
  3. このリポジトリをインストールします:

    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
    
  4. 設定ファイルを作成します:

    • Claude Desktop の設定フォルダーに claude_config.json という名前のファイルを作成します
    • 以下の構成を使用し、パスと認証情報を実際の値に置き換えます:
{
  "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"
    }
  }
}
  1. 重要な設定上の注意事項:

    • Python 実行ファイルとスクリプトの両方に絶対パスを使用します
    • Windows のネットワークパスではエスケープされたバックスラッシュ(\\)を使用します
    • SQL Server の認証情報が正しく設定されていることを確認します
    • DB_ALLOWED_SCHEMAS を調整して、アクセスを特定のデータベーススキーマに制限します
  2. Claude Desktop を再起動して変更を適用します

  3. Claude はこのサーバーが提供するすべての SQL Server ツールにアクセスできるようになります

Claude での SQL ツールの使用

正しく設定すると、Claude に次のことを依頼できます:

  • データベーススキーマを調べる
  • SQL クエリを実行する
  • データを分析する
  • データベースレポートを生成する
  • SQL データからデータの可視化を作成する

プロンプトの例:「Customers テーブルの構造を表示し、国別の顧客数を教えてください。」

機能

  • 🔒 安全なデータベースアクセス:設定可能なセキュリティ制限を使用して Microsoft SQL Server データベースに接続します
  • 🛠️ 豊富なツールセット:クエリ、スキーマの調査、分析に使用できるさまざまなデータベース操作ツール
  • 📊 データ可視化のサポート:さまざまな形式でデータをエクスポートして分析できます
  • 🧠 AI 対応インターフェース:LLM との統合に向けて Model Context Protocol(MCP)を実装しています
  • ⚡ 最適化されたパフォーマンス:高いスループットを実現するコネクションプーリングと効率化の最適化

代替インストール(スタンドアロンモード)

Claude Desktop を使用しない場合でも、スタンドアロンモードでサーバーを実行できます:

  1. このリポジトリをクローンします
  2. 仮想環境を作成します:python -m venv .venv
  3. 仮想環境を有効化します:
    • Windows:.venv\Scripts\activate
    • Linux/Mac:source .venv/bin/activate
  4. 依存関係をインストールします:pip install -r requirements.txt
  5. .env.example を .env にコピーし、データベース設定を行います
  6. 付属のバッチファイルを使用してサーバーを実行します: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)

同じ設定に複数のプレフィックスが定義されている場合、優先順位は次のとおりです。

  1. DB_(最優先)
  2. SQLMCP_(中優先)
  3. 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

コメント

MCP は初めてですか?

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

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