Skip to main content
Glama
kyle66889

mcp-sqlserver

by kyle66889

MCP SQL Server

Microsoft SQL Server用の読み取り専用Model Context Protocol(MCP)サーバー。AIエージェントがSQL Serverデータベースを安全に探索・クエリできるようにします。

クイックスタート

ステップ1:パッケージをインストールする

# Global installation (recommended)
npm install -g @bilims/mcp-sqlserver

# Verify installation
mcp-sqlserver --version

ステップ2:SQL Server接続を設定する

SQL Serverの種類を選択し、以下の設定に従ってください:

Azure SQL

export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="your-database"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="false"

オンプレミスのSQL Server

export SQLSERVER_HOST="your-sql-server.company.com"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="your-database"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="true"  # For self-signed certificates

ローカルのSQL Server Express

export SQLSERVER_HOST="localhost\\SQLEXPRESS"
export SQLSERVER_USER="sa"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="master"
export SQLSERVER_ENCRYPT="false"
export SQLSERVER_TRUST_CERT="true"

ステップ3:接続をテストする

# Test your configuration
mcp-sqlserver --help

# Quick connection test (press Ctrl+C to exit)
mcp-sqlserver

ステップ4:Claude Desktopに追加する

  1. Claude Desktopの設定ファイルを見つける:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

  2. MCPサーバー設定を追加する:

{
  "mcpServers": {
    "sqlserver": {
      "command": "mcp-sqlserver",
      "env": {
        "SQLSERVER_HOST": "your-server.database.windows.net",
        "SQLSERVER_USER": "your-username",
        "SQLSERVER_PASSWORD": "your-password",
        "SQLSERVER_DATABASE": "your-database",
        "SQLSERVER_ENCRYPT": "true",
        "SQLSERVER_TRUST_CERT": "false"
      }
    }
  }
}
  1. Claude Desktopを再起動する

ステップ5:探索を始める!

Claude Desktopで以下のコマンドを試してみてください:

  • "SQL Server接続をテストして"

  • "サーバー上のすべてのデータベースを一覧表示して"

  • "[データベース名]のテーブルを表示して"

  • "Usersテーブルの構造を説明して"

  • "外部キーの関係を表示して"

Related MCP server: SQL Server MCP

機能

  • 🔒 読み取り専用操作:包括的なセキュリティ検証により、SELECTクエリのみ許可

  • 🗄️ スキーマ探索:データベース、テーブル、ビュー、リレーションシップ、メタデータを探索

  • 📊 データ探索:組み込みの制限とタイムアウトを備えた安全なクエリを実行

  • 🔐 エンタープライズ対応:本番環境向けの証明書信頼による暗号化接続

  • 🛡️ セキュリティ最優先:クエリ検証、SQLインジェクション対策、アクセス制御

利用可能なツール

スキーマ探索

  • list_databases - SQL Serverインスタンス上のすべてのデータベースを一覧表示

  • list_tables - データベースまたはスキーマ内のテーブルを一覧表示

  • list_views - データベースまたはスキーマ内のビューを一覧表示

  • describe_table - 列、データ型、制約を含む詳細なテーブルスキーマを取得

リレーションシップ分析

  • get_foreign_keys - テーブルの外部キーリレーションシップを取得

  • get_table_stats - 行数やサイズ情報を含むテーブル統計を取得

データ探索

  • execute_query - セキュリティ検証付きの読み取り専用SELECTクエリを実行

  • get_server_info - SQL Serverのバージョン、エディション、構成の詳細を取得

Claude Desktopでの一般的なコマンド

MCPサーバーを設定したら、以下の自然言語コマンドを試してみてください:

はじめに

"Test the SQL Server connection"
"Show me server information"
"List all databases on this server"
"What tables are in the [database name] database?"

データベース探索

"Describe the structure of the Users table"
"Show me foreign key relationships in this database"
"What are the largest tables by row count?"
"Give me a sample of data from the Orders table"

高度な分析

"Help me understand the relationship between Orders and Customers"
"Show me all lookup tables in this database"
"What columns contain date/time information?"
"Find tables that might contain user authentication data"

カスタムクエリ

"Run this query: SELECT TOP 10 * FROM Products WHERE Price > 100"
"Show me all customers created in the last 30 days"
"What are the different product categories in the database?"

インストール

npm install
npm run build

設定

サーバーは環境変数を使用して設定します:

必須

  • SQLSERVER_USER - SQL Serverのユーザー名

  • SQLSERVER_PASSWORD - SQL Serverのパスワード

