mcpField
M
mssql

mssql

github.com/sanjay3290データ・データベース447530 回インストール7 週間前に更新
リポジトリ

mssql について

mssql は、設定済みの Microsoft SQL Server データベースを読み取り専用で照会するスキルです。データを調査・取得するユーザー向けで、クエリを検証し、テーブルやスキーマも表示できます。

主な機能

  1. 01設定済みデータベースの一覧表示
  2. 02行数制限付きの読み取り専用クエリ
  3. 03テーブルとデータベーススキーマの確認
  4. 04クエリ種別の検証と複数文の拒否
  5. 05TLS とクエリタイムアウトへの対応

活用シーン

  1. 01データベースのユーザーや注文データの確認
  2. 02分析指標やログ記録の照会
  3. 03クエリ前のテーブルとスキーマの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sanjay3290/ai-skills --skill mssql

インストール後、Claude Code で/mssqlを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
connections.example.json
README.md
requirements.txt
scripts/
query.py

詳細

MSSQL 読み取り専用クエリスキル

設定済みの Microsoft SQL Server データベースに対して、安全な読み取り専用クエリを実行します。

要件

  • Python 3.8+
  • pymssql:pip install -r requirements.txt

セットアップ

スキルのディレクトリまたは ~/.config/claude/mssql-connections.json に connections.json を作成します。

セキュリティ:認証情報が含まれるため、ファイルのアクセス権を 600 に設定してください。

chmod 600 connections.json
{
  "databases": [
    {
      "name": "production",
      "description": "Main app database - users, orders, transactions",
      "host": "db.example.com",
      "port": 1433,
      "database": "app_prod",
      "user": "readonly_user",
      "password": "your-password",
      "encrypt": true,
      "tds_version": "7.3"
    }
  ]
}
設定フィールド
フィールド必須説明
nameはいデータベースの識別子(大文字と小文字を区別しません)
descriptionはいデータベースに含まれるデータ(自動選択に使用)
hostはいデータベースのホスト名
portいいえポート番号(デフォルト:1433)
databaseはいデータベース名
userはいユーザー名
passwordはいパスワード
encryptいいえTLS 暗号化を有効にします(デフォルト:false)
tds_versionいいえTDS プロトコルのバージョン:7.0、7.1、7.2、7.3、7.4(デフォルト:自動)

使用方法

設定済みデータベースの一覧表示
python3 scripts/query.py --list
データベースへのクエリ
python3 scripts/query.py --db production --query "SELECT TOP 10 * FROM users"
テーブルの一覧表示
python3 scripts/query.py --db production --tables
スキーマの表示
python3 scripts/query.py --db production --schema
結果数の制限
python3 scripts/query.py --db production --query "SELECT * FROM orders" --limit 100

注:MSSQL では LIMIT の代わりに TOP N を使用します。--limit フラグは SELECT の後に TOP N を自動で挿入します。

データベースの選択

ユーザーの意図をデータベースの description に照らし合わせます。

ユーザーの質問説明に含まれる語句を確認
ユーザー、アカウントusers、accounts、customers
注文、売上orders、transactions、sales
分析、指標analytics、metrics、reports
ログ、イベントlogs、events、audit

不明な場合は --list を実行し、使用するデータベースをユーザーに確認します。

安全機能

  • 読み取り専用の強制:クエリの検証により書き込み操作をブロックします(サーバー側で保護するには db_datareader ロールのユーザーを使用してください)
  • クエリの検証:SELECT、SHOW、EXPLAIN、WITH、SP_HELP クエリのみ許可されます
  • 単一ステートメント:複数のステートメントを含むクエリは拒否されます
  • TLS サポート:安全な接続のために暗号化を設定できます
  • クエリタイムアウト:pymssql によって 30 秒のタイムアウトが適用されます
  • 接続タイムアウト:ログインタイムアウトは 10 秒です
  • メモリ保護:メモリ不足を防ぐため、クエリあたりの最大行数は 10,000 行です
  • 列幅の上限:読みやすい出力のため、各列の最大幅は 100 文字です
  • 認証情報のサニタイズ:エラーメッセージにパスワードが漏えいしません

トラブルシューティング

エラー解決策
設定ファイルが見つからないスキルのディレクトリに connections.json を作成します
認証に失敗した設定のユーザー名とパスワードを確認します
接続タイムアウトホストとポートを確認し、ファイアウォール/VPN を確認します
TDS バージョンエラー"tds_version": "7.3" または "7.4" を試します
暗号化エラーAzure SQL の場合は "encrypt": true を設定します
アクセス権限の警告chmod 600 connections.json を実行します

終了コード

  • 0:成功
  • 1:エラー(設定ファイルがない、認証失敗、無効なクエリ、データベースエラー)

ワークフロー

  1. --list を実行して、利用可能なデータベースを表示します
  2. ユーザーの意図をデータベースの説明に照らし合わせます
  3. --tables または --schema を実行して、構造を確認します
  4. 適切な --limit を指定してクエリを実行します(自動的に TOP N に変換されます)

コメント