mcpField
M
MS SQL Server MCP Server

MS SQL Server MCP Server

ローカル
github.com/bymcsデータベース146 週間前に更新

MS SQL Server MCP Server について

MS SQL Server MCP Server は、MCP 対応クライアントを Microsoft SQL Server に接続し、データベースの照会や確認を可能にします。stdio または HTTP でスキーマ、行データ、ストアドプロシージャのツールを提供し、認証情報はサーバー環境から読み込みます。

主な機能

  1. 01データベース接続と切断
  2. 02SQL クエリとストアドプロシージャの実行
  3. 03スキーマオブジェクトと列の確認
  4. 04テーブル行のページ取得
  5. 05stdio と HTTP のトランスポート
  6. 06環境変数のみから接続認証情報を取得

活用シーン

  1. 01MCP クライアントからデータベーススキーマを調査
  2. 02SQL Server のテーブルデータをページ取得
  3. 03対応ツールから SQL クエリを実行
  4. 04MCP 経由でストアドプロシージャを呼び出し

MCP 対応

この MCP サーバーは、Microsoft SQL Server の接続、クエリ、スキーマ確認、行データ取得、ストアドプロシージャ実行のツールを MCP クライアントに公開します。stdio と HTTP に対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"mssql-mcp-bymcs": {
"command": "npx",
"args": [
"-y",
"mssql-mcp"
],
"env": {
"DB_SERVER": "<DB_SERVER>",
"DB_DATABASE": "<DB_DATABASE>",
"DB_USER": "<DB_USER>",
"DB_PASSWORD": "<DB_PASSWORD>",
"DB_PORT": "<DB_PORT>",
"DB_TRUST_SERVER_CERTIFICATE": "<DB_TRUST_SERVER_CERTIFICATE>"
}
}
}
}
起動コマンドnpx -y mssql-mcp
設定が必要な環境変数
DB_SERVER
DB_DATABASE
DB_USER
DB_PASSWORDシークレット
DB_PORT
DB_TRUST_SERVER_CERTIFICATE

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmssql-mcp

ツール

14

掲載時のツール一覧 · 3 週間前に更新

このツールにパラメーターはありません。

詳細

MS SQL Server MCP Server v3.0.0

🚀 Microsoft SQL Server 用のModel Context Protocol(MCP)サーバーです。Claude Desktop、Cursor、Windsurf、VS Code と互換性があります。

CI npm version License: MIT

標準への準拠

  • プロトコルの対象:MCP draft/latest spec
  • トランスポート仕様:Transports
  • セキュリティ:Security best practices
  • SDK:@modelcontextprotocol/server / @modelcontextprotocol/client / @modelcontextprotocol/node v2(2.0.0)。2026-07-28 MCP spec を対象としています
  • Node.js >= 20 が必要です

🚀 クイックスタート

1. インストール
npm install -g mssql-mcp
2. IDE の設定

Claude Desktop(claude_desktop_config.json):

{
  "mcpServers": {
    "mssql": {
      "command": "npx",
      "args": ["-y", "mssql-mcp@latest"],
      "env": {
        "DB_SERVER": "your-server.com",
        "DB_DATABASE": "your-database",
        "DB_USER": "your-username",
        "DB_PASSWORD": "your-password",
        "DB_ENCRYPT": "true",
        "DB_TRUST_SERVER_CERTIFICATE": "true"
      }
    }
  }
}

Cursor/Windsurf/VS Code(.vscode/mcp.json):

{
  "servers": {
    "mssql": {
      "command": "npx",
      "args": ["-y", "mssql-mcp@latest"],
      "env": {
        "DB_SERVER": "your-server.com",
        "DB_DATABASE": "your-database",
        "DB_USER": "your-username",
        "DB_PASSWORD": "your-password",
        "DB_ENCRYPT": "true",
        "DB_TRUST_SERVER_CERTIFICATE": "true"
      }
    }
  }
}

HTTP トランスポート(リモート/ホスト環境):

{
  "servers": {
    "mssql": {
      "type": "http",
      "url": "http://127.0.0.1:3001",
      "env": {}
    }
  }
}

実際のデータベース認証情報に置き換えてください。認証情報はサーバー環境からのみ読み込まれ、ツールのパラメーターとして渡されることはありません。

��️ ツール一覧

主要ツール(こちらを使用してください)
ツール読み取り専用説明
mssql_connect_databaseいいえ環境変数を使用して接続します。冪等です。
mssql_disconnect_databaseいいえ接続を閉じます。冪等です。
mssql_connection_status✅接続状態とプールのメトリクス
mssql_run_sql_query⚠️ いいえ任意の SQL を実行します。データを変更する可能性があります。
mssql_list_schema_objects✅ページネーションを使用してテーブル/ビュー/プロシージャ/関数を一覧表示します
mssql_describe_table_columns✅テーブルの列定義
mssql_read_table_rows✅射影と安全な WHERE 条件を使用したページネーション対応の行データ
mssql_execute_stored_procedure⚠️ いいえストアドプロシージャを実行します
mssql_list_databases✅インスタンス上のすべてのデータベースを一覧表示します

すべてのデータツールは response_format パラメーター("json" | "markdown"、既定値は "json")を受け付けます。人が読みやすい表形式の出力を得るには、"markdown" を使用してください。