オプション

  • SQLSERVER_HOST - サーバーのホスト名(デフォルト:localhost)

  • SQLSERVER_DATABASE - デフォルトのデータベース名

  • SQLSERVER_PORT - ポート番号(デフォルト:1433)

  • SQLSERVER_ENCRYPT - 暗号化を有効にする(デフォルト:true)

  • SQLSERVER_TRUST_CERT - サーバー証明書を信頼する(デフォルト:true)

  • SQLSERVER_CONNECTION_TIMEOUT - 接続タイムアウト(ミリ秒)(デフォルト:30000)

  • SQLSERVER_REQUEST_TIMEOUT - リクエストタイムアウト(ミリ秒)(デフォルト:60000)

  • SQLSERVER_MAX_ROWS - クエリあたりの最大行数(デフォルト:1000)

使用方法

環境変数

export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="your-database"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="true"

サーバーの実行

npm start

インストールオプション

オプション1:グローバルインストール(推奨)

npm install -g @bilims/mcp-sqlserver

オプション2:ローカルインストール

npm install @bilims/mcp-sqlserver
npx mcp-sqlserver

オプション3:npxで実行(インストール不要)

npx @bilims/mcp-sqlserver

統合例

Claude Desktop

Claude Desktopの設定(claude_desktop_config.json)に追加:

{
  "mcpServers": {
    "sqlserver": {
      "command": "mcp-sqlserver",
      "env": {
        "SQLSERVER_HOST": "your-server.database.windows.net",
        "SQLSERVER_USER": "your-username",
        "SQLSERVER_PASSWORD": "your-password",
        "SQLSERVER_DATABASE": "your-database"
      }
    }
  }
}

Claude Code CLI

# Set environment variables
export SQLSERVER_HOST="your-server"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"

# Use with Claude Code
claude mcp add sqlserver mcp-sqlserver

VSCodeとMCP拡張機能

VSCode用のMCP拡張機能をインストールし、サーバー設定を追加します。

セキュリティ機能

クエリ検証

  • SELECT、WITH、SHOW、DESCRIBE、EXPLAINステートメントのみ許可

  • 危険なキーワード(INSERT、UPDATE、DELETE、DROPなど)の包括的なブラックリスト

  • SQLインジェクションパターン検出

  • 自動クエリサニタイズ

接続セキュリティ

  • デフォルトでTLS/SSL暗号化を有効化

  • エンタープライズ環境向けのサーバー証明書信頼オプション

  • タイムアウト制御付き接続プーリング

  • 設定可能なリクエストタイムアウト

結果制限

  • クエリあたりの最大行数制限(設定可能)

  • SELECTクエリへの自動TOP句挿入

  • クエリ実行時間の追跡

  • メモリ使用量の保護

サンプルクエリ

接続後、MCPクライアントを通じて以下のツールを使用できます:

// List all databases
await callTool("list_databases", {});

// List tables in a specific schema
await callTool("list_tables", { schema: "dbo" });

// Get table schema details
await callTool("describe_table", { 
  table_name: "Users", 
  schema: "dbo" 
});

// Execute a read-only query
await callTool("execute_query", { 
  query: "SELECT TOP 10 * FROM Users WHERE active = 1",
  limit: 10
});

// Get foreign key relationships
await callTool("get_foreign_keys", { 
  table_name: "Orders" 
});

開発

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev

# Run linting
npm run lint

# Run tests
npm test

トラブルシューティング

接続の問題

  1. サーバーのホスト名とポートを確認する

  2. 暗号化/証明書の設定がSQL Serverの構成と一致しているか確認する

  3. ユーザーに適切な読み取り権限があることを確認する

  4. まずSQL Server Management Studioで接続をテストする

権限の問題

ユーザーアカウントには最低限以下が必要です:

  • データベースへのCONNECT権限

  • クエリ対象のテーブル/ビューに対するSELECT権限

  • メタデータクエリのためのシステムビューへのアクセス

一般的なSQL Server構成

Azure SQL

export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="false"

自己署名証明書を使用したオンプレミスのSQL Server

export SQLSERVER_HOST="sql-server.company.com"
export SQLSERVER_ENCRYPT="true" 
export SQLSERVER_TRUST_CERT="true"

ライセンス

MIT

貢献

  1. リポジトリをフォークする

  2. フィーチャーブランチを作成する

  3. 変更を加える

  4. 該当する場合はテストを追加する

  5. プルリクエストを送信する

サポート

問題や質問がある場合:

  • 上記のトラブルシューティングセクションを確認する

  • SQL Serverの接続ドキュメントを参照する

  • MCPクライアントの互換性を確認する


シームレスなAI統合のためのModel Context Protocol SDKで構築されています。

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A read-only MCP server for MS SQL Server, written in Python. Lets AI agents query your database safely — no writes, no stored procedures, no shell access.
    1
    -
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that connects AI assistants to Microsoft SQL Server databases, enabling schema exploration and read-only queries safely.
    49
    10 npm
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Read-only SQL Server MCP server enabling safe database queries, table listing, and schema inspection with built-in security protections.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A read-only MCP server for exploring on-premises, multi-instance Microsoft SQL Server estates from AI clients, with read-only enforcement and Windows authentication support.
    Apache 2.0