Entra ID SecOps MCP Server
Entra ID SecOps MCP Server
Server MCP, der die Sicherheitsprotokolle von Microsoft Entra ID als ausführbare Werkzeuge für einen KI-Agenten (Claude Desktop, Cursor oder jeden anderen MCP-Client) bereitstellt.
Ziel: einem Analysten zu ermöglichen, eine Frage in natürlicher Sprache zu stellen — „Warum kann sich dieses Konto nicht mehr anmelden?“ — und in wenigen Sekunden eine Antwort zu erhalten, die auf den tatsächlichen Daten des Mandanten basiert.
📖 Installations- und Testanleitung — die drei Möglichkeiten, den Server Schritt für Schritt zu starten. 🔍 Technisches Briefing — Marktscan und sichere Exposition.
Designprinzip
Eine rohe Antwort von Microsoft Graph enthält etwa sechzig Felder pro Ereignis. Der Server wendet eine aggressive Kürzung an: Nur etwa ein Dutzend Sicherheitsindikatoren erreichen das Modell. Das ist sowohl eine Kostenoptimierung (Faktor ~35 bei den Tokens) als auch eine Sicherheitskontrolle, da die nicht aufgeführten Felder — von denen einige von einem Angreifer kontrolliert werden — nie in den Kontext gelangen.
Die Aggregate (Anzahl der Fehlschläge, verschiedene IPs, verdächtige Muster) werden in Python berechnet, nicht vom Modell abgeleitet.
Werkzeuge
Werkzeug | Zweck | Graph-Berechtigung | Lizenz |
| Kontoprofil: Position, Gruppen, gehaltene Rollen. Bestimmt die Schwere eines Vorfalls. |
| — |
| Letzte Anmeldungen eines UPN, mit Zusammenfassung und verdächtigen Mustern |
| P1 |
| Von Identity Protection als riskant gemeldete Konten |
| P2 |
| Einzelne Erkennungen: warum ein Konto riskant ist |
| P2 |
| Administrative Änderungen; meldet Persistenzmaßnahmen |
| — |
| Aktive Richtlinien und Abdeckungslücken |
| — |
Alle Werkzeuge sind schreibgeschützt: Der Server ändert niemals den Mandanten.
Empfohlene Untersuchungsreihenfolge
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é ?Diese Abfolge ist auch in den instructions des Servers beschrieben, die der MCP-Client an das Modell übermittelt.
Schnellstart (ohne Azure-Mandanten)
Der Modus fixture spielt einen Demo-Vorfall erneut ab und erfordert weder Mandant, Lizenz noch Geheimnis.
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_mcpVerbindung zu einem echten Mandanten
Erstellen Sie eine App Registration im Entra-Portal.
Fügen Sie die Anwendungsberechtigungen aus der obigen Tabelle hinzu und erteilen Sie dann die Administratorzustimmung.
Generieren Sie ein Client-Geheimnis.
Füllen Sie die
.env-Datei aus:
AZURE_TENANT_ID=...
AZURE_CLIENT_ID=...
AZURE_CLIENT_SECRET=...
ENTRA_DATA_SOURCE=graphErforderliche Lizenz. Der Zugriff auf die Anmeldeprotokolle über die API erfordert eine P1-Lizenz für Entra ID, und die Identity-Protection-Tools erfordern P2. Ohne diese antwortet Graph mit
403. Die anderen Tools funktionieren ohne kostenpflichtige Lizenz. Überprüfen Sie die Lizenz des Mandanten bevor Sie beginnen: Das ist das klassische Hindernis, das mehrere Tage kostet.
Sicherheit
Kein Geheimnis ist im Code oder im Docker-Image vorhanden. Sie werden beim Start über
--env-fileinjiziert..envist durch.gitignorevon Git ausgeschlossen. Ein Geheimnis, das in ein Repository gepusht wurde, muss in Azure widerrufen werden, nicht nur aus der Datei gelöscht werden.Die Protokollierung erfolgt auf
stderr: Bei stdio-Transport überträgtstdoutdas JSON-RPC-Protokoll und toleriert keine überflüssigen Bytes.
Konfiguration
Alle Variablen sind in .env.example dokumentiert.
Docker
docker build -t entra-secops-mcp .
docker run -i --rm --env-file .env entra-secops-mcpFinales Image: 277 MB, mehrstufiger Build, Ausführung als Nicht-Root-Benutzer (uid=1000), keine Geheimnisse in den Schichten.
-i hält den Standardeingang offen — hierüber läuft das MCP-Protokoll. Kein -t: Ein Pseudo-Terminal injiziert Farbcodes, die die JSON-Frames beschädigen.
Entwicklung
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émonstrationStatus
Werkzeuge | 6, alle schreibgeschützt |
Tests | 81, ohne erforderlichen Azure-Mandanten |
Typen |
|
MCP-Protokoll |
|
Container | über einen echten MCP-Client verifiziert: Start 2,4 s, Tool-Aufruf ~110 ms |
Lizenz
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