ms-sentinel-mcp-server

by dstreefkerk
MIT License
1
  • Linux

Integrations

  • Supports environment variable configuration for authentication and server settings through .env files, allowing secure storage of Azure credentials and server configuration.

  • Enables access to source control information for Sentinel resources, including listing and viewing repository details for security content managed through source control.

  • Referenced as the repository hosting location for the MCP server, allowing users to clone and install the server from GitHub.

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に接続すると、プライバシーとセキュリティに重大なリスクが生じます。本番環境のセキュリティ運用には、プライベートでセキュリティ保護された環境のみを使用してください。


✨ 特徴

  • KQLクエリ実行: KQLクエリを実行して検証し、模擬データでテストする
  • ログ分析管理: ワークスペース情報、テーブル一覧、スキーマ
  • セキュリティインシデント: 詳細なインシデント情報を一覧表示および表示する
  • 分析ルール: MITRE の戦術/テクニック別にリスト、表示、分析します
  • ルールテンプレート: MITREフレームワークによるテンプレートへのアクセスと分析
  • ハンティングクエリ: リスト、詳細の表示、戦術別の分析
  • データ コネクタ: コネクタの詳細を一覧表示および表示する
  • ウォッチリスト: ウォッチリストとそのアイテムを管理する
  • 脅威インテリジェンス: ドメインWHOISとIP位置情報検索
  • メタデータとソース管理: リポジトリの詳細を一覧表示および表示する
  • ML分析: ML分析設定にアクセスする
  • 承認: RBAC ロールの割り当てを表示する
  • Entra ID ユーザーとグループ: Microsoft Entra ID からユーザーとグループの詳細を表示します

🚀 クイックスタート

1. Azure CLIで認証する

MCP サーバーを使用する前に、Microsoft Sentinel ワークスペースにアクセスできるアカウントを使用して Azure に認証する必要があります。

az login

2. リポジトリのクローンを作成する

git clone https://github.com/dstreefkerk/ms-sentinel-mcp-server.git cd ms-sentinel-mcp-server

3. 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_IDAZURE_CLIENT_SECRET削除する必要があることに注意してください。


🧰 ツールリファレンス

利用可能なツールは以下の通りです。詳細なドキュメントは、 resources/tool_docs/ディレクトリをご覧ください。ツール名と説明はMCPサーバーのツールレジストリと同期されているため、MCPクライアントが取得できます。

道具カテゴリ説明
entra_id_list_usersエントラIDMicrosoft Entra ID (Azure AD) のすべてのユーザーを一覧表示する
entra_id_get_userエントラIDEntra ID から UPN またはオブジェクト ID でユーザーを取得する
entra_id_list_groupsエントラIDMicrosoft Entra ID (Azure AD) 内のすべてのグループを一覧表示する
entra_id_get_groupエントラIDEntra IDからオブジェクトIDでグループを取得する
sentinel_logs_searchKQLAzure Monitor ログに対して KQL クエリを実行する
sentinel_query_validateKQLKQLクエリ構文をローカルで検証する
sentinel_logs_search_with_dummy_dataKQLモックデータを使用してKQLクエリをテストする
sentinel_logs_tables_listログ分析Log Analytics ワークスペースで利用可能なテーブルを一覧表示する
sentinel_logs_table_details_getログ分析Log Analytics テーブルの詳細を取得する
sentinel_logs_table_schema_getログ分析Log Analytics テーブルのスキーマを取得する
sentinel_workspace_getログ分析ワークスペース情報を取得する
sentinel_incident_details_get事件特定のSentinelインシデントに関する詳細情報を取得する
sentinel_incident_list事件Microsoft Sentinel でセキュリティ インシデントを一覧表示する
sentinel_analytics_rule_list分析ルールキーフィールドを含むすべての分析ルールを一覧表示する
sentinel_analytics_rule_get分析ルール特定の分析ルールの詳細を取得する
sentinel_analytics_rules_count_by_tactic分析ルールセンチネル分析ルールを戦術別にカウント
sentinel_analytics_rules_count_by_technique分析ルールMITREテクニックによるセンチネル分析ルールのカウント
sentinel_analytics_rule_templates_listルールテンプレートすべての Sentinel 分析ルール テンプレートを一覧表示する
sentinel_analytics_rule_template_getルールテンプレート特定のSentinel分析ルールテンプレートを取得する
sentinel_analytics_rule_templates_count_by_tacticルールテンプレート戦術別にセンチネル分析ルールテンプレートをカウント
sentinel_analytics_rule_templates_count_by_techniqueルールテンプレートMITREテクニックによるCount Sentinel分析ルールテンプレート
sentinel_hunting_queries_list狩猟オプションのフィルタリングを使用して、すべての Sentinel ハンティング クエリを一覧表示します。
sentinel_hunting_query_get狩猟名前またはIDでセンチネルハンティングクエリの詳細を取得します
sentinel_hunting_queries_count_by_tactic狩猟センチネルハンティングクエリを戦術別にカウント
sentinel_connectors_listデータコネクタデータコネクタの一覧
sentinel_connectors_getデータコネクタIDで特定のデータコネクタを取得する
sentinel_watchlists_listウォッチリストすべてのSentinelウォッチリストを一覧表示する
sentinel_watchlist_getウォッチリスト特定のSentinelウォッチリストを取得する
sentinel_watchlist_items_listウォッチリストSentinelウォッチリスト内のすべてのアイテムを一覧表示する
sentinel_watchlist_item_getウォッチリストSentinelウォッチリストから特定のアイテムを取得する
sentinel_domain_whois_get脅威情報ドメインのWHOIS情報を取得する
sentinel_ip_geodata_get脅威情報IPアドレスの位置情報データを取得する
sentinel_metadata_listメタデータ現在のワークスペース内のすべての Sentinel メタデータを一覧表示します
sentinel_metadata_getメタデータID で特定の Sentinel メタデータの詳細を取得します
sentinel_source_controls_listソース管理現在のワークスペース内のすべての Sentinel ソース管理を一覧表示します
sentinel_source_control_getソース管理ID で特定の Sentinel ソース管理の詳細を取得します
sentinel_ml_analytics_settings_listML分析Sentinel ML分析設定をすべて一覧表示する
sentinel_ml_analytics_setting_getML分析特定の Sentinel ML 分析設定を名前で取得する
sentinel_authorization_summary承認Sentinel アクセスの Azure RBAC ロールの割り当ての概要
log_analytics_saved_searches_list保存した検索Log Analytics ワークスペースに保存されているすべての検索を一覧表示する
log_analytics_saved_search_get保存した検索Log Analytics ワークスペースから特定の保存済み検索を取得する

