Mcp Sqlserver について
Mcp Sqlserverは、AIエージェントがMicrosoft SQL Serverを調査・クエリするための読み取り専用MCPサーバーです。スキーマ探索と、安全検証や結果制限を備えたクエリを提供します。
主な機能
- 01データベース、テーブル、ビューの一覧
- 02スキーマと外部キーの確認
- 03検証付き読み取り専用クエリ
- 04行数制限とタイムアウト設定
- 05暗号化されたSQL Server接続
活用シーン
- 01AIクライアントでデータベース構造を調査
- 02テーブル間の関係を確認
- 03上限付きのサンプルやクエリ結果を取得
MCP 対応
SQL Serverのメタデータと読み取り専用クエリツールをMCPクライアントに公開します。Claude Desktop、Claude Code CLI、VSCode MCP拡張機能などで利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP SQL Server
AI エージェントが SQL Server データベースを安全に探索し、クエリを実行できるようにする、Microsoft SQL Server 用の読み取り専用 Model Context Protocol(MCP)サーバーです。
クイックスタート
ステップ 1:パッケージをインストールする
# Global installation (recommended)
npm install -g @bilims/mcp-sqlserver
# Verify installation
mcp-sqlserver --version
ステップ 2:SQL Server 接続を設定する
SQL Server の種類を選択し、設定に従ってください。
Azure SQL Database
export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="your-database"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="false"
オンプレミスの SQL Server
export SQLSERVER_HOST="your-sql-server.company.com"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="your-database"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="true" # For self-signed certificates
ローカルの SQL Server Express
export SQLSERVER_HOST="localhost\\SQLEXPRESS"
export SQLSERVER_USER="sa"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="master"
export SQLSERVER_ENCRYPT="false"
export SQLSERVER_TRUST_CERT="true"
ステップ 3:接続をテストする
# Test your configuration
mcp-sqlserver --help
# Quick connection test (press Ctrl+C to exit)
mcp-sqlserver
ステップ 4:Claude Desktop に追加する
-
Claude Desktop の設定ファイルを確認します:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
MCP サーバーの設定を追加します:
{
"mcpServers": {
"sqlserver": {
"command": "mcp-sqlserver",
"env": {
"SQLSERVER_HOST": "your-server.database.windows.net",
"SQLSERVER_USER": "your-username",
"SQLSERVER_PASSWORD": "your-password",
"SQLSERVER_DATABASE": "your-database",
"SQLSERVER_ENCRYPT": "true",
"SQLSERVER_TRUST_CERT": "false"
}
}
}
}
- Claude Desktop を再起動します
ステップ 5:探索を始めましょう!
Claude Desktop で次のコマンドを試してください:
"Test the SQL Server connection""List all databases on the server""Show me the tables in [database name]""Describe the structure of the Users table""Show me foreign key relationships"
機能
- 🔒 読み取り専用操作:SELECT クエリのみを許可し、包括的なセキュリティ検証を行います
- 🗄️ スキーマの検出:データベース、テーブル、ビュー、リレーションシップ、メタデータを探索できます
- 📊 データの探索:組み込みの上限とタイムアウトを使用して、安全なクエリを実行できます
- 🔐 エンタープライズ対応:本番環境向けに、証明書を信頼する暗号化接続を利用できます
- 🛡️ セキュリティを最優先:クエリの検証、SQL インジェクション対策、アクセス制御を備えています
利用可能なツール
スキーマの検出
list_databases- SQL Server インスタンス上のすべてのデータベースを一覧表示しますlist_tables- データベースまたはスキーマ内のテーブルを一覧表示しますlist_views- データベースまたはスキーマ内のビューを一覧表示しますdescribe_table- 列、データ型、制約を含む、テーブルスキーマの詳細を取得します
リレーションシップの分析
get_foreign_keys- テーブルの外部キーリレーションシップを取得しますget_table_stats- 行数やサイズ情報など、テーブルの統計情報を取得します
データの探索
execute_query- 安全性を検証したうえで、読み取り専用の SELECT クエリを実行しますget_server_info- SQL Server のバージョン、エディション、構成の詳細を取得します
Claude Desktop で使える一般的なコマンド
MCP サーバーを設定したら、次の自然言語コマンドを試してください。
はじめに使うコマンド
"Test the SQL Server connection"
"Show me server information"
"List all databases on this server"
"What tables are in the [database name] database?"
データベースの探索
"Describe the structure of the Users table"
"Show me foreign key relationships in this database"
"What are the largest tables by row count?"
"Give me a sample of data from the Orders table"
高度な分析
"Help me understand the relationship between Orders and Customers"
"Show me all lookup tables in this database"
"What columns contain date/time information?"
"Find tables that might contain user authentication data"
カスタムクエリ
"Run this query: SELECT TOP 10 * FROM Products WHERE Price > 100"
"Show me all customers created in the last 30 days"
"What are the different product categories in the database?"
インストール
npm install
npm run build
設定
サーバーは環境変数を使って設定します。
必須
SQLSERVER_USER- SQL Server のユーザー名SQLSERVER_PASSWORD- SQL Server のパスワード
任意
SQLSERVER_HOST- サーバーのホスト名(デフォルト:localhost)SQLSERVER_DATABASE- デフォルトのデータベース名SQLSERVER_PORT- ポート番号(デフォルト:1433)SQLSERVER_ENCRYPT- 暗号化を有効にする(デフォルト:true)SQLSERVER_TRUST_CERT- サーバー証明書を信頼する(デフォルト:true)SQLSERVER_CONNECTION_TIMEOUT- 接続タイムアウト(ミリ秒、デフォルト:30000)SQLSERVER_REQUEST_TIMEOUT- リクエストタイムアウト(ミリ秒、デフォルト:60000)SQLSERVER_MAX_ROWS- クエリごとの最大行数(デフォルト:1000)
使用方法
環境変数
export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="your-database"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="true"
サーバーの実行
npm start
インストール方法
方法 1:グローバルインストール(推奨)
npm install -g @bilims/mcp-sqlserver
方法 2:ローカルインストール
npm install @bilims/mcp-sqlserver
npx mcp-sqlserver
方法 3:npx で実行(インストール不要)
npx @bilims/mcp-sqlserver
統合例
Claude Desktop
Claude Desktop の設定(claude_desktop_config.json)に追加します:
{
"mcpServers": {
"sqlserver": {
"command": "mcp-sqlserver",
"env": {
"SQLSERVER_HOST": "your-server.database.windows.net",
"SQLSERVER_USER": "your-username",
"SQLSERVER_PASSWORD": "your-password",
"SQLSERVER_DATABASE": "your-database"
}
}
}
}
Claude Code CLI
# Set environment variables
export SQLSERVER_HOST="your-server"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
# Use with Claude Code
claude mcp add sqlserver mcp-sqlserver
MCP 拡張機能を使った VSCode
VSCode 用の MCP 拡張機能をインストールし、サーバーの設定を追加します。
セキュリティ機能
クエリの検証
- SELECT、WITH、SHOW、DESCRIBE、EXPLAIN 文のみを許可します
- 危険なキーワード(INSERT、UPDATE、DELETE、DROP など)を包括的にブラックリスト化しています
- SQL インジェクションのパターンを検出します
- クエリを自動的にサニタイズします
接続のセキュリティ
- TLS/SSL 暗号化がデフォルトで有効です
- エンタープライズ環境向けのサーバー証明書の信頼オプション
- タイムアウト制御機能を備えたコネクションプーリング
- リクエストのタイムアウトを設定可能です
結果の制限
- クエリごとの最大行数を設定可能です
- SELECT クエリに TOP 句を自動挿入します
- クエリの実行時間を追跡します
- メモリ使用量を保護します
クエリの例
接続後は、MCP クライアントを通じてツールを使用できます。
// List all databases
await callTool("list_databases", {});
// List tables in a specific schema
await callTool("list_tables", { schema: "dbo" });
// Get table schema details
await callTool("describe_table", {
table_name: "Users",
schema: "dbo"
});
// Execute a read-only query
await callTool("execute_query", {
query: "SELECT TOP 10 * FROM Users WHERE active = 1",
limit: 10
});
// Get foreign key relationships
await callTool("get_foreign_keys", {
table_name: "Orders"
});
開発
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev
# Run linting
npm run lint
# Run tests
npm test
トラブルシューティング
接続の問題
- サーバーのホスト名とポートを確認してください
- 暗号化/証明書の設定が SQL Server の設定と一致しているか確認してください
- ユーザーに適切な読み取り権限があることを確認してください
- まず SQL Server Management Studio を使用して接続をテストしてください
権限の問題
ユーザーアカウントには、最低限次の権限が必要です。
- データベースへの
CONNECT権限 - クエリ対象のテーブル/ビューに対する
SELECT権限 - メタデータクエリ用のシステムビューへのアクセス権限
一般的な SQL Server の構成
Azure SQL Database
export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="false"
自己署名証明書を使用するオンプレミスの SQL Server
export SQLSERVER_HOST="sql-server.company.com"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="true"
ライセンス
MIT
貢献
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- 該当する場合はテストを追加します
- プルリクエストを送信します
サポート
問題や質問については、次を確認してください。
- 上記のトラブルシューティングセクションを確認する
- SQL Server の接続に関するドキュメントを確認する
- MCP クライアントとの互換性を確認する
シームレスな AI 統合を実現するため、Model Context Protocol SDK を使用して構築されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。