Mssql Mcp Server について
Mssql Mcp Serverは、AIエージェントなどのMCPクライアントからMicrosoft SQL Serverを操作するサーバーです。stdioまたはStreamable HTTPでクエリやストアドプロシージャを実行でき、認証方式とセッションを設定できます。
主な機能
- 01SQLクエリの実行
- 02ストアドプロシージャの実行
- 03データベース接続情報の取得
- 04Windows認証とSQL Server認証
- 05stdioとStreamable HTTPのトランスポート
- 06複数のHTTPセッション
活用シーン
- 01MCPクライアントからSQL Serverを検索
- 02エージェント経由でストアドプロシージャを呼び出す
- 03HTTP経由でWebアプリを接続
- 04APIキーごとにデータベース接続を分ける
MCP 対応
クエリ実行、ストアドプロシージャ、接続情報取得などのSQL Server操作をMCPツールとして公開します。クライアントはstdioまたはStreamable HTTPで接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MSSQL MCP サーバー
Microsoft SQL Server のデータベース操作を行うための Model Context Protocol(MCP)サーバーです。
特徴
- SQL Server に対する SQL クエリを実行します
- ストアドプロシージャを実行します
- データベースの接続情報を取得します
- Windows 認証と SQL Server 認証の両方をサポートします
- 環境変数を使って柔軟に設定できます
- Streamable HTTP トランスポートにより、ウェブベースのアプリケーションやリモート接続に対応します
- 複数の同時セッションをサポートします
使用方法
サーバーは、2 つのトランスポートモードに対応しています。
1. Stdio トランスポート(デフォルト)
Claude Desktop やその他の Stdio ベースの MCP クライアントで使用します。
Claude Desktop の設定に追加します。
{
"mcpServers": {
"mssql": {
"command": "npx",
"args": [
"github:stilllovee/mssql-mcp-server"
],
"env": {
"DB_SERVER": "servername",
"DB_DATABASE": "dbname",
"DB_USER": "username", //optional
"DB_PASSWORD": "password", //optional
"DB_TRUST_SERVER_CERTIFICATE": "true", //optional
"DB_ENCRYPT": "true" //optional
}
}
}
}
または、お使いの PC にインストールします。
npm install
{
"mcpServers": {
"mssql": {
"command": "node",
"args": ["/path/to/folder"],
"env": {
"DB_SERVER": "servername",
"DB_DATABASE": "dbname",
"DB_USER": "username", //optional
"DB_PASSWORD": "password", //optional
"DB_TRUST_SERVER_CERTIFICATE": "true", //optional
"DB_ENCRYPT": "true" //optional
}
}
}
}
または、接続文字列を使用します。
{
"mcpServers": {
"mssql": {
"command": "node",
"args": ["/path/to/folder"],
"env": {
"DB_CONNECTION_STRING": "Server=localhost;Database=ecommerce;Trusted_Connection=yes;TrustServerCertificate=yes"
}
}
}
}
2. Streamable HTTP トランスポート
ウェブアプリケーション、リモート接続、および HTTP が適した環境で使用します。
HTTP サーバーの起動
データベース設定を含む .env ファイルをセットアップします。
DB_SERVER=localhost
DB_DATABASE=ecommerce
DB_USE_WINDOWS_AUTH=true
# Or use a full connection string
# DB_CONNECTION_STRING=Server=localhost;Database=ecommerce;Trusted_Connection=yes;TrustServerCertificate=yes
サーバーを実行します。
# Using default port 8123
node index-http.js
# Or specify a custom port
node index-http.js --port=3000
サーバーは http://localhost:8123/mcp(またはカスタムポート)で利用できます。
HTTP トランスポートの特徴
- セッション管理:固有のセッション ID を使って、複数のクライアント接続を同時にサポートします
- サーバー送信イベント(SSE):GET エンドポイントを介してリアルタイム通知を受け取れます
- ステートフル接続:リクエスト間でセッション状態を維持します
- 標準 HTTP:任意の HTTP クライアントまたはプロキシで動作します
- API キーベースの接続マッピング:異なる API キーを異なるデータベース接続に割り当てられます(下記を参照)
API キーベースのマルチデータベースサポート
HTTP トランスポートでは、Azure Table Storage を使用した API キーベースの接続マッピングに対応しており、固有の API キーを使って異なるクライアントを異なるデータベースに接続できます。
API キーマッピングを有効にする:
# Set environment variables
USE_API_KEY_MAPPING=true
AZURE_STORAGE_CONNECTION_STRING=your_azure_connection_string
# Start the server
node index-http.js
Claude Desktop で設定する:
"mssql": {
"type": "http",
"url": "http://localhost:8123/mcp",
"headers": {
"x-api-key": "your-api-key"
}
},
API キーを使ってリクエストを送信する:
curl -X POST http://localhost:8123/mcp \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",...}'
API キーを管理する:
# List all API keys
node scripts/manage-api-keys.js list
# Add a new API key
node scripts/manage-api-keys.js add my-api-key
# Delete an API key
node scripts/manage-api-keys.js delete my-api-key
Azure Table Storage のセットアップ、API キーの管理、セキュリティのベストプラクティスについて詳しくは、Azure Table Storage のドキュメントを参照してください。
HTTP エンドポイント
POST /mcp- MCP リクエストを送信し、レスポンスを受け取りますGET /mcp- 通知を受け取るための SSE 接続を確立します(mcp-session-idヘッダーが必要です)
利用可能な環境変数
| 変数 | 説明 | デフォルト |
|---|---|---|
DB_CONNECTION_STRING | 完全な接続文字列(ほかのすべての設定より優先されます) | - |
DB_SERVER | SQL Server のホスト名または IP アドレス | localhost |
DB_DATABASE | データベース名 | ecommerce |
DB_USER | SQL Server 認証用のユーザー名 | - |
DB_PASSWORD | SQL Server 認証用のパスワード | - |
DB_USE_WINDOWS_AUTH | Windows 認証を使用します | true(ユーザー名/パスワードが設定されていない場合) |
DB_DRIVER | ODBC ドライバー名 | ODBC Driver 17 for SQL Server |
DB_ENCRYPT | 接続の暗号化を有効にします | false |
DB_TRUST_SERVER_CERTIFICATE | サーバー証明書を信頼します | true |
USE_API_KEY_MAPPING | API キーに基づく接続マッピングを有効にします | false |
AZURE_STORAGE_CONNECTION_STRING | Azure Table Storage の接続文字列(API キーのマッピングに必要) | - |
AZURE_TABLE_NAME | API キーのマッピングに使用する Azure テーブル名 | ApiKeyMappings |
利用可能なツール
-
sql_execute_query - SQL クエリを実行します
- パラメーター:
query(文字列)、params(オブジェクト、省略可能)
- パラメーター:
-
sql_execute_procedure - ストアドプロシージャを実行します
- パラメーター:
procedure_name(文字列)、params(オブジェクト、省略可能)
- パラメーター:
-
sql_get_database_info - データベース接続情報を取得します
- パラメーターは不要です
-
その他 ...
要件
- Node.js 14 以降
- ODBC ドライバーがインストールされた SQL Server
- Windows 認証を使用する場合:適切な権限を持つ Windows 環境で実行すること
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。