Mcp Sql Server について
Mcp Sql Serverは、MSSQLデータベースを扱うAIアシスタント向けのMCPサーバーです。スキーマ確認、パラメーター化クエリ、バッチ処理、性能監視を備え、現在はMSSQLのみ対応しています。
主な機能
- 01データベースのスキーマとメタデータ確認
- 02パラメーター化SQLクエリの実行
- 03バッチクエリとトランザクション処理
- 04クエリ統計とレポートの確認
- 05コネクションプールの監視
活用シーン
- 01テーブルとカラムの構造確認
- 02アクティブユーザーや注文の検索
- 03遅いクエリとプール状態の確認
MCP 対応
MCPクライアントに、スキーマ確認、クエリ実行、バッチ処理、性能監視のツールを提供します。READMEではClaude Desktop、CursorなどのMCP対応ツールとの接続が示されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP SQL Server
MSSQL サポートから始まる、SQL データベースへの包括的なアクセスを提供する Model Context Protocol サーバーです。このサーバーにより、AI アシスタントはデータベーススキーマの確認、クエリの実行、エンタープライズグレードのセキュリティとパフォーマンス監視を備えたデータベース操作を行えます。
現在の状況:MSSQL は完全にサポートされています。 MySQL と PostgreSQL のサポートは今後のリリースで追加予定です。
✨ 主な機能
- データベースのサポート:MSSQL を完全にサポート(MySQL と PostgreSQL は近日対応予定)
- スキーマの確認:包括的なデータベース構造の分析とメタデータの抽出
- クエリの実行:パラメーター化クエリと結果のフォーマットに対応した、安全な SQL 実行
- パフォーマンス監視:リアルタイムのメトリクス、クエリ統計、パフォーマンスレポート
- セキュリティ優先:SQL インジェクションの防止、接続の暗号化、アクセス制御
- バッチ操作:効率的な一括クエリの実行とトランザクション管理
- コネクションプーリング:設定可能なプール設定による、最適化された接続管理
- MCP 連携:Claude Desktop、Cursor、およびその他の MCP 互換ツールをネイティブサポート
📦 インストールとセットアップ
前提条件
- Node.js 18.0.0 以降 - こちらからダウンロード
- データベースサーバー:Microsoft SQL Server(MSSQL)
- AI アシスタント:Claude Desktop、Cursor、または MCP 互換ツール
注:現在サポートされているのは MSSQL のみです。MySQL と PostgreSQL のサポートは今後のリリースで追加される予定です。
クイックインストール
# Install globally via NPM
npm install -g @donggyunryu/mcp-sql
基本設定
env.exampleを参照してください
データベース設定を記述した .env ファイルを作成します:
# Create .env file with your database settings
# DB_TYPE=mssql # Current only MSSQL supported
DB_HOST=localhost
DB_PORT=1433
DB_DATABASE=your_database
DB_USER=your_username
DB_PASSWORD=your_password
DB_ENCRYPT=false
DB_TRUST_SERVER_CERTIFICATE=true
接続テスト
# Test your database connection
npm run test:db # in local environment
#or
npx @donggyunryu/mcp-sql test:db
🚀 クイックスタート
ローカル環境
-
リポジトリをクローンします:
git clone https://github.com/ryudg/mcp-sql.git cd mcp-sql -
依存関係をインストールします
npm install -
プロジェクトをビルドします
npm run build -
mcp.json、setting.json、またはclaude_desktop_config.jsonに追加します{ "mcpServers": { "mcp-sql": { "command": "node", "args": ["/full/path/to/mcp-mysql/build/index.js"], "env": { // "DB_TYPE": "mssql", # Current only MSSQL supported "DB_SERVER": "localhost", "DB_PORT": "1433", "DB_DATABASE": "your_database", "DB_USER": "your_username", "DB_PASSWORD": "your_password", "DB_ENCRYPT": "false", "DB_TRUST_SERVER_CERTIFICATE": "true", "NODE_ENV": "development", "LOG_LEVEL": "info" } } } }
AI アシスタントの設定
Claude Desktop の場合:
claude_desktop_config.json に追加します:
{
"mcpServers": {
"mcp-sql": {
"command": "npx",
"args": ["-y", "@donggyunryu/mcp-sql"],
"env": {
// "DB_TYPE": "mssql", # Current only MSSQL supported
"DB_HOST": "localhost",
"DB_PORT": "1433",
"DB_DATABASE": "your_database",
"DB_USER": "your_username",
"DB_PASSWORD": "your_password",
"DB_ENCRYPT": "false",
"DB_TRUST_SERVER_CERTIFICATE": "true"
}
}
}
}
Cursor(VSCode、Windsurf などの IDE)の場合:
MCP 設定に追加します:
{
"mcpServers": {
"mcp-sql": {
"command": "npx",
"args": ["-y", "@donggyunryu/mcp-sql"],
"env": {
// "DB_TYPE": "mssql", # Current only MSSQL supported
"DB_HOST": "localhost",
"DB_PORT": "1433",
"DB_DATABASE": "your_database",
"DB_USER": "your_username",
"DB_PASSWORD": "your_password",
"DB_ENCRYPT": "false",
"DB_TRUST_SERVER_CERTIFICATE": "true"
}
}
}
}
利用開始
AI アシスタントを再起動して、次のように試してみてください:
"Show me all tables in my database"
"What's the structure of the users table?"
"Find all active users from the last 30 days"
💬 使用例
スキーマの確認
"Show me all tables in the database"
"What's the structure of the users table?"
"List all columns in the orders table with their data types"
データのクエリ
"Find all active users registered in the last 30 days"
"Show me the top 10 customers by total order value"
"Get all pending orders from this month"
パフォーマンス監視
"Show me current connection pool status"
"What are the slowest queries in the last hour?"
"Generate a performance report for today"
🛠️ 利用可能なツール
MCP SQL サーバーは、データベース操作のために次のツールを提供します:
スキーマと探索ツール
| ツール | 説明 | パラメーター |
|---|---|---|
list_tables | データベース内のすべてのテーブルを一覧表示 | pattern(任意):フィルターパターン |
describe_table | テーブル構造の詳細を取得 | table_name:説明するテーブルの名前 |
get_schema | データベーススキーマ全体を取得 | include_system_tables:システムテーブルを含める |
get_schema_statistics | スキーマ統計情報を取得 | なし |
クエリ実行ツール
| ツール | 説明 | パラメーター |
|---|---|---|
execute_query | SQL クエリを安全に実行します | query:SQL 文parameters:バインドパラメーター |
start_batch_processing | 複数のクエリをバッチ処理します | queries:SQL 文の配列 |
パフォーマンスとモニタリングのツール
| ツール | 説明 | パラメーター |
|---|---|---|
get_connection_pool_status | データベース接続プールの状態を取得します | なし |
get_query_stats | クエリ実行統計を取得します | period:期間(任意) |
start_performance_monitoring | パフォーマンスモニタリングを開始します | interval:モニタリング間隔(ms) |
generate_performance_report | パフォーマンス分析レポートを生成します | timeRange:レポート対象期間 |
clear_caches | キャッシュデータを初期化します | なし |
🛡️ セキュリティ
- 接続の暗号化:TLS/SSL 接続をサポートします
- パラメーターのバインド:SQL インジェクションを防止します
- アクセス制御:データベースユーザーの権限に基づいて制御します
- ロギング:クエリ実行を完全に記録します
- 入力検証:包括的な入力サニタイズを行います
セキュリティのベストプラクティス
- 必要最小限の権限を持つ、専用のデータベースユーザーを使用してください
- 可能な場合は、データベース接続の SSL/TLS 暗号化を有効にしてください
- 適切な上限を設定して、接続プーリングを使用してください
- 認証情報をバージョン管理にコミットしないでください
- 機密性の高い設定には、すべて環境変数を使用してください
🗺️ ロードマップ
今後追加予定の機能
-
🔮 マルチデータベース対応
- MySQL アダプターの実装
- PostgreSQL アダプターの実装
- 統一されたデータベースインターフェース
-
⚡ パフォーマンスとキャッシュ
- クエリ結果のキャッシュシステム
- 高度なパフォーマンス最適化
- 接続プールの機能強化
-
🧪 テストと品質
- 包括的なテストカバレッジ(100%)
- 自動化された CI/CD パイプライン
- パフォーマンスベンチマーク
-
🚀 高度な機能
- GraphQL 統合のサポート
- 強化されたモニタリングダッシュボード
- 拡張性を高めるプラグインアーキテクチャー
-
📊 分析とインサイト
- 高度なクエリ分析
- データベースのパフォーマンスに関するインサイト
- 使用状況の統計とレポート
サポートとコミュニティ
- 📋 問題: バグの報告や機能のリクエスト
- 💬 ディスカッション: コミュニティでの議論と Q&A
- 📖 ドキュメント: 詳細なガイドと API ドキュメント
📝 ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細は LICENSE ファイルをご覧ください。
AI を活用した開発コミュニティのために作られました
MCP SQL Server v1.0.0 - AI とデータベースをつなぐ
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。