MCP SQL Server について
MCP SQL Serverは、AIアシスタント向けにSQL Serverへの制御されたアクセスを提供するMCPサーバーです。ローカル接続でのデータベース調査や読み取り専用クエリに対応し、有害な操作への保護機能を備えています。
主な機能
- 01データベース内のテーブル検出
- 02テーブルスキーマと関係の確認
- 03読み取り専用SQLクエリの実行
- 04ストアドプロシージャの一覧表示
- 05インデックスと制約の確認
- 06有害な操作への保護機能
活用シーン
- 01データベース内のテーブルの把握
- 02テーブルの列とスキーマの確認
- 03データのクエリと分析
MCP 対応
テーブル検出、スキーマ確認、クエリ実行、ストアドプロシージャ、インデックス、制約を扱うツールをMCPクライアントに公開します。ローカル接続でSQL Serverにアクセスします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP SQL Server
Claude などの AI アシスタントが、ローカル接続を通じて SQL Server データベースと安全にやり取りできるようにする Model Context Protocol(MCP)サーバーです。このサーバーは、制御されたインターフェースを通じて、データベースの調査、クエリの実行、データ分析のためのツールを提供します。
機能
- 🔒 安全なローカルデータベースアクセス:SQL 認証を使用して SQL Server に接続します
- 🔍 スキーマの調査:テーブル、列、リレーションシップを確認します
- 📊 クエリの実行:適切なエラー処理を行いながら SQL クエリを実行します
- 🛡️ 安全制御:有害な操作を防ぐ保護機能を内蔵しています
前提条件
- Node.js 18.0 以降
- npm(Node パッケージマネージャー)
- SQL Server
- Claude Desktop アプリケーション
インストール
1. リポジトリをクローンする
git clone https://github.com/MKhan997733/mcp-server-sql.git
cd mcp-server-sql
2. 依存関係をインストールする
npm install
3. 環境変数を設定する
プロジェクトのルートに .env ファイルを作成します。
DB_SERVER=
DB_NAME=
DB_USER=
DB_PASSWORD=
DB_PORT=
Claude Desktop の設定
1. Claude Desktop の設定ファイルを確認する
設定ファイルは次の場所にあります。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
2. MCP サーバーの設定を追加する
claude_desktop_config.json ファイルを編集し、MCP サーバーを追加します。
SQL 認証の場合:
{
"mcpServers": {
"sql-server": {
"command": "node",
"args": [
"/absolute/path/to/mcp-server-sql/index.js"
],
"env": {
"DB_SERVER": "localhost",
"DB_NAME": "your_database",
"DB_USER": "your_username",
"DB_PASSWORD": "your_password",
"DB_PORT": "port"
}
}
}
}
重要:/absolute/path/to/mcp-server-sql/ を、クローンしたリポジトリの実際のパスに置き換えてください。
3. Claude Desktop を再起動する
設定ファイルを保存したら、変更を反映するために Claude Desktop を再起動してください。
使用方法
設定が完了すると、次のような質問をして、Claude を通じて SQL Server データベースを操作できます。
- 「データベースにはどのテーブルがありますか?」
- 「Users テーブルのスキーマを見せてください」
- 「Orders テーブルをクエリして、先週の注文を見せてください」
- 「購入総額の上位 10 名の顧客を見つけてください」
- 「データベース内のすべてのストアドプロシージャを見せてください」
やり取りの例
テーブルの確認:
You: Can you show me what tables exist in my database?
Claude: I'll help you discover the tables in your SQL Server database...
データのクエリ:
You: Show me all customers who made purchases over $1000 in the last month
Claude: I'll query your database to find customers with purchases over $1000...
スキーマの調査:
You: What columns does the Products table have?
Claude: Let me examine the structure of the Products table...
利用可能なツール
MCP サーバーは Claude に次のツールを提供します。
- discover_tables:SQL Server データベース内のすべてのテーブルを一覧表示します
- table_details:指定したテーブルの詳細なスキーマ情報を取得します
- execute_query:SELECT クエリを実行します(デフォルトでは読み取り専用)
- get_stored_procedures:すべてのストアドプロシージャを一覧表示します
- get_table_indexes:テーブルのインデックスを表示します
- get_table_constraints:制約(PK、FK など)を表示します
セキュリティのベストプラクティス
- 専用の SQL Server ログインを使用する:MCP サーバー用に、必要最小限の権限を持つ専用のログインを作成します
- 読み取り専用アクセス:データベースユーザーに読み取り専用アクセスを設定します
- ローカル接続のみ:サーバーは localhost への接続のみを受け付けます
- 監査ログ:すべてのクエリを追跡できるよう、SQL Server の監査ログを有効にします
サーバーの実行
# Run directly
npm build
node <absolute-path>/build/index.js
(AI による生成、MKHAN997733 によるレビュー済み)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。