hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
MS SQL MCP サーバー 1.1
ClaudeのようなAIアシスタントがMicrosoft SQL Serverデータベースに直接クエリを実行し、探索できるようにする、使いやすいブリッジです。コーディング経験は必要ありません。
このツールは何をするのですか?
このツールにより、AI アシスタントは次のことが可能になります。
- SQL Server データベース内のテーブルを検出する
- テーブル構造(列、データ型など)を表示します
- 読み取り専用SQLクエリを安全に実行する
- 自然言語リクエストからSQLクエリを生成する
🌟 このツールが必要な理由
データとAIのギャップを埋める
- コーディング不要: 複雑な統合コードを書かずに、Claude や他の AI アシスタントに SQL Server データベースへの直接アクセスを許可します。
- 制御を維持: すべてのクエリはデフォルトで読み取り専用であるため、データの安全性が確保されます。
- プライベートかつ安全: データベースの認証情報はローカルに保存され、外部サービスに送信されることはありません
実用的なメリット
- 手作業の時間を節約:AIと共有するためにデータやクエリ結果をコピー&ペーストする必要がなくなります
- より深い分析: AI はデータベース スキーマ全体をナビゲートし、複数のテーブルにわたる洞察を提供できます。
- 自然言語インターフェース: わかりやすい英語でデータについて質問できます
- コンテキスト制限問題の解消: 通常の AI コンテキスト ウィンドウを超える大規模なデータセットにアクセスします。
最適です
- 資格情報を共有せずにSQLデータの解釈をAIに支援してもらいたいデータアナリスト
- 自然な会話を通じてデータベース構造を素早く探索する方法を探している開発者
- SQL の専門知識がなくても洞察力を必要とするビジネスアナリスト
- AIツールへの制御されたアクセスを提供したいデータベース管理者
🚀 クイックスタートガイド
ステップ1: 前提条件をインストールする
- Node.js (バージョン14以上)をインストールする
- Microsoft SQL Server データベース (オンプレミスまたは Azure) にアクセスできる
ステップ2: クローンとセットアップ
ステップ3: データベース接続を構成する
データベースの資格情報を使用して.env
ファイルを編集します。
ステップ4: サーバーを起動する
ステップ 5: 試してみましょう!
📊 使用例
- SQLを書かずにデータベース構造を探索するCopy
- 特定のテーブルに関する詳細情報を取得するCopy
- 安全なクエリを実行するCopy
- 名前のパターンでテーブルを検索するCopy
- ページネーションを使用して大規模な結果セットをナビゲートするCopy
- 最適なパフォーマンスを実現するカーソルベースのページネーションCopy
- 自然言語で質問するCopy
💡 実世界への応用
ビジネスインテリジェンス向け
- 売上実績分析: 「過去 1 年間の月別売上傾向を示し、地域別に最も売れている製品を特定します。」
- 顧客セグメンテーション: 「購入頻度、平均注文額、地理的な場所別に顧客ベースを分析します。」
- 財務報告:「今年と昨年を比較した四半期損益レポートを作成します。」
データベース管理用
- スキーマの最適化: 「クエリ パフォーマンス データを調べて、インデックスが欠落しているテーブルを特定するのに役立ちます。」
- データ品質監査:「不完全な情報または無効な値を持つすべての顧客レコードを検索します。」
- 使用状況分析: 「最も頻繁にアクセスされるテーブルと、最もリソースを消費するクエリを表示します。」
開発のために
- API 探索: 「API を構築しています。適切なエンドポイントを設計するためにデータベース スキーマの分析を手伝ってください。」
- クエリの最適化: 「この複雑なクエリを確認し、パフォーマンスの改善を提案します。」
- データベースドキュメント: 「関係の説明を含むデータベース構造の包括的なドキュメントを作成します。」
🖥️ インタラクティブクライアント機能
バンドルされたクライアントは、簡単なメニュー駆動型のインターフェースを提供します。
- 利用可能なリソースの一覧- 利用可能な情報を確認する
- 利用可能なツールの一覧- 実行できるアクションを確認する
- SQLクエリの実行- 読み取り専用のSQLクエリを実行する
- テーブルの詳細を取得- 任意のテーブルの構造を表示します
- データベース スキーマの読み取り- すべてのテーブルとその関係を確認する
- SQLクエリを生成- 自然言語をSQLに変換する
🧠 効果的なプロンプトとツールの使用ガイド
このMCPサーバーを介してClaudeや他のAIアシスタントと連携する場合、リクエストの表現方法が結果に大きな影響を与えます。AIがデータベースツールを効果的に使用できるようにするには、以下の手順を実行してください。
基本的なツール呼び出し形式
AI にこのツールを使用するように指示する場合は、次の構造に従います。
基本的なコマンドと構文
主なツールとその正しい構文は次のとおりです。
各ツールを使用するタイミング:
- データベースの検出: AI がデータベース構造に慣れていない場合は、これから始めます。
- テーブルの詳細: クエリを記述する前に特定のテーブルに焦点を当てる場合に使用します。
- クエリ実行: 実際のデータを取得または分析する必要がある場合。
- パターンによるテーブル検出: 特定のドメインに関連するテーブルを検索する場合。
効果的なプロンプトパターン
ステップバイステップのワークフロー
複雑なタスクの場合は、一連の手順で AI をガイドします。
まず構造を作り、次にクエリを実行する
説明を求める
SQL Server 方言に関する注意事項
SQL Server の特定の構文について AI に思い出させます。
ツールの使用法の修正
AI が誤った構文を使用する場合は、次の方法で支援できます。
プロンプトによるトラブルシューティング
AI がデータベース タスクに苦労している場合は、次のアプローチを試してください。
- テーブルについてより具体的に説明します。 「クエリを記述する前に、CustomerOrders テーブルが存在するかどうか、また、そのテーブルにどのような列があるかを確認してください。」
- 複雑なタスクをステップに分割します。 「ステップごとに進めていきましょう。まず、Products テーブルの構造を確認します。次に、Orders テーブルを確認します...」
- 中間結果を求める: 「まずそのテーブルで簡単なクエリを実行して、より複雑な分析を試す前にデータ形式を確認します。」
- クエリの説明をリクエストします。 「このクエリを記述した後、各部分で何が行われるかを説明してください。そうすれば、必要な処理が実行されていることを確認できます。」
🔎 高度なクエリ機能
テーブル発見と探索
MCP サーバーは、データベース構造を探索するための強力なツールを提供します。
- パターンベースのテーブル検出: 特定のパターンに一致するテーブルを検索しますCopy
- スキーマの概要: スキーマごとにテーブルの概要を取得しますCopy
- 列の探索: 任意のテーブルの列のメタデータを調べるCopy
ページネーションテクニック
サーバーは、大規模なデータセットを処理するために複数のページ区切り方法をサポートしています。
- オフセット/フェッチページネーション: OFFSETとFETCHを使用した標準SQLページネーションCopy
- カーソルベースのページネーション: 大規模なデータセットでより効率的Copy
- データ付きカウント: ページ区切りデータとともに合計数を取得しますCopy
複雑な結合と関係
結合操作を使用してテーブル間の関係を調査します。
分析クエリ
集計と分析クエリを実行して洞察を獲得します。
SQL Server 機能の使用
MCP サーバーは、SQL Server 固有の機能をサポートしています。
- 共通テーブル式(CTE)
- ウィンドウ関数
- JSON操作
- 階層クエリ
- 全文検索(データベースに設定されている場合)
🔗 統合オプション
クロードデスクトップ統合
次の簡単な手順で、このツールを Claude Desktop に直接接続します。
- anthropic.comからClaude Desktopをインストールする
- Claude の設定ファイルを編集します。
- 場所:
~/Library/Application Support/Claude/claude_desktop_config.json
- 次の構成を追加します。
- 場所:
/FULL/PATH/TO/
このリポジトリをクローンした実際のパスに置き換えます。- Claudeデスクトップを再起動します
- Claude Desktop のツール アイコンを探してください。データベース コマンドを直接使用できるようになりました。
カーソルIDEとの接続
CursorはAIを搭載したコードエディタで、高度なデータベース操作にこのツールを活用できます。設定方法は以下の通りです。
カーソルで設定
- Open Cursor IDE を開きます (お持ちでない場合は、 cursor.shからダウンロードしてください)
- HTTP/SSE トランスポートを使用して MS SQL MCP サーバーを起動します。Copy
- カーソルで新しいワークスペースを作成するか、既存のプロジェクトを開きます
- カーソル設定を入力
- MCPをクリック
- 新しいMCPサーバーを追加する
- MCPサーバーに名前を付け、タイプを選択します: sse
- サーバーの URL を次のように入力します: localhost:3333/sse (または実行しているポート)
カーソル内でのデータベースコマンドの使用
接続すると、Cursor の AI チャットで直接 MCP コマンドを使用できるようになります。
- Cursor の Claude にデータベースを探索するよう依頼します。Copy
- 特定のクエリを実行します。Copy
- 複雑なクエリを生成して実行します。Copy
カーソル接続のトラブルシューティング
- MS SQL MCPサーバーがHTTP/SSEトランスポートで実行されていることを確認してください
- ポートが正しく、.env ファイルの内容と一致していることを確認してください。
- ファイアウォールが接続をブロックしていないことを確認してください
- 異なるIP/ホスト名を使用する場合は、.envファイルのSERVER_URLを更新してください。
🔄 輸送方法の説明
オプション 1: stdio トランスポート (デフォルト)
最適な用途: Claude Desktop またはバンドルされたクライアントで直接使用
オプション2: HTTP/SSEトランスポート
最適な用途: ネットワークアクセスまたはWebアプリケーションで使用する場合
🛡️ セキュリティ機能
- デフォルトで読み取り専用:データ変更のリスクなし
- プライベート認証情報: データベース接続の詳細は
.env
ファイルに残ります - SQLインジェクション保護: SQLクエリの組み込み検証
🔎 新規ユーザー向けトラブルシューティング
「データベースに接続できません」
.env
ファイルで正しいデータベース資格情報を確認してください- SQL Server が実行中で接続を受け入れていることを確認してください
- Azure SQLの場合、ファイアウォール設定でIPが許可されていることを確認してください
「モジュールが見つかりません」エラー
- すべての依存関係がインストールされていることを確認するために
npm install
再度実行します。 - Node.jsバージョン14以上を使用していることを確認してください
「トランスポートエラー」または「接続拒否」
- HTTP/SSEトランスポートの場合、.envのポートが利用可能であることを確認してください。
- ファイアウォールが接続をブロックしていないことを確認してください
クロードデスクトップに接続できません
claude_desktop_config.json
のパスを再確認してください- 相対パスではなく絶対パスを使用していることを確認してください
- 変更を加えた後、Claude Desktopを完全に再起動してください。
📚 SQL Server の基礎を理解する
SQL Server を初めて使用する場合は、次の重要な概念を理解しておく必要があります。
- 表: データを行と列に保存します
- スキーマ: テーブルの論理的なグループ(フォルダなど)
- クエリ: データを取得または分析するためのコマンド
- ビュー: 簡単にアクセスできるように保存された定義済みのクエリ
このツールを使用すると、SQL の専門家でなくてもこれらすべてを調べることができます。
🏗️ アーキテクチャとコアモジュール
MS SQL MCP サーバーは、保守性と拡張性に関する懸念を分離するモジュール アーキテクチャで構築されています。
コアモジュール
database.mjs
- データベース接続
- SQL Server 接続プールを管理します
- 再試行ロジックとエラー処理を備えたクエリ実行を提供します
- データベース接続、トランザクション、構成を処理します
- SQL およびフォーマットエラーをサニタイズするためのユーティリティが含まれています
tools.mjs
- ツール登録
- すべてのデータベースツールをMCPサーバーに登録します
- ツールの検証とパラメータのチェックを実装します
- SQLクエリ、テーブル探索、データベース検出のコア機能を提供します
- ツール呼び出しをデータベース操作にマッピングする
resources.mjs
- データベースリソース
- リソースエンドポイントを通じてデータベースメタデータを公開する
- スキーマ情報、テーブルリスト、および手順のドキュメントを提供します
- AI で使用できるようにデータベース構造情報をフォーマットします
- データベース探索用の検出ユーティリティが含まれています
pagination.mjs
- 結果ナビゲーション
- 大規模な結果セットに対してカーソルベースのページ区切りを実装します
- 次/前のページカーソルを生成するためのユーティリティを提供します
- ページ区切りをサポートするためにSQLクエリを変換します
- SQL Server の OFFSET/FETCH ページ区切り構文を処理します
errors.mjs
- エラー処理
- さまざまな障害シナリオに合わせてカスタムエラータイプを定義します
- JSON-RPCエラーフォーマットを実装
- 人間が読めるエラーメッセージを提供する
- グローバルエラー処理用のミドルウェアが含まれています
logger.mjs
- ログシステム
- 複数のトランスポートを使用して Winston のログを構成する
- コンテキストに応じたリクエストログを提供する
- ログのローテーションとフォーマットを処理
- キャッチされていない例外と処理されていない拒否をキャプチャします
これらのモジュールがどのように連携するか
- ツール呼び出しを受信すると、MCPサーバーはそれを
tools.mjs
内の適切なハンドラーにルーティングします。 - ツールハンドラーはパラメータを検証し、データベースクエリを構築します。
- クエリは
database.mjs
内の関数を介して実行され、pagination.mjs
からのページネーションが可能です。 - 結果はフォーマットされてクライアントに返されます
- エラーはすべて
errors.mjs
を通じてキャッチされ、処理されます。 - すべての操作は
logger.mjs
経由で記録されます。
このアーキテクチャにより、次のことが保証されます。
- 明確な関心の分離
- 一貫したエラー処理
- 包括的なログ記録
- 効率的なデータベース接続管理
- スケーラブルなクエリ実行
⚙️ 環境設定の説明
.env
ファイルは、MS SQL MCPサーバーがデータベースに接続し、動作する方法を制御します。各設定の詳細な説明は以下のとおりです。
接続タイプの説明
stdioトランスポート
- Claude Desktopに直接接続する場合に使用します
- 通信は標準入出力ストリームを通じて行われる
- .envファイルで
TRANSPORT=stdio
を設定します npm start
で実行
HTTP/SSEトランスポート
- ネットワーク経由で接続する場合に使用します(Cursor IDE など)
- リアルタイム通信にサーバー送信イベント(SSE)を使用する
- .envファイルで
TRANSPORT=sse
を設定します SERVER_URL
サーバーのアドレスに合わせて設定しますnpm run start:sse
で実行します。
SQL Server 接続の例
ローカル SQL サーバー
Azure SQL データベース
クエリ結果の保存
クエリ結果は、 QUERY_RESULTS_PATH
で指定されたディレクトリにJSONファイルとして保存されます。これにより、結果セットが大量になって会話が過負荷になるのを防ぎます。以下のことが可能です。
- プロジェクトのデフォルトの
query-results
ディレクトリを使用するには、これを空白のままにしておきます /Users/username/Documents/query-results
のようなカスタムパスを設定します- ツールの応答で提供された UUID を使用して保存された結果にアクセスします
📝 ライセンス
ISC
This server cannot be installed
ClaudeやCursor IDEなどのAIアシスタントがMicrosoft SQL Serverデータベースを直接クエリ・探索できる、使いやすいブリッジです。コーディング経験は必要ありません。
- What Does This Tool Do?
- 🌟 Why You Need This Tool
- 🚀 Quick Start Guide
- 📊 Example Use Cases
- 💡 Real-World Applications
- 🖥️ Interactive Client Features
- 🧠 Effective Prompting & Tool Usage Guide
- 🔎 Advanced Query Capabilities
- 🔗 Integration Options
- 🔄 Transport Methods Explained
- 🛡️ Security Features
- 🔎 Troubleshooting for New Users
- 📚 Understanding SQL Server Basics
- 🏗️ Architecture & Core Modules
- ⚙️ Environment Configuration Explained
- 📝 License