entraadm-mcp
entraadm-mcp
English | 日本語
用于 Microsoft Entra ID 登录和审计日志分类的 MCP 服务器。只读。
为什么用这个而不是官方的 Microsoft MCP Server for Enterprise
微软发布了一个用于 Entra ID 数据的官方 MCP Server for Enterprise。它非常适合在键盘前进行交互式操作的管理员,但不适合无人值守的分类机器人:
仅支持委托身份验证。 官方服务器不支持仅应用(客户端凭据)身份验证,因此无法在服务账户后无头运行。entraadm-mcp 正是为此场景而构建:生产环境使用仅应用模式,本地开发则回退到委托(
az login)模式。通用 Graph 查询工具,而非固定工具集。 官方服务器只暴露一个工具,让模型可以对 Microsoft Graph 构造任意的
GET/schema 发现调用。这对人类来说很灵活,但放在自动化分类配置文件的允许列表后面就很别扭。entraadm-mcp 取而代之暴露了七个固定的只读工具。没有 AADSTS 翻译。 登录失败以原始错误码返回;分类仍然需要查找表。entraadm-mcp 为每次登录失败标注该错误码的实际含义。
没有跨请求聚合。 Microsoft Graph 本身无法在服务端按
status/errorCode过滤登录,也没有内置的密码喷洒视图。signin_failure_stats在客户端聚合,并标记对许多不同用户有失败登录的 IP——这是 Entra 的按账户智能锁定本身无法捕获的模式。
Related MCP server: Microsoft Graph MCP Server
工具
工具 | 回答的问题 |
| Graph 是否可达,此凭据能否读取登录日志? |
| 此账户是否已启用、是否从本地同步,以及它有哪些许可证? |
| 此用户的登录为何失败(或成功),并附 AADSTS 错误码翻译? |
| 租户级失败聚合:主要错误码、用户、应用、源 IP 和密码喷洒嫌疑 |
| 谁在目录中更改了什么(阻止/解除阻止、属性编辑),以及何时? |
| 此账户是否实际注册了 MFA? |
| 一次调用汇总 |
每个工具都是只读的。写操作(解除账户阻止、重置密码、撤销会话)不在本服务器的范围内。
身份验证模型
两种身份验证模式,由设置了哪些环境变量来决定:
模式 | 何时 | 环境变量 |
仅应用 | 三个都已设置 |
|
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