entraadm-mcp
entraadm-mcp
Englisch | 日本語
MCP-Server für die Sichtung von Microsoft-Entra-ID-Anmelde- und Überwachungsprotokollen. Nur lesend.
Warum dies statt des offiziellen Microsoft MCP Server for Enterprise
Microsoft bietet einen offiziellen MCP Server for Enterprise für Entra-ID-Daten an. Er eignet sich gut für einen interaktiven Administrator an der Tastatur, ist jedoch nicht für einen unbeaufsichtigten Triage-Bot geeignet:
Nur delegierte Authentifizierung. Der offizielle Server unterstützt keine App-only-Authentifizierung (Client-Anmeldeinformationen), daher kann er nicht unbeaufsichtigt hinter einem Dienstkonto ausgeführt werden. entraadm-mcp ist für diesen Fall gebaut: App-only in Produktion, mit einem delegierten (
az login) Fallback für die lokale Entwicklung.Ein allgemeines Graph-Abfragetool, kein festes Toolset. Der offizielle Server stellt ein Tool bereit, mit dem das Modell beliebige
GET-/Schema-Erkennungsaufrufe an Microsoft Graph konstruieren kann. Das ist für einen Menschen flexibel, aber schwierig hinter eine Zulassungsliste für ein automatisiertes Triage- Profil zu setzen. entraadm-mcp stellt stattdessen sieben feste, schreibgeschützte Tools bereit.Keine AADSTS-Übersetzung. Anmeldefehler kommen als rohe Fehlercodes zurück; die Triage benötigt dennoch eine Nachschlagetabelle. entraadm-mcp kommentiert jeden Anmeldefehler mit der tatsächlichen Bedeutung des Codes.
Keine anfrageübergreifende Aggregation. Microsoft Graph selbst kann Anmeldungen nicht serverseitig nach
status/errorCodefiltern und hat keine eingebaute Passwort-Spray-Ansicht.signin_failure_statsaggregiert clientseitig und kennzeichnet IPs mit fehlgeschlagenen Anmeldungen gegen viele verschiedene Benutzer – das Muster, das Entras pro-Konto intelligente Sperre nicht von selbst erkennt.
Related MCP server: Microsoft Graph MCP Server
Tools
Tool | Was es beantwortet |
| Ist Graph erreichbar und kann diese Anmeldeinformation Anmeldeprotokolle lesen? |
| Ist dieses Konto aktiviert, aus der lokalen Umgebung synchronisiert, und welche Lizenzen hat es? |
| Warum ist die Anmeldung dieses Benutzers fehlgeschlagen (oder erfolgreich), mit übersetztem AADSTS-Code? |
| Mandantenweite Fehleraggregation: häufigste Fehlercodes, Benutzer, Apps, Quell-IPs und Passwort-Spray-Verdächtige |
| Wer hat was im Verzeichnis geändert (Sperren/Entsperren, Attributänderungen) und wann? |
| Ist MFA tatsächlich für dieses Konto registriert? |
| Zusammenfassung mit einem Aufruf, die |
Jedes Tool ist schreibgeschützt. Schreiboperationen (Entsperren eines Kontos, Zurücksetzen eines Passworts, Widerrufen einer Sitzung) liegen außerhalb des Anwendungsbereichs dieses Servers.
Authentifizierungsmodell
Zwei Authentifizierungsmodi, ausgewählt durch die gesetzten Umgebungsvariablen:
Modus | Wann | Umgebungsvariablen |
app-only | Alle drei gesetzt |
|
azure-cli | Keine gesetzt | (verwendet die aktuelle |
Das Setzen von einer oder zwei der drei App-only-Variablen ist ein Konfigurationsfehler und der Server weigert sich zu starten, anstatt stillschweigend auf einen anderen Authentifizierungsmodus als beabsichtigt zurückzufallen.
Erforderliche Graph-Berechtigungen
Tool(s) | Berechtigung | Hinweise |
|
| |
|
| |
|
| Nur App-only; nicht verfügbar unter delegierter ( |
Eine fehlende Berechtigung bringt ein Tool nie zum Absturz. Es degradiert dieses Tool (oder dieses
eine Feld) zu {"error": "...", "missing_permission": "..."} mit einer
menschenlesbaren Erklärung, welche Rolle oder Berechtigung benötigt wird, sodass
health_check und alle anderen Tools auch vor der Erteilung vollständiger Berechtigungen nutzbar bleiben.
Setup
uv tool install entraadm-mcp
# or
pip install entraadm-mcpKonfiguration
Setzen Sie die drei App-only-Variablen für Produktions-/unbeaufsichtigten Einsatz:
export ENTRAADM_TENANT_ID=00000000-0000-0000-0000-000000000000
export ENTRAADM_CLIENT_ID=00000000-0000-0000-0000-000000000000
export ENTRAADM_CLIENT_SECRET=your-client-secretOder lassen Sie alle drei ungesetzt und führen Sie zuerst az login für die lokale Entwicklung aus.
Optional:
# Default page cap for the log-scanning tools (1-50, default 5).
export ENTRAADM_MAX_PAGES_DEFAULT=5Verwendung
Claude Code (Plugin)
/plugin marketplace add shigechika/entraadm-mcp
/plugin install entraadm-mcp@entraadm-mcpClaude Code (manuell)
Fügen Sie zu .mcp.json hinzu:
{
"mcpServers": {
"entraadm-mcp": {
"type": "stdio",
"command": "uvx",
"args": ["entraadm-mcp"],
"env": {
"ENTRAADM_TENANT_ID": "${ENTRAADM_TENANT_ID:-}",
"ENTRAADM_CLIENT_ID": "${ENTRAADM_CLIENT_ID:-}",
"ENTRAADM_CLIENT_SECRET": "${ENTRAADM_CLIENT_SECRET:-}"
}
}
}
}Direkte Ausführung
entraadm-mcpCLI-Optionen
Option | Wirkung |
| Version ausgeben und beenden |
| Authentifizierung auflösen, Graph-Erreichbarkeit und Zugriff auf Anmeldeprotokolle prüfen, Bericht ausgeben, Exit 0 (oder 1 bei Konfigurationsfehler) |
Hinweise
Abdeckungsvertrag. Jedes Ergebnis, das eine paginierte Graph-Sammlung durchläuft, trägt ein
capped-Boolesches Feld, wenn sein Fenster nicht vollständig gescannt wurde – ein teilweiser Scan wird nie als vollständig gemeldet.found: falseist kein Fehler.get_userundget_user_auth_methodsantworten auf ein nicht vorhandenes Konto mit{"found": false, ...}, nicht mit einemerror- Schlüssel – ein falsch geschriebener userPrincipalName sollte niemals wie ein defekter Server aussehen.Aufbewahrung. Entra ID P1 speichert Anmelde- und Verzeichnis-Überwachungsprotokolle für 30 Tage. Ein Fenster darüber hinaus gibt ein leeres Ergebnis zurück, keinen Fehler.
Entwicklung
uv sync --dev
uv run pytest -v
uv run ruff check .
uv run ruff format --check .Live-Smoke-Test
uv run python scripts/smoke_test.pyNur lesend, keine Nutzlasten werden ausgegeben (nur Toolnamen/Status/Zeilenanzahlen), und begrenzt (kleine explizite Fenster/Seitengrenzen) – nichts hier schreibt in den Mandanten oder scannt mehr als einen Tag Protokolle.
Veröffentlichung
Dieses Repository verwendet release-please
gesteuert von Conventional Commits. Mergen Sie
einen feat:/fix:-PR in main, und release-please öffnet (oder aktualisiert) einen
Release-PR; das Mergen dieses PRs taggt ein Release und löst die Veröffentlichungspipeline aus
(PyPI, MCP Registry).
Lizenz
MIT
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 Servers
- -licenseNot gradedqualityNot gradedmaintenanceProvides secure access to Microsoft Entra ID (Azure AD) resources including users, devices, and applications through Microsoft Graph API. Enables querying organizational data with comprehensive audit logging to Azure Blob Storage.
- AlicenseNot gradedqualityDmaintenanceProvides read-only access to Microsoft 365 services including SharePoint, OneDrive, Outlook, Teams, and Calendar through the Microsoft Graph API, enabling users to search, browse, and retrieve content across their M365 suite.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to query Microsoft Entra data using natural language, converting requests into Microsoft Graph API calls for read-only enterprise IT scenarios.46CC BY-4.0
- AlicenseAqualityBmaintenanceEnables auditing and monitoring of Microsoft Entra ID security posture, Conditional Access policies, and Zero Trust alignment via Microsoft Graph API.5MIT
Related MCP Connectors
Read-only access to Auralogs production logs: search logs, inspect errors, review AI analyses.
Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.
Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.
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/shigechika/entraadm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server