Microsoft Sentinel MCP サーバー
Microsoft Sentinel用のモデルコンテキストプロトコル(MCP)サーバー。このサーバーは、Microsoft Sentinelインスタンスへの読み取り専用アクセスを可能にし、Azure Sentinel環境における高度なクエリ、インシデント表示、リソース探索などを可能にします。監視のみを目的としたセキュリティ運用と分析のための、モジュール式で拡張可能なプラットフォームを提供します。
⚠️ 重要なセキュリティに関するお知らせ ⚠️
テスト環境専用:このMicrosoft Sentinel MCPサーバーは読み取り専用操作のみをサポートし、テスト環境専用です。本番環境のSentinelインスタンスへの接続は想定されていません。
プライバシーに関する警告:このサーバーを本番環境のMicrosoft Entra ID(Azure AD)またはSentinel環境に接続すると、機密性の高いユーザーおよびディレクトリデータがLLMオペレーターまたはパブリックLLMに公開される可能性があります。本番環境以外のテナントまたはテストテナント、またはMCPサポート付きのプライベートLLMでのみご使用ください。
セキュリティ警告:本番環境のMicrosoft SentinelインスタンスをパブリックLLMに接続すると、プライバシーとセキュリティに重大なリスクが生じます。本番環境のセキュリティ運用には、プライベートでセキュリティ保護された環境のみを使用してください。
Related MCP server: Satellite Tracking MCP Server
✨ 特徴
KQLクエリ実行: KQLクエリを実行して検証し、模擬データでテストする
ログ分析管理: ワークスペース情報、テーブル一覧、スキーマ
セキュリティインシデント: 詳細なインシデント情報を一覧表示および表示する
分析ルール: MITRE の戦術/テクニック別にリスト、表示、分析します
ルールテンプレート: MITREフレームワークによるテンプレートへのアクセスと分析
ハンティングクエリ: リスト、詳細の表示、戦術別の分析
データ コネクタ: コネクタの詳細を一覧表示および表示する
ウォッチリスト: ウォッチリストとそのアイテムを管理する
脅威インテリジェンス: ドメインWHOISとIP位置情報検索
メタデータとソース管理: リポジトリの詳細を一覧表示および表示する
ML分析: ML分析設定にアクセスする
承認: RBAC ロールの割り当てを表示する
Entra ID ユーザーとグループ: Microsoft Entra ID からユーザーとグループの詳細を表示します
🚀 クイックスタート
1. Azure CLIで認証する
MCP サーバーを使用する前に、Microsoft Sentinel ワークスペースにアクセスできるアカウントを使用して Azure に認証する必要があります。
az login2. リポジトリのクローンを作成する
git clone https://github.com/dstreefkerk/ms-sentinel-mcp-server.git
cd ms-sentinel-mcp-server3. PowerShell スクリプトでインストールする(推奨)
提供されている PowerShell インストール スクリプトを使用して、MCP サーバーをセットアップします。
# Run from the repository root directory
.\install.ps1スクリプトは次のようになります。
Pythonのインストールを確認する
仮想環境を作成し、依存関係をインストールする
Claude Desktop 構成ファイルを生成する
設定をクリップボードにコピーします
スクリプトを実行した後、構成を MCP クライアント (Claude Desktop、Cursor など) に直接貼り付けることができます。
4. MCPサーバーを使用する
関連するワークスペース情報を使用して MCP クライアント構成を構成すると、MCP サーバーが使用できるようになります。
Azure CLI 認証を使用している場合は、MCP クライアント構成からAZURE_CLIENT_IDとAZURE_CLIENT_SECRET削除する必要があることに注意してください。
🧰 ツールリファレンス
利用可能なツールは以下の通りです。詳細なドキュメントは、 resources/tool_docs/ディレクトリをご覧ください。ツール名と説明はMCPサーバーのツールレジストリと同期されているため、MCPクライアントが取得できます。
道具 | カテゴリ | 説明 |
| エントラID | Microsoft Entra ID (Azure AD) のすべてのユーザーを一覧表示する |
| エントラID | Entra ID から UPN またはオブジェクト ID でユーザーを取得する |
| エントラID | Microsoft Entra ID (Azure AD) 内のすべてのグループを一覧表示する |
| エントラID | Entra IDからオブジェクトIDでグループを取得する |
| KQL | Azure Monitor ログに対して KQL クエリを実行する |
| KQL | KQLクエリ構文をローカルで検証する |
| KQL | モックデータを使用してKQLクエリをテストする |
| ログ分析 | Log Analytics ワークスペースで利用可能なテーブルを一覧表示する |
| ログ分析 | Log Analytics テーブルの詳細を取得する |
| ログ分析 | Log Analytics テーブルのスキーマを取得する |
| ログ分析 | ワークスペース情報を取得する |
| 事件 | 特定のSentinelインシデントに関する詳細情報を取得する |
| 事件 | Microsoft Sentinel でセキュリティ インシデントを一覧表示する |
| 分析ルール | キーフィールドを含むすべての分析ルールを一覧表示する |
| 分析ルール | 特定の分析ルールの詳細を取得する |
| 分析ルール | センチネル分析ルールを戦術別にカウント |
| 分析ルール | MITREテクニックによるセンチネル分析ルールのカウント |
| ルールテンプレート | すべての Sentinel 分析ルール テンプレートを一覧表示する |
| ルールテンプレート | 特定のSentinel分析ルールテンプレートを取得する |
| ルールテンプレート | 戦術別にセンチネル分析ルールテンプレートをカウント |
| ルールテンプレート | MITREテクニックによるCount Sentinel分析ルールテンプレート |
| 狩猟 | オプションのフィルタリングを使用して、すべての Sentinel ハンティング クエリを一覧表示します。 |
| 狩猟 | 名前またはIDでセンチネルハンティングクエリの詳細を取得します |
| 狩猟 | センチネルハンティングクエリを戦術別にカウント |
| データコネクタ | データコネクタの一覧 |
| データコネクタ | IDで特定のデータコネクタを取得する |
| ウォッチリスト | すべてのSentinelウォッチリストを一覧表示する |
| ウォッチリスト | 特定のSentinelウォッチリストを取得する |
| ウォッチリスト | Sentinelウォッチリスト内のすべてのアイテムを一覧表示する |
| ウォッチリスト | Sentinelウォッチリストから特定のアイテムを取得する |
| 脅威情報 | ドメインのWHOIS情報を取得する |
| 脅威情報 | IPアドレスの位置情報データを取得する |
| メタデータ | 現在のワークスペース内のすべての Sentinel メタデータを一覧表示します |
| メタデータ | ID で特定の Sentinel メタデータの詳細を取得します |
| ソース管理 | 現在のワークスペース内のすべての Sentinel ソース管理を一覧表示します |
| ソース管理 | ID で特定の Sentinel ソース管理の詳細を取得します |
| ML分析 | Sentinel ML分析設定をすべて一覧表示する |
| ML分析 | 特定の Sentinel ML 分析設定を名前で取得する |
| 承認 | Sentinel アクセスの Azure RBAC ロールの割り当ての概要 |
| 保存した検索 | Log Analytics ワークスペースに保存されているすべての検索を一覧表示する |
| 保存した検索 | Log Analytics ワークスペースから特定の保存済み検索を取得する |
🛠️ 使用方法
Claude Desktopまたは同様の環境へのインストール
提供されている PowerShell インストール スクリプトを使用して、Claude Desktop またはその他の MCP 互換クライアント用に MCP サーバーをセットアップします。
# Run from the repository root directory
.\install.ps1スクリプトは次のようになります。
Pythonのインストールを確認する
仮想環境を作成し、依存関係をインストールする
インストール後の手順を実行する
Claude Desktop 構成ファイルを生成する
設定をクリップボードにコピーします
スクリプトを実行した後、設定をMCPクライアント(Claude Desktop、Cursorなど)に直接貼り付けることができます。スクリプトはClaude互換のMCPサーバー設定を生成します。他のMCPクライアントを使用する場合は、この点にご注意ください。
高度なインストールオプション
手動環境設定
環境を手動で設定する場合:
環境変数を設定する
提供されているテンプレートをコピーし、Azure 資格情報を入力します。
cp .env.example .env # Edit .env and set: # AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_SUBSCRIPTION_ID, AZURE_RESOURCE_GROUP, AZURE_WORKSPACE_NAME, AZURE_WORKSPACE_ID依存関係をインストールする(uvを使用)
uv venv uv pip install -e .代替サーバー実行オプション
MCP CLI の使用:
mcp run wrapper.py開発とホットリロード:
mcp dev wrapper.pySSE モード (IDE 用):
python wrapper.py --sse
インスペクターUI
MCP Inspector UI は、開発モード ( mcp dev wrapper.py ) で実行している場合、 http://127.0.0.1:6274で利用できます。
🧩 開発
リソース:
resources/に Python ファイルを追加し、register_resources(mcp)関数を実装します。ツール:
tools/にPythonファイルを追加し、register_tools(mcp)関数を実装します。ツールはdocs/tool-architecture-and-implementation-requirements.mdで定義されている構造に従う必要があります。プロンプト: LLM 駆動型ワークフローの
prompts/にプロンプト テンプレートを追加します。
resources/ 、 tools/ 、 prompts/ディレクトリ内のすべてのコンポーネントは、サーバー起動時に自動検出され、登録されます。手動でインポートする必要はありません。
🔐 認証と環境変数
MCP サーバーは、Azure Python SDK のDefaultAzureCredentialでサポートされているすべての認証方法をサポートします。
Azure CLI の代わりにサービス プリンシパル認証を使用する
Azure でアプリ登録を設定し、次のロールを割り当てます。
Log Analytics ReaderMicrosoft Sentinel Reader
勇気があれば、アプリ登録に次の Microsoft Graph アクセス許可を付与することもできます。
User.Read.AllGroup.Read.All
次に、 .envファイルまたは MCP サーバー構成で次の環境変数を使用します。
AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_SUBSCRIPTION_IDAZURE_RESOURCE_GROUPAZURE_WORKSPACE_NAMEAZURE_WORKSPACE_ID
テンプレートについては.env.exampleを参照してください。
Azure CLI 認証
az loginAzure CLI 認証を使用する場合は、構成からAZURE_CLIENT_SECRETとAZURE_CLIENT_ID省略できます。
🐛 デバッグ
.envファイルでMCP_DEBUG_LOG環境変数をtrueに設定してデバッグ モードを有効にします。
MCP_DEBUG_LOG=trueログはsentinel_mcp_server.logとして一時ディレクトリに書き込まれます。
📄 ライセンス
このプロジェクトはMIT ライセンスに基づいてライセンスされています。