🛠️ 使用方法

Claude Desktopまたは同様の環境へのインストール

提供されている PowerShell インストール スクリプトを使用して、Claude Desktop またはその他の MCP 互換クライアント用に MCP サーバーをセットアップします。

# Run from the repository root directory .\install.ps1

スクリプトは次のようになります。

  1. Pythonのインストールを確認する
  2. 仮想環境を作成し、依存関係をインストールする
  3. インストール後の手順を実行する
  4. Claude Desktop 構成ファイルを生成する
  5. 設定をクリップボードにコピーします

スクリプトを実行した後、設定をMCPクライアント(Claude Desktop、Cursorなど)に直接貼り付けることができます。スクリプトはClaude互換のMCPサーバー設定を生成します。他のMCPクライアントを使用する場合は、この点にご注意ください。

高度なインストールオプション

手動環境設定

環境を手動で設定する場合:

  1. 環境変数を設定する提供されているテンプレートをコピーし、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
  2. 依存関係をインストールする(uvを使用)
    uv venv uv pip install -e .
  3. 代替サーバー実行オプションMCP CLI の使用:
    mcp run wrapper.py
    開発とホットリロード:
    mcp dev wrapper.py
    SSE モード (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 Reader
  • Microsoft Sentinel Reader

勇気があれば、アプリ登録に次の Microsoft Graph アクセス許可を付与することもできます。

  • User.Read.All
  • Group.Read.All

次に、 .envファイルまたは MCP サーバー構成で次の環境変数を使用します。

  • AZURE_TENANT_ID
  • AZURE_CLIENT_ID
  • AZURE_CLIENT_SECRET
  • AZURE_SUBSCRIPTION_ID
  • AZURE_RESOURCE_GROUP
  • AZURE_WORKSPACE_NAME
  • AZURE_WORKSPACE_ID

テンプレートについては.env.exampleを参照してください。

Azure CLI 認証

az login

Azure CLI 認証を使用する場合は、構成からAZURE_CLIENT_SECRETAZURE_CLIENT_ID省略できます。


🐛 デバッグ

.envファイルでMCP_DEBUG_LOG環境変数をtrueに設定してデバッグ モードを有効にします。

MCP_DEBUG_LOG=true

ログはsentinel_mcp_server.logとして一時ディレクトリに書き込まれます。


📄 ライセンス

このプロジェクトはMIT ライセンスに基づいてライセンスされています。

Related MCP Servers

View all related MCP servers

ID: q516csqe5y