entraadm-mcp
entraadm-mcp
영어 | 日本語
Microsoft Entra ID 로그인 및 감사 로그 트리아지를 위한 MCP 서버입니다. 읽기 전용입니다.
공식 Microsoft MCP Server for Enterprise 대신 이 서버를 사용하는 이유
Microsoft는 Entra ID 데이터용 공식 MCP Server for Enterprise를 제공합니다. 이는 키보드 앞에서 대화형으로 작업하는 관리자에게 적합하며, 무인 트리아지 봇에는 적합하지 않습니다:
위임 인증만 지원. 공식 서버는 앱 전용(클라이언트 자격 증명) 인증을 지원하지 않으므로 서비스 계정 뒤에서 헤드리스로 실행할 수 없습니다. entraadm-mcp는 이러한 경우를 위해 설계되었습니다: 프로덕션에서는 앱 전용, 로컬 개발에서는 위임(
az login) 폴백을 사용합니다.일반 목적 Graph 쿼리 도구이지 고정된 도구 세트가 아님. 공식 서버는 모델이 Microsoft Graph에 대해 임의의
GET/스키마 검색 호출을 구성할 수 있는 하나의 도구를 노출합니다. 이는 사람에게는 유연하지만, 자동화된 트리아지 프로필에 대한 허용 목록 뒤에 두기에는 어색합니다. entraadm-mcp는 대신 7개의 고정된 읽기 전용 도구를 노출합니다.AADSTS 변환 없음. 로그인 실패는 원시 오류 코드로 반환되며, 트리아지에는 여전히 조회 테이블이 필요합니다. entraadm-mcp는 모든 로그인 실패에 해당 코드가 실제로 의미하는 바를 주석으로 추가합니다.
요청 간 집계 없음. Microsoft Graph 자체는 서버 측에서
status/errorCode에 대한 로그인 필터링을 지원하지 않으며, 기본 제공 암호 스프레이 뷰도 없습니다.signin_failure_stats는 클라이언트 측에서 집계하고 여러 고유 사용자에 대해 실패한 로그인이 있는 IP에 플래그를 지정합니다 — Entra의 계정별 스마트 잠금이 자체적으로 포착하지 못하는 패턴입니다.
Related MCP server: Microsoft Graph MCP Server
도구
도구 | 답변하는 내용 |
| Graph에 연결할 수 있고 이 자격 증명이 로그인 로그를 읽을 수 있는가? |
| 이 계정이 활성화되어 있고, 온프레미스에서 동기화되었으며, 라이선스는 무엇인가? |
| 이 사용자의 로그인이 왜 실패(또는 성공)했는가, AADSTS 코드가 변환된 상태로? |
| 테넌트 전체 실패 집계: 상위 오류 코드, 사용자, 앱, 소스 IP, 암호 스프레이 의심 |
| 디렉터리에서 누가 무엇을 변경했는가(차단/차단 해제, 특성 편집), 그리고 언제? |
| 이 계정에 MFA가 실제로 등록되어 있는가? |
|
|
모든 도구는 읽기 전용입니다. 쓰기 작업(계정 차단 해제, 암호 재설정, 세션 해지)은 이 서버의 범위를 벗어납니다.
인증 모델
설정된 환경 변수에 따라 선택되는 두 가지 인증 모드:
모드 | 시기 | 환경 변수 |
app-only | 세 개 모두 설정 |
|
azure-cli | 없음 | (현재 |
세 개의 앱 전용 변수 중 하나 또는 두 개만 설정하는 것은 구성 오류이며, 의도한 것과 다른 인증 모드로 조용히 폴백하는 대신 서버가 시작을 거부합니다.
필수 Graph 권한
도구 | 권한 | 참고 |
|
| |
|
| |
|
| 앱 전용만 해당; 일반적인 테넌트 역할 할당에서는 위임( |
누락된 권한은 도구를 중단시키지 않습니다. 해당 도구(또는 해당 필드)를 {"error": "...", "missing_permission": "..."}로 저하시키고, 필요한 역할이나 권한에 대한 사람이 읽을 수 있는 설명을 제공하므로 health_check와 다른 모든 도구는 전체 권한이 부여되기 전에도 계속 사용할 수 있습니다.
설정
uv tool install entraadm-mcp
# or
pip install entraadm-mcp구성
프로덕션/무인 사용을 위해 세 개의 앱 전용 변수를 설정하세요:
export ENTRAADM_TENANT_ID=00000000-0000-0000-0000-000000000000
export ENTRAADM_CLIENT_ID=00000000-0000-0000-0000-000000000000
export ENTRAADM_CLIENT_SECRET=your-client-secret또는 세 개 모두 설정하지 않고 로컬 개발을 위해 먼저 az login을 실행하세요.
선택 사항:
# Default page cap for the log-scanning tools (1-50, default 5).
export ENTRAADM_MAX_PAGES_DEFAULT=5사용법
Claude Code (플러그인)
/plugin marketplace add shigechika/entraadm-mcp
/plugin install entraadm-mcp@entraadm-mcpClaude Code (수동)
.mcp.json에 추가:
{
"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:-}"
}
}
}
}직접 실행
entraadm-mcpCLI 옵션
옵션 | 효과 |
| 버전을 출력하고 종료 |
| 인증을 확인하고, Graph 연결 가능성과 로그인 로그 접근을 프로브하고, 보고서를 출력하고, 종료 코드 0(또는 구성 오류 시 1) |
참고
범위 계약. 페이지가 매겨진 Graph 컬렉션을 탐색하는 모든 결과는 해당 창이 완전히 스캔되지 않은 경우
capped부울을 전달합니다 — 부분 스캔이 완전한 것처럼 보고되지 않습니다.found: false는 오류가 아닙니다.get_user와get_user_auth_methods는 존재하지 않는 계정에{"found": false, ...}로 응답하며error키가 아닙니다 — 오타가 있는 userPrincipalName이 이 서버가 고장난 것처럼 보이게 해서는 안 됩니다.보존 기간. Entra ID P1은 로그인 및 디렉터리 감사 로그를 30일 동안 보존합니다. 그 이상의 창은 오류가 아닌 빈 결과를 반환합니다.
개발
uv sync --dev
uv run pytest -v
uv run ruff check .
uv run ruff format --check .라이브 스모크 테스트
uv run python scripts/smoke_test.py읽기 전용, 페이로드 출력 없음(도구 이름/상태/행 수만), 그리고 제한적(작은 명시적 창/페이지 캡) — 여기서 테넌트에 쓰거나 하루 이상의 로그를 스캔하지 않습니다.
릴리스
이 저장소는 Conventional Commits로 구동되는 release-please를 사용합니다. feat:/fix: PR을 main에 병합하면 release-please가 릴리스 PR을 열거나(또는 업데이트)합니다. 해당 PR을 병합하면 릴리스 태그가 생성되고 게시 파이프라인(PyPI, MCP Registry)이 트리거됩니다.
라이선스
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