MSSQL MCP Server について
MSSQL MCP Server は、AI アシスタントが Microsoft SQL Server データベースと構造化された形で対話できるようにする MCP サーバーです。テーブル一覧の取得、テーブル内容の読み取り、SQL クエリの実行に対応し、アクセス設定は環境変数で行います。権限を管理したうえでモデルから MSSQL のデータを参照させたい開発者向けです。
主な機能
- 01データベース内のテーブル一覧の取得
- 02query_sql による読み取り専用 SELECT クエリの実行
- 03execute_sql による書き込みおよび DDL 文の実行
- 04環境変数によるデータベース接続の設定
- 05stdio と Streamable HTTP のトランスポート対応
- 06ODBC ドライバーを含む Docker 構成
活用シーン
- 01AI アシスタントから MSSQL データベースのデータを照会
- 02Claude Desktop や Cursor からのテーブル構造の確認
- 03読み取り専用によるデータベース分析をモデルに提供
MCP 対応
MSSQL MCP Server は MCP サーバーとして動作し、テーブル一覧、読み取り専用クエリ、SQL 実行のツールを MCP クライアントに提供します。ツールアノテーションで読み取り専用と破壊的操作を区別します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MSSQL MCP Server
MSSQL MCP Server は、Microsoft SQL Server(MSSQL) データベースとの安全で構造化されたやり取りを可能にする Model Context Protocol(MCP)サーバーです。AI アシスタントで次の操作を行えます。
- 利用可能なテーブルの一覧表示
- テーブル内容の読み取り
- アクセスを制御した SQL クエリの実行
MCP SDK v2(2026-07-28 仕様)を基盤とし、stdio と Streamable HTTP の両方のトランスポートに対応しています。
機能
- 環境変数を介した MSSQL データベースへの安全なアクセス
- 識別子の検証による SQL インジェクション対策
- 適切な MCP アノテーションを備えた 読み取り専用ツールと書き込みツール
- Trusted Connection による Windows 認証への対応
- 2 種類のトランスポート — stdio(デフォルト)と HTTP
- 事前構成済みの ODBC ドライバーを備えた Docker 対応
- クエリや操作を監視するための 包括的なロギング
インストール
pip install mssql-mcp-server
設定
データベースアクセスを設定するには、次の環境変数を設定してください。
# Required
MSSQL_DATABASE=your_database
# Authentication (choose one):
# Option 1: SQL Server Authentication
MSSQL_USER=your_username
MSSQL_PASSWORD=your_password
# Option 2: Windows / Kerberos Authentication
Trusted_Connection=yes
# Optional
MSSQL_HOST=localhost # or use MSSQL_SERVER
MSSQL_DRIVER=SQL Server # default driver
TrustServerCertificate=no # default: no (set to yes for self-signed certs)
MCP_TRANSPORT=stdio # or "streamable-http" for Streamable HTTP
利用可能なツール
| ツール | 説明 | アノテーション |
|---|---|---|
list_tables | データベース内のすべてのテーブルを一覧表示します | 読み取り専用、冪等 |
query_sql | 読み取り専用の SELECT クエリを実行します | 読み取り専用、冪等 |
execute_sql | 任意の SQL 文(SELECT、INSERT、UPDATE、DELETE、DDL)を実行します | 破壊的 |
使用方法
Claude Desktop で使用する
この設定を claude_desktop_config.json に追加してください。
{
"mcpServers": {
"mssql": {
"command": "uv",
"args": [
"--directory",
"path/to/mssql_mcp_server",
"run",
"mssql_mcp_server"
],
"env": {
"MSSQL_HOST": "localhost",
"MSSQL_USER": "your_username",
"MSSQL_PASSWORD": "your_password",
"MSSQL_DATABASE": "your_database"
}
}
}
}
Cursor IDE で使用する
これを .cursor/mcp.json に追加してください。
{
"mcpServers": {
"mssql": {
"command": "uv",
"args": [
"--directory",
"path/to/mssql_mcp_server",
"run",
"mssql_mcp_server"
],
"env": {
"MSSQL_HOST": "localhost",
"MSSQL_USER": "your_username",
"MSSQL_PASSWORD": "your_password",
"MSSQL_DATABASE": "your_database"
}
}
}
}
pip install(グローバル)で使用する
{
"mcpServers": {
"mssql": {
"command": "mssql_mcp_server",
"env": {
"MSSQL_HOST": "localhost",
"MSSQL_USER": "your_username",
"MSSQL_PASSWORD": "your_password",
"MSSQL_DATABASE": "your_database"
}
}
}
}
Docker で使用する
docker build -t mssql-mcp-server .
docker run -e MSSQL_HOST=host.docker.internal \
-e MSSQL_USER=your_username \
-e MSSQL_PASSWORD=your_password \
-e MSSQL_DATABASE=your_database \
mssql-mcp-server
スタンドアロンサーバーとして実行する
# Install dependencies
pip install -r requirements.txt
# Run the server (stdio)
python -m mssql_mcp_server
# Run with HTTP transport
MCP_TRANSPORT=streamable-http python -m mssql_mcp_server
開発とテスト
# Clone the repository
git clone https://github.com/JexinSam/mssql_mcp_server.git
cd mssql_mcp_server
# Set up a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -r requirements-dev.txt
pip install -e .
# Run tests
pytest -v
# Test with MCP Inspector
uv run mcp dev src/mssql_mcp_server/server.py
トラブルシューティング
「Program Not Found」エラー
通常、mssql_mcp_server コマンドが PATH に含まれていないことが原因です。次の方法をお試しください。
uvを使用する(推奨):MCP クライアントでuv --directory path/to/mssql_mcp_server run mssql_mcp_serverを使用するように設定します- フルパスを使用する:
pip show mssql-mcp-serverでインストール先を確認し、scripts ディレクトリを使用します python -mを使用する:python -m mssql_mcp_serverとして実行します
MSSQL ドライバーの問題
デフォルトのドライバーは SQL Server(Windows に組み込まれています)です。Linux/macOS、または新しい機能を使用する場合:
- Microsoft ODBC Driver 18 をインストールします
MSSQL_DRIVER="ODBC Driver 18 for SQL Server"を設定します
接続タイムアウト
他のプロジェクトで MSSQL_SERVER を使用している場合、このサーバーでは MSSQL_HOST と MSSQL_SERVER の両方の環境変数に対応しています(MSSQL_HOST が優先されます)。
セキュリティに関する考慮事項
- 最小限の権限を持つ専用の MSSQL ユーザーを使用してください。
- root の認証情報や完全な管理者アカウントは使用しないでください。
- データベースアクセスを必要な操作のみに制限してください(例:モデルによるデータの変更を許可しない場合は、
GRANT SELECTのみを使用します)。readOnlyHintとdestructiveHintのアノテーションはクライアントの UX 向けです。セキュリティはデータベースの認証情報によってのみ強制されます。 - セキュリティ監視のため、ロギングと監査を有効にしてください。
- 最小権限でのアクセスを徹底するため、定期的に権限を見直してください。
セキュリティのベストプラクティス
安全に設定するには:
- 権限を制限した専用の MSSQL ユーザーを作成します。
- 認証情報をハードコードせず、環境変数を使用します。
- 必要なテーブルと操作のみにアクセスを制限します。
- 監査のため、SQL Server のロギングと監視を有効にします。
- 不正アクセスを防ぐため、データベースアクセスを定期的に確認します。
詳しい手順については、MSSQL Security Configuration Guide を参照してください。
⚠️ 重要: データベースアクセスを設定する際は、常に最小権限の原則に従ってください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルを参照してください。
貢献
皆さまからの貢献を歓迎します!貢献するには、以下の手順に従ってください。
- リポジトリをフォークします。
- フィーチャーブランチを作成します:
git checkout -b feature/amazing-feature - 変更をコミットします:
git commit -m 'Add amazing feature' - ブランチにプッシュします:
git push origin feature/amazing-feature - プルリクエストを作成します。
お困りですか?
質問や問題がある場合は、GitHub の Issue を作成するか、メンテナーにお気軽にお問い合わせください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。