Entra ID SecOps MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TI_DATA_SOURCE | No | Data source for the threat intelligence server. Set to a non-fixture value to use real API sources; the default 'fixture' replays a coherent demo scenario. | fixture |
| AZURE_CLIENT_ID | No | Azure client ID (App Registration application ID), required when ENTRA_DATA_SOURCE=graph. | |
| AZURE_TENANT_ID | No | Azure tenant ID, required when ENTRA_DATA_SOURCE=graph. | |
| ARGUS_HTTP_TOKEN | No | Token required for HTTP transport authentication when listening on a non-loopback interface. The server refuses to start on 0.0.0.0 without it. | |
| ENTRA_DATA_SOURCE | No | Data source for the Entra ID server. Set to 'graph' to connect to a real Azure tenant, or use the default 'fixture' for a demonstration scenario with no credentials. | fixture |
| AZURE_CLIENT_SECRET | No | Azure client secret, required when ENTRA_DATA_SOURCE=graph. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_user_contextA | Récupère la fiche d'identité d'un compte : poste, département, état, groupes d'appartenance et rôles d'annuaire détenus. C'est l'outil qui détermine la GRAVITÉ d'un incident. Une connexion suspecte sur un compte sans privilège et sur un compte administrateur global appellent des réponses très différentes. À appeler systématiquement avant de conclure sur un incident. |
| get_user_signinsA | Récupère les connexions récentes d'un utilisateur pour investiguer un blocage d'authentification, une anomalie géographique ou une compromission. Retourne les événements réduits à leurs indicateurs de sécurité, plus une synthèse chiffrée (nombre d'échecs, IP distinctes, observations calculées). Args: upn: User Principal Name complet, par exemple « alice@contoso.com ». hours: Fenêtre de recherche en heures. Défaut 24, maximum 168 (7 jours). limit: Nombre maximum d'événements retournés. Défaut 25, maximum 100. |
| get_risky_usersA | Liste les comptes signalés à risque par Entra Identity Protection, du plus risqué au moins risqué. À utiliser pour obtenir une vue d'ensemble de l'exposition du tenant, ou pour confirmer qu'un compte précis est bien considéré comme compromis. Nécessite une licence Entra ID P2. |
| get_risk_detectionsA | Récupère les détections de risque unitaires : identifiants divulgués, IP anonymisée, voyage impossible, pulvérisation de mots de passe. C'est l'outil qui explique POURQUOI un compte est signalé à risque, là où
Nécessite une licence Entra ID P2. |
| get_directory_auditsA | Récupère les modifications administratives récentes de l'annuaire, afin d'identifier une dérive de configuration ou un changement non autorisé. Signale automatiquement les opérations à valeur de persistance ou d'élévation de privilèges : attribution de rôle, ajout d'un secret applicatif, enrôlement d'une méthode MFA, modification d'une politique d'accès conditionnel. À utiliser après avoir constaté une connexion suspecte, pour déterminer ce que l'attaquant a fait une fois entré. |
| get_conditional_access_policiesA | Liste les politiques d'accès conditionnel du tenant, avec leur état réel d'application. À utiliser pour expliquer pourquoi une connexion a été bloquée (code 53003), ou pour repérer une faille de couverture : politique désactivée, politique en mode audit seul, ou exclusion qui permet à un compte de contourner un contrôle. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool targets a distinct data source: user identity context, sign-in events, risky user aggregates, individual risk detections, directory audit logs, and conditional access policies. The closely related risky-user and risk-detection tools are explicitly differentiated by scope, so an agent can reliably pick the right one.
All tool names follow a consistent get_<resource> pattern using snake_case: get_user_context, get_user_signins, get_risky_users, get_risk_detections, get_directory_audits, get_conditional_access_policies. The naming convention is uniform and predictable.
Six tools is a tightly scoped set for an Entra ID SecOps investigation server. Each tool covers a necessary aspect of incident investigation without redundancy or bloat.
The tool surface covers the main investigative workflow: identify the user's privilege level, inspect sign-ins, review identity risk, understand specific risk detections, check for malicious directory changes, and evaluate conditional access impacts. No significant operational gap is apparent for the stated SecOps purpose.