Manage Microsoft Entra ID users, groups, applications, devices, sign-ins, MFA, and permissions through Microsoft Graph.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Entraid MCP Server.
This project provides a modular, resource-oriented FastMCP server for interacting with Microsoft Graph API. It is designed for extensibility, maintainability, and security, supporting advanced queries for users, sign-in logs, MFA status, and privileged users.
src/msgraph_mcp_server/resources/..env and secret files are excluded from version control.config/.env file with your Azure AD credentials:
You can test and develop your MCP server directly using the FastMCP CLI:
This launches an interactive development environment with the MCP Inspector. For more information and advanced usage, see the FastMCP documentation.
search_users(query, ctx, limit=10) β Search users by name/emailget_user_by_id(user_id, ctx) β Get user details by IDget_privileged_users(ctx) β List all users in privileged directory rolesget_user_roles(user_id, ctx) β Get all directory roles assigned to a userget_user_groups(user_id, ctx) β Get all groups (including transitive memberships) for a userget_all_groups(ctx, limit=100) β Get all groups (with paging)get_group_by_id(group_id, ctx) β Get a specific group by its IDsearch_groups_by_name(name, ctx, limit=50) β Search for groups by display nameget_group_members(group_id, ctx, limit=100) β Get members of a group by group IDcreate_group(ctx, group_data) β Create a new group (see below for group_data fields)update_group(group_id, ctx, group_data) β Update an existing group (fields: displayName, mailNickname, description, visibility)delete_group(group_id, ctx) β Delete a group by its IDadd_group_member(group_id, member_id, ctx) β Add a member (user, group, device, etc.) to a groupremove_group_member(group_id, member_id, ctx) β Remove a member from a groupadd_group_owner(group_id, owner_id, ctx) β Add an owner to a groupremove_group_owner(group_id, owner_id, ctx) β Remove an owner from a groupGroup Creation/Update Example:
group_data for create_group and update_group should be a dictionary with keys such as:
displayName (required for create)mailNickname (required for create)description (optional)groupTypes (optional, e.g., ["Unified"])mailEnabled (optional)securityEnabled (optional)visibility (optional, "Private" or "Public")owners (optional, list of user IDs)members (optional, list of IDs)membershipRule (required for dynamic groups)membershipRuleProcessingState (optional, "On" or "Paused")See the groups.py docstrings for more details on supported fields and behaviors.
get_user_sign_ins(user_id, ctx, days=7) β Get sign-in logs for a userget_user_mfa_status(user_id, ctx) β Get MFA status for a userget_group_mfa_status(group_id, ctx) β Get MFA status for all group membersget_all_managed_devices(filter_os=None) β Get all managed devices (optionally filter by OS)get_managed_devices_by_user(user_id) β Get all managed devices for a specific userget_conditional_access_policies(ctx) β Get all conditional access policiesget_conditional_access_policy_by_id(policy_id, ctx) β Get a single conditional access policy by its IDget_user_audit_logs(user_id, days=30) β Get all relevant directory audit logs for a user by user_id within the last N daysreset_user_password_direct(user_id, password=None, require_change_on_next_sign_in=True, generate_password=False, password_length=12) β Reset a user's password with a specific password value or generate a secure random passwordsuggest_permissions_for_task(task_category, task_name) β Suggest Microsoft Graph permissions for a specific task based on common mappingslist_permission_categories_and_tasks() β List all available categories and tasks for permission suggestionsget_all_graph_permissions() β Get all Microsoft Graph permissions directly from the Microsoft Graph APIsearch_permissions(search_term, permission_type=None) β Search for Microsoft Graph permissions by keywordlist_applications(ctx, limit=100) β List all applications (app registrations) in the tenant, with pagingget_application_by_id(app_id, ctx) β Get a specific application by its object ID (includes app role assignments and delegated permissions)create_application(ctx, app_data) β Create a new application (see below for app_data fields)update_application(app_id, ctx, app_data) β Update an existing application (fields: displayName, signInAudience, tags, identifierUris, web, api, requiredResourceAccess)delete_application(app_id, ctx) β Delete an application by its object IDApplication Creation/Update Example:
app_data for create_application and update_application should be a dictionary with keys such as:
displayName (required for create)signInAudience (optional)tags (optional)identifierUris (optional)web (optional)api (optional)requiredResourceAccess (optional)list_service_principals(ctx, limit=100) β List all service principals in the tenant, with pagingget_service_principal_by_id(sp_id, ctx) β Get a specific service principal by its object ID (includes app role assignments and delegated permissions)create_service_principal(ctx, sp_data) β Create a new service principal (see below for sp_data fields)update_service_principal(sp_id, ctx, sp_data) β Update an existing service principal (fields: displayName, accountEnabled, tags, appRoleAssignmentRequired)delete_service_principal(sp_id, ctx) β Delete a service principal by its object IDService Principal Creation/Update Example:
sp_data for create_service_principal and update_service_principal should be a dictionary with keys such as:
appId (required for create)accountEnabled (optional)tags (optional)appRoleAssignmentRequired (optional)displayName (optional)greeting://{name} β Returns a personalized greetingresources/ (e.g., groups.py, devices.py).server.py using the FastMCP @mcp.tool() decorator.GraphClient for all API calls..env and other sensitive files are gitignored.Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/hieutran-entraid-mcp-server)<a href="https://allmcps.com/mcp/hieutran-entraid-mcp-server"><img src="https://allmcps.com/api/badge/hieutran-entraid-mcp-server?style=directory" alt="Entraid MCP Server on AllMCPs" /></a>