MS SQL Server MCP Server について
Microsoft SQL Serverに構造化アクセスするLLMエージェント向けのMCPサーバーです。型付きスキーマの確認と、パラメーター化されたログ付きCRUD操作を提供します。
主な機能
- 01テーブル一覧と型付きスキーマの確認
- 02条件や上限を指定した行の読み取り
- 03レコードの作成・更新・削除
- 04実際のスキーマに基づく識別子の検証
- 05パラメーター化クエリと構造化ログ
活用シーン
- 01クエリ前のデータベース確認
- 02条件に一致する行の検索
- 03業務レコードの追加や変更
- 04エージェントへの制限付きデータベースアクセス
MCP 対応
MCPクライアントに、テーブル一覧、スキーマ確認、行の読み取り、レコードの作成・更新・削除を行う6つのツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-server-mssql
Model Context Protocol サーバーです。LLM エージェントに Microsoft SQL Server への安全で構造化されたアクセスを提供します。スキーマの調査に加えて、行レベルの CRUD 操作が可能で、すべての操作はパラメーター化され、ログに記録されます。
実際の業務データベースを扱うエージェントに「この SQL 文字列を実行して」以上のものが必要だから開発されました。予測可能な失敗モードを備えた、型付きツールが必要です。
仕組み
flowchart LR
A[MCP client<br/>Claude Desktop / Claude Code] -- stdio --> B[mcp-server-mssql]
B --> C[connection pool<br/>mssql driver]
C --> D[(SQL Server)]
B -. structured logs .-> E[logs/]
サーバーは環境変数で設定した単一のデータベースに接続し、6 つのツールを公開します。すべてのクエリはパラメーター化されています。ステートメントを実行する前に、テーブル名と列名がライブスキーマに照らして検証されるため、エージェントが識別子を通じてインジェクションを行うことはできません。
ツール
| ツール | 機能 |
|---|---|
list_tables | 設定したデータベース内のすべてのユーザーテーブルを一覧表示します |
get_table_schema | テーブルの列名、型、NULL 許容性、デフォルト値を取得します |
read_table_rows | 列の選択、WHERE フィルター、ORDER BY、LIMIT を指定して行を読み取ります |
create_table_records | 1 行以上を挿入します(列と値はスキーマに照らして検証されます) |
update_table_records | フィルターに一致する行を更新し、影響を受けた行数を返します |
delete_table_records | フィルターに一致する行を削除し、影響を受けた行数を返します |
対話例
ユーザー:「今月登録した顧客は誰ですか?」
エージェントが
list_tablesを呼び出す →Customersを見つける →get_table_schema {"table_name": "Customers"}を呼び出す →CreatedAt datetime2を確認する →read_table_rows {"table_name": "Customers", "filters": {"CreatedAt": {">=": "2026-07-01"}}, "limit": 50}を呼び出す → 行をもとに回答する。
セットアップ
Node.js 18 以降と SQL Server インスタンスへのネットワークアクセスが必要です。
git clone https://github.com/TerraCo89/mcp-server-mssql.git
cd mcp-server-mssql
npm install
cp .env.example .env # fill in connection details
npm run build
設定(環境変数)
| 変数 | 必須 | 備考 |
|---|---|---|
MSSQL_HOST / MSSQL_PORT | はい/いいえ | ポートのデフォルト値は 1433 です |
MSSQL_USER / MSSQL_PASSWORD | はい | SQL 認証情報 |
MSSQL_DATABASE | はい | サーバーインスタンスごとに単一のデータベースを使用します |
MSSQL_ENCRYPT, MSSQL_TRUST_SERVER_CERTIFICATE | いいえ | TLS オプション |
LOG_LEVEL | いいえ | デフォルトはinfoです |
Claude Desktop/Claude Code での使用
{
"mcpServers": {
"mssql": {
"command": "node",
"args": ["/path/to/mcp-server-mssql/dist/server.js"],
"env": {
"MSSQL_HOST": "localhost",
"MSSQL_USER": "agent_reader",
"MSSQL_PASSWORD": "...",
"MSSQL_DATABASE": "MyDb"
}
}
}
}
ヒント:最小権限の SQL ログインを指定してください。サーバーが実行できる操作は、そのログインで許可されている範囲に限られます。
開発
npm run dev # ts-node with live reload
npm test # jest test suite (src/*.test.ts, tests/)
npm run build # emit dist/
Docker:docker build -t mcp-server-mssql .を実行し、同じ環境変数を設定して起動します。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。