SQL Server について
SQL Serverは、AIエージェントなどのMCPクライアントからSQL Serverデータベースを照会・管理するためのMCPサーバーです。読み取り専用ツールは常時利用でき、書き込みツールは接続権限に応じて有効になり、実行ごとに確認が必要です。
主な機能
- 01読み取り専用クエリとデータベース検査
- 02テーブル、ビュー、プロシージャ、関数の一覧
- 03インデックス、制約、統計情報の確認
- 04データベース権限に応じた書き込みツール
- 05書き込み操作ごとの確認
- 06stdioとStreamable HTTPに対応
活用シーン
- 01データベース構造とメタデータの確認
- 02書き込みを伴わないSELECTクエリの実行
- 03確認後に許可された更新やDDLを実行
MCP 対応
stdioまたはStreamable HTTP経由で、SQL Serverの照会・管理ツールをMCPクライアントに提供します。書き込みツールは、接続に書き込み権限がある場合にのみ利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-sqlserver
SQL Server 用の MCP(Model Context Protocol)サーバーです。権限制御に対応し、デフォルトで読み取り専用モードで動作します。AI エージェント(Claude、opencode、その他の MCP クライアント)が SQL Server データベースを安全に参照・管理できます。
セキュリティ
- 認証情報が LLM に公開されることはありません — 接続文字列は環境から読み込まれ、応答やログに表示されることはありません。
- デフォルトで読み取り専用 —
consultaツールは DDL/DML(INSERT、UPDATE、DELETE、DROP など)をブロックします。 - 必要に応じて書き込み — 書き込みツール(
executar_update、executar_ddlなど)は、接続ユーザーが書き込み権限(rolessysadmin、db_owner、db_datawriter、db_ddladmin)を持つ場合にのみ公開され、実行のたびに明示的な確認が必要です。
前提条件
- Python 3.10+
- ODBC Driver 18 for SQL Server ドライバー:
- macOS:
brew install msodbcsql18 - Windows/Linux:Microsoft の対応するドライバーをインストールしてください
- macOS:
インストール
PyPI 経由:
pip install sqlserver-mcp-tools
または、インストールせずに実行(キャッシュを使用して PyPI から直接実行):
uvx --from sqlserver-mcp-tools mcp-sqlserver
設定
サーバーは、以下の優先順位で接続文字列を読み込みます。
- 環境変数
MSSQL_CONNECTION_STRING .envファイルを指定する環境変数MSSQL_ENV_FILE- 作業ディレクトリ(またはプロジェクトのルート)にある
.envファイル
接続文字列の例:
DRIVER={ODBC Driver 18 for SQL Server};SERVER=localhost,1433;DATABASE=seu_banco;UID=seu_usuario;PWD=sua_senha;TrustServerCertificate=yes
MCP クライアントでの使用
Claude Desktop
claude_desktop_config.json に追加します:
{
"mcpServers": {
"mcp-sqlserver": {
"command": "uvx",
"args": ["--from", "sqlserver-mcp-tools", "mcp-sqlserver"],
"env": {
"MSSQL_CONNECTION_STRING": "DRIVER={ODBC Driver 18 for SQL Server};SERVER=...;DATABASE=...;UID=...;PWD=...;TrustServerCertificate=yes"
}
}
}
}
pip install でインストールした場合は、エントリーポイントを直接使用できます:
{
"mcpServers": {
"mcp-sqlserver": {
"command": "mcp-sqlserver",
"env": {
"MSSQL_CONNECTION_STRING": "DRIVER={ODBC Driver 18 for SQL Server};SERVER=...;DATABASE=...;UID=...;PWD=...;TrustServerCertificate=yes"
}
}
}
}
OpenCode
プロジェクトの opencode.json に記述します:
{
"mcp": {
"sqlserver": {
"type": "local",
"command": ["mcp-sqlserver"],
"environment": {
"MSSQL_CONNECTION_STRING": "DRIVER={ODBC Driver 18 for SQL Server};SERVER=...;DATABASE=...;UID=...;PWD=...;TrustServerCertificate=yes"
}
}
}
}
別の方法として、ローカルの .env ファイルを指定し、パスワードを JSON に含めないようにできます:
{
"mcp": {
"sqlserver": {
"type": "local",
"command": ["mcp-sqlserver"],
"environment": {
"MSSQL_ENV_FILE": "/caminho/para/seu/.env"
}
}
}
}
HTTP サーバー(Streamable HTTP)
ローカルモード(stdio)に加えて、サーバーを Streamable HTTP 経由の リモート MCP サーバー として実行し、/mcp エンドポイントを公開できます。server エクストラを指定してインストールしてください:
pip install 'sqlserver-mcp-tools[server]'
サーバーを起動します:
MSSQL_CONNECTION_STRING="DRIVER={ODBC Driver 18 for SQL Server};SERVER=...;DATABASE=...;UID=...;PWD=...;TrustServerCertificate=yes" \
mcp-sqlserver-http
必要に応じて、MCP_HOST(デフォルトは 0.0.0.0)と MCP_PORT(デフォルトは 8090)でホスト/ポートを設定できます。MCP エンドポイントは http://<host>:<porta>/mcp です。
opencode からリモート接続するには:
{
"mcp": {
"sqlserver": {
"type": "remote",
"url": "http://10.177.51.228:8090/mcp"
}
}
}
使用可能なツール
読み取り専用(常に使用可能):
| ツール | 説明 |
|---|---|
consulta | SELECT を実行します(読み取り専用、DDL/DML をブロック) |
listar_bancos | アクセス可能なデータベースを一覧表示します |
listar_tabelas | データベース内のテーブルとビューを一覧表示します |
descrever_tabela | テーブルの構造(列、型、PK)を表示します |
listar_indices | テーブルのインデックスを一覧表示します |
listar_procedures | ストアドプロシージャを一覧表示します |
ler_procedure | プロシージャのソースコードを表示します |
listar_funcoes | 関数(スカラー関数およびテーブル値関数)を一覧表示します |
ler_funcao | 関数のソースコードを表示します |
listar_constraints | テーブルの制約(PK、FK、UNIQUE、CHECK、DEFAULT)を一覧表示します |
estatisticas_tabela | 統計情報(行数、サイズ、データ使用量)を表示します |
plano_execucao | 推定実行プランを表示します(実行はしません) |
status_jobs | SQL Agent ジョブの最終実行ステータスを表示します |
書き込み(接続に書き込み権限がある場合のみ):
| ツール | 説明 |
|---|---|
executar_procedure | ストアドプロシージャを実行します |
executar_update | UPDATE を実行します(WHERE が必要です) |
criar_indice | インデックスを作成します |
alterar_procedure | 自動バックアップ付きでプロシージャを変更します |
executar_ddl | ロールバック用スクリプトをバックアップして DDL を実行します |
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。