SqlAugur について
SqlAugurは、読み取り専用の制約下でSQL Serverデータベースを照会するAIアシスタント向けMCPサーバーです。MicrosoftのT-SQLパーサーでクエリを検証し、データベース探索、レート制限、任意のDBA診断機能を組み合わせます。
主な機能
- 01読み取り専用のSELECTとCTEクエリ
- 02Microsoft T-SQLパーサーによるAST検証
- 03複数サーバーへの名前付き接続
- 04スキーマ探索とER図生成
- 05クエリプランと任意のDBA診断
- 06レート制限と同時実行制御
活用シーン
- 01データベースの内容に関する質問への回答
- 02テーブル関係とスキーマの確認
- 03クエリ実行プランの調査
- 04DBAツールによるSQL Serverの状態確認
MCP 対応
SqlAugurはMCPクライアントにSQL Serverのクエリ、スキーマ、診断ツールを提供します。stdioで通信し、ツールセットの静的またはオンデマンドな検出に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SqlAugur
AI アシスタントに SQL Server データベースへの安全な読み取り専用アクセスを提供する MCP サーバーです。すべてのクエリは正規表現ではなく、Microsoft 公式の T-SQL パーサーを使って完全な AST に解析されるため、コメントインジェクション、文字列リテラルを悪用した細工、エンコーディングによる回避を構文レベルで阻止します。
┌──────────────┐ ┌───────────────────────────────────────────┐ ┌──────────────┐
│ │ stdio │ SqlAugur │ │ │
│ AI Client │◄────────►│ │───────►│ SQL Server │
│ │ │ ┌────────────┐ ┌──────────────────────┐ │ │ │
└──────────────┘ │ │ Query │ │ Schema / Diagram / │ │ └──────────────┘
│ │ Validator │ │ DBA Services │ │
│ └────────────┘ └──────────────────────┘ │
│ ┌────────────────────────────────────┐ │
│ │ Rate Limiter │ │
│ └────────────────────────────────────┘ │
└───────────────────────────────────────────┘
クイックスタート
すべてのインストール方法で、次の順序に従ってください。
- SqlAugur をインストールする
appsettings.jsonを正しい場所に保存する- MCP クライアントの設定に SqlAugur を追加する
- アシスタントに
list_serversを呼び出すよう依頼して確認する
具体的なコマンドとファイルパスについては、インストールから始めてください。
このアプローチを採用する理由
-
AST レベルのクエリ検証 — 多くの MCP データベースサーバーは、キーワードのブロックのみを行うか、まったく検証を行いません。このプロジェクトでは、Microsoft 公式の
TSql180Parserを使ってすべてのクエリを完全な構文木に解析します。コメントインジェクション、文字列リテラルを悪用した細工、エンコーディングによる回避を、脆弱な正規表現パターンではなく構文レベルで阻止します。 -
レート制限 — トークンバケット方式のスループット制限と同時実行制御により、AI のクエリループが暴走して本番環境の SQL Server に過剰な負荷をかけるのを防ぎます。この機能を提供する MCP データベースサーバーは他にありません。
-
DBA 診断ツール — First Responder Kit、DarlingData、sp_WhoIsActive の統合サポートと、書き込み操作を防ぐパラメーターのブロック機能を備えています。これはまったく新しい MCP 機能カテゴリです。
-
レスポンスサイズの最適化 — DBA ツールは冗長な列(XML クエリプラン、デッドロックグラフ、メトリクスの内訳)を除外し、既定で長い文字列を切り詰めるため、レスポンスサイズを 90~99% 削減できます。必要に応じて
verboseとincludeQueryPlansパラメーターを使うと、切り詰められていない完全な出力を取得できます。 -
段階的な検出 — 最大 31 個のツールをツールセットに整理し、必要に応じて読み込みます。最初に公開されるのはコアツール 6 個のみで、AI のコンテキストウィンドウを小さく保ち、トークン使用量を削減します。必要に応じて追加のツールセットを検出して有効化できます。
機能
セキュリティ
- 設計上読み取り専用 — SELECT クエリと CTE クエリのみ許可
- ScriptDom を使った AST ベースのクエリ検証(正規表現ではありません)
- 書き込みを防ぐため、すべての診断用ストアドプロシージャのパラメーターをブロック
- 同時実行数とスループットのレート制限
データベースツール
- 複数サーバー対応 — 複数の SQL Server インスタンスへの名前付き接続
- スキーマ概要 — PK、FK、制約、既定値を含む簡潔な Markdown スキーママップ
- テーブルのドキュメント — 列、インデックス、外部キー、制約の Markdown 説明
- ER 図の生成 — スマートなカーディナリティ検出による PlantUML および Mermaid の図
- スキーマの探索 — プログラム可能なオブジェクト、ビュー定義、拡張プロパティ、依存関係グラフの一覧表示
- クエリプランの分析 — 推定または実際の XML 実行プラン
- DBA 診断 — First Responder Kit、DarlingData、sp_WhoIsActive とのオプションの統合と、自動レスポンスサイズ最適化
- 段階的な検出 — 動的ツールセットモードでは、ツールを必要に応じて公開することで、初期コンテキストウィンドウの使用量を削減
インストール
どの方法でも同じ MCP サーバーがインストールされます。インストール、設定の保存、クライアントへの接続、確認の順に進めてください。
NuGet グローバルツール(推奨)
1. インストール(前提条件:.NET 10.0 ランタイム)
dotnet tool install -g SqlAugur
2. 設定ファイルを保存
# Linux/macOS
mkdir -p ~/.config/sqlaugur
# Edit ~/.config/sqlaugur/appsettings.json with your server connections
# Windows (PowerShell)
mkdir "$env:APPDATA\sqlaugur" -Force
# Edit %APPDATA%\sqlaugur\appsettings.json with your server connections
その場所に保存する appsettings.json の例:
{
"SqlAugur": {
"Servers": {
"production": {
"ConnectionString": "Server=myserver;Database=master;Integrated Security=True;TrustServerCertificate=False;Encrypt=True;"
}
}
}
}
3. MCP クライアントに追加
{
"mcpServers": {
"sqlaugur": {
"command": "sqlaugur"
}
}
}
更新するには:dotnet tool update -g SqlAugur
Docker / Podman
1. SqlAugur コンテナーを実行
# Volume-mount a config file
docker run -i --rm \
-v /path/to/appsettings.json:/app/appsettings.json:ro,Z \
ghcr.io/mbentham/sqlaugur:latest
# Or use environment variables (no config file needed)
docker run -i --rm \
-e SqlAugur__Servers__production__ConnectionString="Server=host.docker.internal;Database=master;..." \
ghcr.io/mbentham/sqlaugur:latest
注: ホストマシン上の SQL Server に接続するには、
host.docker.internal(Docker Desktop)または--network=host(Linux)を使用してください。dockerをpodmanに置き換えてください。コマンドはすべて同じです。ボリュームマウントの:Zフラグは、SELinux が有効なシステム(Fedora、RHEL)で必要です。macOS/Windows の Docker Desktop ユーザーは省略できます。
設定ファイルをマウントする場合は、/path/to/appsettings.json として保存し、/app/appsettings.json にマウントしてください。
2. MCP クライアントに追加
{
"mcpServers": {
"sqlaugur": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-v", "/path/to/appsettings.json:/app/appsettings.json:ro,Z",
"ghcr.io/mbentham/sqlaugur:latest"]
}
}
}
Docker Compose
services:
sqlaugur:
image: ghcr.io/mbentham/sqlaugur:latest
stdin_open: true
volumes:
- ./appsettings.json:/app/appsettings.json:ro,Z
MCP クライアントの設定:
{
"mcpServers": {
"sqlaugur": {
"command": "docker",
"args": ["compose", "run", "-i", "--rm", "sqlaugur"]
}
}
}
ソースからビルド
1. ビルド(前提条件:.NET 10.0 SDK)
git clone [email protected]:mbentham/SqlAugur.git
cd SqlAugur
dotnet publish SqlAugur -c Release -o SqlAugur/publish
2. 設定ファイルを保存
# Linux/macOS
cp SqlAugur/appsettings.example.json SqlAugur/publish/appsettings.json
# Edit SqlAugur/publish/appsettings.json with your server connections
# Windows (PowerShell)
Copy-Item SqlAugur\appsettings.example.json SqlAugur\publish\appsettings.json
# Edit SqlAugur\publish\appsettings.json with your server connections
3. MCP クライアントに追加
{
"mcpServers": {
"sqlaugur": {
"command": "dotnet",
"args": ["/absolute/path/to/SqlAugur/publish/SqlAugur.dll"]
}
}
}
MCP 接続を確認する(LLM 優先)
MCP クライアントを再起動した後、アシスタントに次のように依頼してください。
Call list_serversCall list_databases for server "production"
期待される結果:
list_serversが設定済みのサーバー名(例:production)を返すlist_databasesが接続エラーや認証エラーではなく、データベースの JSON 配列を返す
確認に失敗した場合:
- MCP 設定で想定されるコマンド(
sqlaugur、docker run ...、またはdotnet /path/to/SqlAugur.dll)が実行されていることを確認してください appsettings.jsonが、インストール方法に応じた場所に保存されていることを確認してください:- ローカルツール:
~/.config/sqlaugur/appsettings.json(Linux/macOS)または%APPDATA%\sqlaugur\appsettings.json(Windows) - コンテナー:
/app/appsettings.jsonにマウント - ソースからのビルド:公開済み DLL の隣(
SqlAugur/publish/appsettings.json)
- ローカルツール:
- ツール呼び出しで、設定済みのサーバーキー(例:
production)を使用していることを確認してください - 接続文字列の SQL 接続と認証を確認してください
構成
サーバーは複数のソースから構成を読み込みます。優先順位の高いソースが、低いソースの設定を上書きします。
- コマンドライン引数
- 環境変数 — セクションの区切り文字として
__を使用します(例:SqlAugur__Servers__production__ConnectionString=...) - 現在の作業ディレクトリ — コマンドを実行したディレクトリ内の
appsettings.json - ユーザー構成ディレクトリ — Linux では
~/.config/sqlaugur/appsettings.json、Windows では%APPDATA%\sqlaugur\appsettings.json - Azure Key Vault —
AzureKeyVaultUriが設定されている場合(下記参照) - アプリケーションディレクトリ — DLL と同じ場所にある
appsettings.json
構成例(Windows 認証 — 推奨):
{
"SqlAugur": {
"Servers": {
"production": {
"ConnectionString": "Server=myserver;Database=master;Integrated Security=True;TrustServerCertificate=False;Encrypt=True;"
}
},
"MaxRows": 1000,
"CommandTimeoutSeconds": 30,
"MaxConcurrentQueries": 5,
"MaxQueriesPerMinute": 60,
"EnableFirstResponderKit": false,
"EnableDarlingData": false,
"EnableWhoIsActive": false,
"EnableDynamicToolsets": false
}
}
| オプション | デフォルト | 説明 |
|---|---|---|
Servers | — | 名前付き SQL Server 接続(名前 → 接続文字列)。接続は SqlAugur として SQL Server に識別されます(program_name、拡張イベントの client_app_name)。ただし、接続文字列で独自の Application Name が設定されている場合を除きます。 |
MaxRows | 1000 | インラインまたは結果ファイルで返される、クエリごとの最大行数 |
ResultFileThresholdRows | 500 | この行数(または約 40,000 文字)を超える read_data の結果は、サイズの大きすぎる stdio メッセージを避けるため、インラインで返す代わりに CSV ファイルへ書き込まれます。0 にすると無効になります。 |
ResultsDirectory | ユーザーのローカルアプリケーションデータフォルダー内の sqlaugur/results(Windows では %LOCALAPPDATA%\sqlaugur\results) | 結果ファイルの書き込み先です。絶対パスである必要があります。 |
ResultFileRetentionDays | 7 | 起動時に、この日数より古い結果ファイルが削除されます |
CommandTimeoutSeconds | 30 | すべてのクエリとプロシージャに適用される SQL コマンドのタイムアウト |
MaxConcurrentQueries | 5 | 同時に実行できる SQL クエリの最大数 |
MaxQueriesPerMinute | 60 | 1 分あたりのクエリの最大数(トークンバケット方式のレート制限) |
EnableFirstResponderKit | false | First Responder Kit の診断ツール(sp_Blitz、sp_BlitzFirst、sp_BlitzCache、sp_BlitzIndex、sp_BlitzWho、sp_BlitzLock、sp_BlitzPlanCompare)を有効にします |
EnableDarlingData | false | DarlingData の診断ツール(sp_PressureDetector、sp_QuickieStore、sp_QuickieCache、sp_HealthParser、sp_LogHunter、sp_HumanEventsBlockViewer、sp_IndexCleanup、sp_QueryReproBuilder)を有効にします |
EnableWhoIsActive | false | sp_WhoIsActive のセッション監視を有効にします |
EnableDynamicToolsets | false | 段階的なツール検出を有効にします。DBA ツールは起動時ではなく、3 つのメタツールを介して必要に応じて読み込まれます。初期コンテキストウィンドウの使用量を削減できます。どのツールセットを利用できるかは、引き続き Enable* フラグで制御されます。 |
AzureKeyVaultUri | — | Azure Key Vault の URI(例:https://myvault.vault.azure.net/)。設定すると、DefaultAzureCredential を使用して、Key Vault のシークレットが構成ソースとして追加されます。Key Vault のシークレット名では、セクションの区切り文字として -- を使用します(例:SqlAugur--Servers--prod--ConnectionString という名前のシークレットは SqlAugur:Servers:prod:ConnectionString に対応します)。 |
セキュリティに関する注意: 認証情報を誤ってコミットしないよう、
appsettings.jsonは gitignore の対象です。Windows 認証、Azure Managed Identity、安全な認証情報の保存方法など、推奨される認証方法については SECURITY.md を参照してください。
ツール
サーバーには、ツールセットに分類された 31 個のツールがあります。6 個のコアツールは常に利用できます。追加のツールセットは、起動時(静的モード)または必要に応じて(動的モード)読み込まれます。
コアツール
| ツール | 説明 |
|---|---|
list_servers | appsettings.json に設定されている、利用可能な SQL Server インスタンスを一覧表示します。 |
list_databases | 指定したサーバー上のすべてのデータベースについて、名前、ID、状態、作成日を一覧表示します。 |
read_data | 読み取り専用の SQL SELECT クエリを実行します。SELECT と WITH(CTE)クエリのみ許可されます。小さな結果は JSON として返され、大きな結果は CSV ファイルに出力されます。その場合、ファイルパス、行数、列、10 行分のプレビューが返されます。常にファイルを取得するには toFile: true を渡してください。 |
get_query_plan | SELECT クエリの推定または実際の XML 実行プランを返します。 |
get_schema_overview | テーブル、列、PK、FK、一意制約/チェック制約、デフォルト値を簡潔にまとめた Markdown 形式のスキーマ概要です。compact モード、スキーマおよびテーブルによるフィルタリングに対応しています。 |
describe_table | 列、データ型、NULL 許容性、デフォルト値、ID、計算式、インデックス、FK、制約を含む、包括的な Markdown 形式のテーブルメタデータです。 |
スキーマの調査(4 ツール)
| ツール | 説明 |
|---|---|
list_programmable_objects | ビュー、ストアドプロシージャ、関数、トリガーを一覧表示します。種類とスキーマでフィルタリングできます。 |
get_object_definition | プログラム可能オブジェクトのソース定義(CREATE 文)を返します。 |
get_extended_properties | テーブル、列、その他のオブジェクトに設定された拡張プロパティ(説明、メタデータ)を読み取ります。 |
get_object_dependencies | オブジェクトが参照する対象と、そのオブジェクトを参照する対象を、上流および下流の依存関係グラフで表示します。 |
図(2 ツール)
| ツール | 説明 |
|---|---|
get_plantuml_diagram | テーブル、列、PK、FK 関係を含む PlantUML ER 図を生成し、.puml ファイルに保存します。compact モード、スキーマ/テーブルによるフィルタリング、設定可能なテーブル上限(最大 200)に対応しています。 |
get_mermaid_diagram | テーブル、列、PK、FK 関係を含む Mermaid ER 図を生成し、.mmd ファイルに保存します。compact モード、スキーマ/テーブルによるフィルタリング、設定可能なテーブル上限(最大 200)に対応しています。 |
各ツールキットは設定フラグで個別に有効化され、対象の SQL Server に対応するストアドプロシージャがインストールされている必要があります。
すべての DBA ツールでは、デフォルトで応答サイズが最適化されます。AI のコンテキストウィンドウ内に応答を収めるため、XML クエリプランの列は除外され、長い文字列値は切り詰められます。すべてのツールで、次のオプションのパラメーターを使用できます。
| パラメーター | 説明 |
|---|---|
verbose | 切り詰めを行わず、すべての列を返します。 |
includeQueryPlans | 出力に XML 実行プランの列を含めます。 |
maxRows | 結果セットごとに返す最大行数です。可変長の出力を持つツールで使用できます:BlitzIndex、BlitzLock、HealthParser、LogHunter(デフォルトは 200)、IndexCleanup、QueryReproBuilder。 |
一部のツールには追加のパラメーターがあります:includeXmlReports(BlitzLock、HealthParser、HumanEventsBlockViewer)、compact(sp_WhoIsActive)、verboseMetrics(QuickieStore)。
First Responder Kit(7 個のツール)— EnableFirstResponderKit: true が必要です
インストール元:github.com/BrentOzarULTD/SQL-Server-First-Responder-Kit
| ツール | 説明 |
|---|---|
sp_blitz | SQL Server 全体のヘルスチェック — パフォーマンス、構成、セキュリティに関する優先度付きの検出結果を提示します。 |
sp_blitz_first | リアルタイムのパフォーマンス診断 — 一定間隔で DMV をサンプリングし、待機、ファイルのレイテンシ、パフォーマンスモニターのカウンターを確認します。 |
sp_blitz_cache | プランキャッシュ分析 — CPU、読み取り、実行時間、実行回数、メモリ許可量別に上位のクエリを表示します。 |
sp_blitz_index | インデックス分析 — 使用状況のパターンとともに、欠落、未使用、重複しているインデックスを表示します。 |
sp_blitz_who | アクティブなクエリのモニター — 実行中の処理、ブロッキング情報、tempdb の使用状況、クエリプランを表示します。 |
sp_blitz_lock | system_health 拡張イベントセッションからデッドロックを分析します。 |
sp_blitz_plan_compare | サーバー間でクエリプランを比較します — リンクサーバーを使わずに、あるサーバーでプランのスナップショットを取得し、2 台目のサーバーにキャッシュされたプランと比較します。メインブランチにマージされるまでは、demon_hunters ブランチが必要です。 |
DarlingData(8 個のツール)— EnableDarlingData: true が必要です
インストール元:github.com/erikdarling/DarlingData
| ツール | 説明 |
|---|---|
sp_pressure_detector | CPU とメモリの負荷を診断します — リソースのボトルネック、高 CPU 使用率のクエリ、メモリ許可量、ディスクのレイテンシを確認します。 |
sp_quickie_store | Query Store 分析 — リソース消費量が多いクエリ、プランのリグレッション、待機統計を表示します。 |
sp_quickie_cache | プランキャッシュ分析 — dm_exec_*_stats DMV を使用し、影響度スコア順に影響の大きいクエリを表示します(sp_quickie_store に対応するプランキャッシュ分析です)。 |
sp_health_parser | system_health 拡張イベントセッションを解析し、過去の待機、ディスクのレイテンシ、CPU、メモリ、ロックを確認します。 |
sp_log_hunter | SQL Server のエラーログからエラー、警告、カスタムメッセージを検索します。 |
sp_human_events_block_viewer | sp_HumanEvents セッションのブロッキングイベントを分析します — ブロッキングチェーン、ロックの詳細、待機を確認します。 |
sp_index_cleanup | 削除候補となる未使用および重複インデックスを検出します。 |
sp_query_repro_builder | パラメーター値を使用して、Query Store のクエリを再現するスクリプトを生成します。 |
sp_WhoIsActive(1 個のツール)— EnableWhoIsActive: true が必要です
インストール元:whoisactive.com
| ツール | 説明 |
|---|---|
sp_whoisactive | アクティブなセッションとクエリを監視します — 待機情報、ブロッキングの詳細、tempdb の使用状況、リソース消費量を確認します。 |
EnableDynamicToolsets が true の場合、起動時に読み込まれるのはコアツールのみです。3 つのメタツールを使うと、AI は必要に応じて追加のツールセットを検出して有効にできるため、初期コンテキストウィンドウの使用量を削減できます。
| ツール | 説明 |
|---|---|
list_toolsets | 利用可能なツールセットを、ステータス(利用可能、有効、未設定)およびツール数とともに一覧表示します。 |
get_toolset_tools | 特定のツールセットを有効にする前に、そのツールとパラメーターの詳細情報を返します。 |
enable_toolset | ツールセットを有効にし、そのツールを利用可能にします。管理者が対応する Enable* 設定フラグでツールセットを有効にしている場合にのみ機能します。 |
使用例:
- AI が
list_toolsetsを呼び出す —first_responder_kitが「利用可能」(設定済みだが未有効)であることを確認します - AI が
get_toolset_tools("first_responder_kit")を呼び出す — 7 つのツールとそのパラメーターを確認します - AI が
enable_toolset("first_responder_kit")を呼び出す — 7 つのツールが登録され、使用可能になります - AI が
sp_blitzを呼び出す — 通常どおりヘルスチェックを実行します
静的モード(EnableDynamicToolsets: false)では、有効なすべてのツールセットが起動時に読み込まれ、検出ツールは登録されません。Schema Exploration と Diagrams のツールセットは、モードにかかわらず常に読み込まれます。
既知の制限事項: 段階的な検出は、新しいツールが登録されたことをクライアントに通知する MCP の
notifications/tools/list_changed通知に依存しています。Claude Code は現在この通知を処理しないため(anthropics/claude-code#4118)、動的に有効化されたツールセットは表示されません。Claude Code を使用する場合は、静的モード(EnableDynamicToolsets: false)を使用してください。
セキュリティ
クエリの検証
すべてのクエリは、Microsoft の公式 TSql180Parser を使用して抽象構文木(AST)に解析され、以下のルールを満たす必要があります。
- 単一のステートメントのみ — 複数のステートメントは拒否されます
- SELECT のみ — INSERT、UPDATE、DELETE、DROP、EXEC、CREATE、ALTER、およびその他すべてのステートメントタイプはブロックされます
- SELECT INTO は不可 — SELECT によるテーブル作成を防ぎます
- 外部データへのアクセスは不可 — OPENROWSET(BULK、Cosmos DB、内部用を含むすべてのバリエーション)、OPENQUERY、OPENDATASOURCE、OPENXML はブロックされます
- リンクサーバーは不可 — 4 部構成の名前参照は拒否されます
- MAXRECURSION ヒントは不可 — デフォルトの再帰制限が上書きされるのを防ぎます
- データベースをまたぐクエリは許可されます — 3 部構成の名前は設計上使用できます。セキュリティ境界はデータベースではなくサーバーです。単一のデータベースに制限するには、ログインの権限を制限してください。
検証は解析済みの AST に対して行われるため、コメント内のキーワード、文字列リテラル、入れ子になったブロックコメント、エンコードのトリックなど、文字列ベースの方法では対処できないエッジケースも正しく処理できます。
パラメーターのブロック
診断用ストアドプロシージャは、書き込みを防ぐブロック対象パラメーターと、許可リストに登録されたプロシージャ名を使用して実行されます。
- First Responder Kit — すべての
@Output*パラメーターをブロックします(サーバーテーブルへの結果の書き込みを防ぎます) - DarlingData — ログおよび出力パラメーターをブロックします(テーブルの作成とデータの保持を防ぎます)
- sp_WhoIsActive —
@destination_table、@return_schema、@schema、@helpをブロックします
レート制限
すべてのツール実行には、同時実行数制限(MaxConcurrentQueries、デフォルトは 5)とスループット制限(MaxQueriesPerMinute、デフォルトは 60)が適用されます。上限を超えたリクエストは、再試行を促すメッセージとともに拒否されます。
接続のセキュリティ
構成ファイルへの認証情報の保存を避けるため、可能な場合は Windows 認証または Azure Managed Identity を使用してください。SQL 認証が必要な場合は、環境変数によるオーバーライドを使って実行時に認証情報を渡してください。認証情報ストアや接続文字列の暗号化など、詳しいガイダンスについては SECURITY.md を参照してください。
既知のリスク
- このプロジェクトは、公式の Microsoft MCP C# SDK(
ModelContextProtocolNuGet パッケージ、バージョン 1.3.0)に依存しています。MCP フレームワークがすべてのプロトコル I/O を処理するため、フレームワークに脆弱性があると、このアプリケーションのセキュリティ境界に直接影響します。パッケージの更新を監視し、新しいバージョンがリリースされたらアップグレードしてください。 - SQL Server クエリから返されるデータには、AI を標的とする悪意のあるプロンプトインジェクションが含まれる可能性があります。これはすべての AI 利用に伴うリスクであり、このプロジェクトで軽減することはできません。AI セキュリティのベストプラクティスに従い、信頼できるデータソースにのみ接続してください。
貢献
貢献を歓迎します。アーキテクチャの詳細、開発環境のセットアップ、テスト手順、新しいツールの追加に関するガイドラインについては、CONTRIBUTING.md をご覧ください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。