非推奨のエイリアス(後方互換性のため引き続き登録されています)

これらは、サーバーが実際に登録する唯一のエイリアスツール名です(src/tools/*.ts)。 置き換え後のツールと同じように動作しますが、新しい連携ではドキュメントに記載されていません。 上記の主要ツール名を使用してください。

古い名前代わりに使用
mssql_execute_querymssql_run_sql_query
mssql_get_schemamssql_list_schema_objects
mssql_describe_tablemssql_describe_table_columns
mssql_get_table_datamssql_read_table_rows
mssql_execute_proceduremssql_execute_stored_procedure

🚌 トランスポートモード

モード使用する場面
stdio(既定)ローカル IDE との連携(Claude Desktop、Cursor、VS Code)
httpリモート/ホスト環境へのデプロイ、MCP Inspector を使用したテスト
# stdio (default)
node dist/src/index.js

# HTTP on 127.0.0.1:3001
MCP_TRANSPORT=http node dist/src/index.js

# Custom HTTP host/port
MCP_TRANSPORT=http MCP_HOST=0.0.0.0 MCP_PORT=8080 node dist/src/index.js

🔧 環境変数

データベース接続
変数必須既定値説明
DB_SERVER✅—SQL Server のホスト名または IP
DB_DATABASE❌—データベース名
DB_USER❌—ログインユーザー名
DB_PASSWORD❌—ログインパスワード
DB_PORT❌1433TCP ポート
DB_ENCRYPT❌trueTLS を有効にします(Azure SQL では必須)
DB_TRUST_SERVER_CERTIFICATE❌false自己署名証明書を信頼します
DB_CONNECTION_TIMEOUT❌30000接続タイムアウト(ミリ秒)
DB_REQUEST_TIMEOUT❌30000クエリタイムアウト(ミリ秒)
トランスポート
変数デフォルト説明
MCP_TRANSPORTstdiostdio または http
MCP_HOST127.0.0.1HTTP バインドアドレス
MCP_PORT3001HTTP ポート

🔒 セキュリティモデル

  • 認証情報パラメーターなし:すべての接続設定は環境変数からのみ取得されます。ツールの入力で接続設定を上書きすることはできません。
  • 識別子の検証:スキーマ名、テーブル名、プロシージャ名は、SQL に埋め込む前に安全な識別子パターンと照合して検証されます。
  • パラメーター化クエリ:ユーザー指定の値(WHERE 句の値、列の値)はすべて、名前付きパラメーター @paramName として渡す必要があります。クエリ文字列に直接埋め込まないでください。
  • Origin と Host の検証:HTTP トランスポートは、Origin ヘッダーと Host ヘッダーの両方を許可リスト(デフォルトでは localhost、[::1]、および設定されたバインドホスト)と照合して検証し、DNS リバインディングを防ぎます。
  • SQL リスクのラベル付け:run_sql_query と execute_stored_procedure は、読み取り専用ではなくオープンワールドであることが明示されています。
⚠️ SQL のリスクに関する注意

run_sql_query は、DDL や DML を含む任意の SQL を受け付けます。リスクを最小限に抑えるには、次の点に注意してください。

  • 最小権限の SQL ログインを使用します(可能な場合は SELECT のみ)。
  • sysadmin または sa アカウントでサーバーを実行しないでください。
  • サーバーがアクセスできる範囲を制限するため、ネットワークファイアウォールルールの設定を検討してください。

📄 ページネーション

すべてのリストツールは pagination オブジェクトを返します。

{
  "count": 20,
  "limit": 20,
  "offset": 0,
  "has_more": true,
  "next_offset": 20,
  "total_count": 150
}

デフォルトのページサイズ:20 行。最大:200 行。

シリアライズされたペイロードが 100KB を超えた場合も結果は切り捨てられ、削除された行数を示す truncation_message が付加されます。

🏗️ アーキテクチャ

src/
  index.ts          ← bootstrap (env, transport selection)
  server.ts         ← createServer() factory
  constants.ts      ← limits, defaults, protocol strings
  config.ts         ← env parsing
  types.ts          ← shared TypeScript interfaces
  db/
    connection.ts   ← connection pool singleton
    validators.ts   ← SQL identifier validation
    query-builders.ts ← safe parameterized query construction
  tools/            ← one file per tool group
  resources/        ← MCP resource handlers
  transports/       ← stdio and HTTP transports
  utils/
    errors.ts       ← error normalization helpers
    format.ts       ← JSON formatting, payload truncation
    markdown.ts     ← markdown table/list rendering helpers
    pagination.ts   ← pagination metadata helpers

🧪 Inspector のスモークテスト

npx @modelcontextprotocol/inspector

期待される結果:

  • stdio サーバーが接続される
  • すべてのツールを含むツール一覧が表示される
  • 接続がなくても mssql_connection_status が JSON を返す
  • 環境変数が設定されている場合、mssql_connect_database が動作する

🔨 開発

npm install
cp .env.example .env  # fill in your test DB credentials
npm run typecheck     # type check only
npm run build         # compile TypeScript
npm test              # run unit tests
npm run ci            # typecheck + build + test

ライセンス

MIT © BYMCS

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。