Entra ID SecOps MCP Server
Entra ID SecOps MCP Server
Microsoft Entra ID のセキュリティログを、AIエージェント(Claude Desktop、Cursor、その他のMCPクライアント)が実行可能なツールとして公開する MCP サーバーです。
目的: アナリストが自然言語で質問(「このアカウントがなぜログインできなくなったのか?」)を投げかけ、テナントの実際のデータに基づく回答を数秒で得られるようにすることです。
📖 インストールとテストのガイド — サーバーを起動する3つの方法をステップバイステップで解説。 🔍 技術ブリーフ — 市場調査と安全な公開方法。
設計思想
Microsoft Graph の生のレスポンスには、イベントあたり約60のフィールドが含まれます。このサーバーは積極的な切り詰めを適用し、セキュリティ指標はわずか12個ほどしかモデルに到達しません。これはコスト最適化(トークン数で約35分の1)であると同時に、セキュリティ対策でもあります。リストにないフィールド(攻撃者が制御できるものも含む)は決してコンテキストに入り込まないためです。
集計(失敗回数、異なるIP、疑わしいパターン)はPython で計算され、モデルによる推論ではありません。
ツール
ツール | 説明 | Graph のアクセス許可 | ライセンス |
| アカウントの情報: 役職、グループ、保有ロール。インシデントの重大度を判定します。 |
| — |
| UPN の最近のサインイン。要約と疑わしいパターン付き。 |
| P1 |
| Identity Protection によってリスクありと報告されたアカウント。 |
| P2 |
| 個別の検出: アカウントがリスクとされる理由。 |
| P2 |
| 管理操作の変更。永続化の痕跡を通知します。 |
| — |
| アクティブなポリシーとカバレッジの欠陥。 |
| — |
すべてのツールは読み取り専用です。サーバーがテナントを変更することは一切ありません。
推奨調査手順
get_user_context le compte est-il privilégié ? l'incident est-il grave ?
↓
get_user_signins que s'est-il passé sur l'authentification ?
↓
get_risk_detections qu'a détecté Identity Protection, et pourquoi ?
↓
get_directory_audits l'attaquant a-t-il modifié quelque chose une fois entré ?この一連の流れはサーバーの instructions にも記載されており、MCP クライアントがモデルに渡します。
クイックスタート(Azure テナントなし)
fixture モードはデモ用インシデントを再生するもので、テナント、ライセンス、シークレットは一切不要です。
python -m venv venv
venv/Scripts/activate # Windows ; sur Linux/macOS : source venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env # ENTRA_DATA_SOURCE=fixture est déjà la valeur par défaut
python -m entra_secops_mcp実テナントへの接続
Entra ポータルで アプリの登録 を作成します。
上記の表のアプリケーション許可を追加し、管理者の同意を付与します。
クライアントシークレットを生成します。
.envを設定します:
AZURE_TENANT_ID=...
AZURE_CLIENT_ID=...
AZURE_CLIENT_SECRET=...
ENTRA_DATA_SOURCE=graph必要なライセンス。 API経由でサインインログにアクセスするには Entra ID P1 ライセンスが必要で、Identity Protection ツールには P2 が必要です。これらがないと Graph は
403を返します。他のツールは有料ライセンスなしで動作します。開始前にテナントのライセンスを確認してください。これが数日を無駄にする典型的な障害です。
セキュリティ
コードにも Docker イメージにもシークレットは存在しません。起動時に
--env-file経由で注入されます。.envは.gitignoreにより git の管理外です。リポジトリにプッシュされたシークレットは、ファイルから削除するだけでなく、Azure で失効させなければなりません。ログは
stderrに送られます。stdio トランスポートでは、stdoutが JSON-RPC プロトコルを運ぶため、余分なバイトは一切許されません。
設定
すべての変数は .env.example に文書化されています。
Docker
docker build -t entra-secops-mcp .
docker run -i --rm --env-file .env entra-secops-mcp最終イメージ: 277 MB、マルチステージビルド、非 root ユーザー(uid=1000)で実行、レイヤー内にシークレットなし。
-i は標準入力を開いたままにします。MCP プロトコルはここを通ります。-t は付けないでください。疑似端末がカラーコードを注入し、JSON フレームを壊します。
開発
pytest # 81 tests
ruff check src tests
mypy src # mode strict
pre-commit install # contrôles avant chaque commit
python demo.py # investigation de démonstrationステータス
ツール | 6、すべて読み取り専用 |
テスト | 81、Azure テナント不要 |
型チェック |
|
MCP プロトコル |
|
コンテナ | 実 MCP クライアントで検証済み: 起動 2.4 秒、ツール呼び出し ~110 ms |
ライセンス
MIT.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Find relevant security data from Sentinel data lake for building effective agents. More:aka.ms/s/de
Read-only access to Auralogs production logs: search logs, inspect errors, review AI analyses.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sultan-zd/mcp-entra-secops'
If you have feedback or need assistance with the MCP directory API, please join our Discord server