Connectors · Identity & security
Microsoft 365 Users MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Microsoft 365 Users and the rest of your systems. It gives your agent 274 Microsoft 365 Users actions (160 reads, 61 writes and 53 that wait for a confirmation) and holds the Microsoft 365 Users credential itself, so the agent never does. It paces Microsoft 365 Users's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "m365_graph_users.users_list", intent: "check which Microsoft 365 Users account is connected"}# List users · read · 1 upstream call- 274actionsin one signed file
- 160readlook, never change
- 61writecreate and update
- 53wait for a yesdestructive, confirmed first
Set up
Connect Microsoft 365 Users in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Microsoft 365 Users.
OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in. actionlake stores what you paste write-only, sealed under your tenant's key.
client_idEntra application (client) idclient_secretEntra client secrettenant_idYour Microsoft 365 Users tenant id
account { op: "connections.requirements", service: "m365_graph_users" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "m365_graph_users.users_list" }# list users · read · 1 upstream callcheck { action: "m365_graph_users.users_create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Microsoft 365 Users at a glance
- Sign-in
- OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in.
- You provide
client_idclient_secret- Setup fields
tenant_id- Limits we pace to
- 10,000 calls per 10 minutes, per connection
- API covered
- Microsoft 365 Users API v1.0
graph.microsoft.com/v1.0 - Built from
- Microsoft 365 Users's documentation, read 8 September 2026learn.microsoft.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 155 of 160 reads, for up to an hour; a write clears what it affects
- Ready-made plans
- 9 in the store
- Shared entities
- 8, so ask can line Microsoft 365 Users up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Microsoft 365 Users.
274 actions in 8 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 160readlook, never change
- 61writecreate and update
- 53destructivewait for a confirmation
Directory
10667 read · 24 write · 15 destructive
List users · List groups · Create a user · Track user changes (delta)
Applications
4421 read · 12 write · 11 destructive
List service principals · Create a service principal · Get a service principal · Update a service principal
Authentication
4225 read · 5 write · 12 destructive
List a user's authentication methods · Revoke a user's sign-in sessions · Reset a user's password · List authentication strength policies
Roles
2816 read · 3 write · 9 destructive
List directory roles · List directory role templates · List directory role definitions · Create a role definition
Policy
2513 read · 8 write · 4 destructive
List conditional access policies · Create a conditional access policy · Update a conditional access policy · Get a conditional access policy
Organization
179 read · 6 write · 2 destructive
Create a domain · List domains · Get a domain · Update a domain
Licensing
74 read · 3 write · 0 destructive
List subscribed SKUs · List group members with licence errors · List a user's licences · Get a subscribed SKU
Audit
55 read · 0 write · 0 destructive
List directory audit logs · List sign-in logs · List provisioning logs · Get one directory audit record
Top actions
The Microsoft 365 Users API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 141 of Microsoft 365 Users's 150 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
m365_graph_users.users_listList users | List users in the tenant directory. Graph returns a default property subset; name others with `select`. | read | identity.user.list474 connectors |
m365_graph_users.groups_listList groups | List groups in the tenant directory. | read | identity.group.list262 connectors |
m365_graph_users.directory_roles_listList directory roles | List directory roles in the tenant directory. Only roles that have been activated in the tenant appear here. | read | identity.role.list184 connectors |
m365_graph_users.users_createCreate a user | Create a user in the tenant directory. | write | identity.user.create262 connectors |
m365_graph_users.groups_createCreate a group | Create a group in the tenant directory. | write | identity.group.create205 connectors |
m365_graph_users.service_principals_listList service principals | List service principals in the tenant directory. These are the tenant's enterprise applications. | read | identity.service_account.list35 connectors |
m365_graph_users.devices_listList devices | List devices in the tenant directory. | read | device.endpoint.list65 connectors |
m365_graph_users.role_definitions_listList directory role definitions | List directory role definitions in the tenant directory. Every built-in and custom role, with the resource actions each grants. | read | identity.role.list184 connectors |
m365_graph_users.users_deleteDelete a user | Delete a user. Directory objects go to deletedItems for 30 days. | destructive | identity.user.delete253 connectors |
m365_graph_users.org_contacts_listList organizational contacts | List organizational contacts in the tenant directory. These are directory mail contacts synced from on-premises, not personal contacts. | read | crm.contact.list177 connectors |
m365_graph_users.subscribed_skusList subscribed SKUs | List the licence SKUs the tenant has bought, with consumed and enabled unit counts. This is how you find out how many seats are left. Not paged by Graph. | read | identity.license.list10 connectors |
m365_graph_users.service_principals_createCreate a service principal | Create a service principal in the tenant directory. | write | identity.service_account.create32 connectors |
Try it
Prompts to paste into Claude.
Each one names the Microsoft 365 Users actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Microsoft 365 Users devices have not checked in for a week?
calls
m365_graph_users.devices_list - Plandestructive
Lock down a suspected compromised account in Microsoft 365 Users. Ask me before anything is sent or changed.
calls
m365_graph_users.users_getm365_graph_users.audit_sign_insm365_graph_users.users_auth_methodsm365_graph_users.users_updatem365_graph_users.users_revoke_sessions+1 more - Plandestructive
Move a user to a new department, manager and group in Microsoft 365 Users. Ask me before anything is sent or changed.
calls
m365_graph_users.users_getm365_graph_users.users_member_ofm365_graph_users.users_updatem365_graph_users.users_set_managerm365_graph_users.groups_add_member+1 more - Writewrite
Create a user in Microsoft 365 Users. Show me exactly what you will send before you save it.
calls
m365_graph_users.users_create - Across systemsread
Which contacts are in both Microsoft 365 Users and HaloPSA, and how many are in only one of them?
calls
m365_graph_users.org_contacts_listhalopsa.users.list
Across your systems
Microsoft 365 Users, joined to the rest of your business.
One ask fetches from Microsoft 365 Users and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
Which contacts are in both Microsoft 365 Users and HaloPSA, and how many are in only one of them?
m365_graph_users.org_contacts_list+halopsa.users.list, oncrm.contact· HaloPSAWhich contacts are in both Microsoft 365 Users and NetSuite, and how many are in only one of them?
m365_graph_users.org_contacts_list+netsuite.views.contacts, oncrm.contact· NetSuite
identity.user 517identity.group 239crm.contact 192identity.role 107device.endpoint 69platform.tenant 67identity.service_account 23identity.license 4ask { intent: "which contacts are in both Microsoft 365 Users and HaloPSA, and how many are in only one of them", steps: [ { action: "m365_graph_users.org_contacts_list", as: "people", input: {}, limit: 100, max_pages: 5 }, { action: "halopsa.users.list", as: "people2", input: {}, limit: 100, max_pages: 5 }, { join: { left: "people", right: "people2", on: "crm.contact", group_by: "people.email", select: ["people.email", "count(people2.id) as in_halopsa"] } } ]}The plan store
Ready-made plans for Microsoft 365 Users.
9 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.
Report subscribed SKUs against actual per-user assignment
Use it when Someone asks which licences are bought, which are actually assigned, and where seats are being wasted.
Audit who holds privileged directory roles
Use it when A security or compliance review asks who currently holds admin roles and how that privilege was granted.
Find dormant accounts and disable them after approval
Use it when A periodic security review needs dormant or unused accounts identified and switched off.
A person decides
Disable the enabled accounts with no interactive sign-in since window start, based on enabled users accounts checked against recent sign ins sign-in records.
Invite an external guest and place them in a group
Use it when An external partner or contractor needs guest access to the tenant and membership of a specific collaboration group.
A person decides
Invite external guest guest email into the tenant and add them to group group id.
Onboard a new employee with licence, manager and groups
Use it when A new starter needs an account created, licensed, placed under a manager and added to their team group in one pass.
A person decides
Assign licence sku id to the newly created account user principal name. This consumes a paid seat.
Grant a directory role to a user after sign-off
Use it when Someone needs to be given an admin role and the grant must be signed off and evidenced.
A person decides
Grant the role displayName to displayName (userPrincipalName) at scope directory scope id.
Offboard a departing user and reclaim their licences
Use it when Someone has left the organisation and their access must be cut off and their paid seat reclaimed.
A person decides
Disable displayName (userPrincipalName), revoke all their sessions and remove licence sku id.
Lock down a suspected compromised account
Use it when An account is suspected of being compromised and access must be cut immediately with evidence captured first.
A person decides
Lock down displayName (userPrincipalName): disable the account, revoke all sessions and force a password reset.
Move a user to a new department, manager and group
Use it when An existing employee changes department or reporting line and their directory record and groups must follow.
A person decides
Remove displayName (userPrincipalName) from group old group id.
account { op: "plans.install", slug: "m365_graph_users-licence-usage-report" }
# then ask for it by name; a schedule can run it on a timetableGovernance for Microsoft 365 Users
Destructive actions wait for a yes.
53 Microsoft 365 Users actions are destructive. The first 10:
- Delete a user
m365_graph_users.users_delete - Delete a group
m365_graph_users.groups_delete - Delete a role definition
m365_graph_users.role_definitions_delete - Delete a service principal
m365_graph_users.service_principals_delete - Delete a device
m365_graph_users.devices_delete - Delete an application
m365_graph_users.applications_delete - Remove a member from a group
m365_graph_users.groups_remove_member - Delete a domain
m365_graph_users.domains_delete - Delete a role assignment
m365_graph_users.role_assignments_delete - Remove a member from a directory role
m365_graph_users.directory_roles_remove_member
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete a user?
intent: the user asked me to delete a user
account { op: "keys.create", name: "m365-graph-users-agent", allowed_actions: ["m365_graph_users.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "m365_graph_users.users_delete", approver: "[email protected]" }, { match: "m365_graph_users.groups_delete", approver: "[email protected]" }, { match: "m365_graph_users.role_definitions_delete", approver: "[email protected]" } ]}Cost
What Microsoft 365 Users costs on actionlake.
Every Microsoft 365 Users action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Microsoft 365 Users refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 274 Microsoft 365 Users actions
- 106actions pageeach page of a long list is one call
- 155reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Microsoft 365 Users action.
274 actions by area: the id your agent calls, what it does, and its effect.
Directory106
m365_graph_users.administrative_units_add_memberAdd a member to an administrative unitwritem365_graph_users.administrative_units_createCreate an administrative unitwritem365_graph_users.administrative_units_deleteDelete an administrative unitdestructivem365_graph_users.administrative_units_getGet an administrative unitreadm365_graph_users.administrative_units_listList administrative unitsreadm365_graph_users.administrative_units_membersList an administrative unit's membersreadm365_graph_users.administrative_units_remove_memberRemove a member from an administrative unitdestructivem365_graph_users.administrative_units_updateUpdate an administrative unitwritem365_graph_users.batchRun up to 20 Graph requests in one callwritem365_graph_users.devices_add_registered_ownerAdd a registered owner to a devicewritem365_graph_users.devices_createCreate a devicewritem365_graph_users.devices_deleteDelete a devicedestructivem365_graph_users.devices_deltaTrack device changes (delta)readm365_graph_users.devices_extensionsList a device's open extensionsreadm365_graph_users.devices_getGet a devicereadm365_graph_users.devices_listList devicesreadm365_graph_users.devices_member_ofList a device's groupsreadm365_graph_users.devices_registered_ownersList a device's registered ownersreadm365_graph_users.devices_registered_usersList a device's registered usersreadm365_graph_users.devices_remove_registered_ownerRemove a registered owner from a devicedestructivem365_graph_users.devices_transitive_member_ofList a device's groups including nestedreadm365_graph_users.devices_updateUpdate a devicewritem365_graph_users.directory_deleted_groupsList deleted groupsreadm365_graph_users.directory_deleted_item_getGet a deleted directory objectreadm365_graph_users.directory_deleted_item_purgePermanently delete a directory objectdestructivem365_graph_users.directory_deleted_itemsList deleted usersreadm365_graph_users.directory_objects_deleteDelete a directory objectdestructivem365_graph_users.directory_objects_getGet a directory objectreadm365_graph_users.directory_objects_get_available_extension_propertiesList available directory extension propertiesreadm365_graph_users.directory_objects_get_by_idsResolve directory objects by idreadm365_graph_users.directory_objects_validate_propertiesValidate a group's display name and aliasreadm365_graph_users.groups_add_memberAdd a member to a groupwritem365_graph_users.groups_add_ownerAdd an owner to a groupwritem365_graph_users.groups_check_member_groupsCheck which of these groups a group is inreadm365_graph_users.groups_createCreate a groupwritem365_graph_users.groups_deleteDelete a groupdestructivem365_graph_users.groups_deltaTrack group changes (delta)readm365_graph_users.groups_extension_createCreate a group open extensionwritem365_graph_users.groups_extension_deleteDelete a group open extensiondestructivem365_graph_users.groups_extensionsList a group's open extensionsreadm365_graph_users.groups_getGet a groupreadm365_graph_users.groups_get_member_groupsList every group a group is transitively inreadm365_graph_users.groups_get_member_objectsList every directory object a group is inreadm365_graph_users.groups_listList groupsreadm365_graph_users.groups_member_ofList a group's parent groupsreadm365_graph_users.groups_membersList a group's direct membersreadm365_graph_users.groups_ownersList a group's ownersreadm365_graph_users.groups_photoGet a group's photo metadatareadm365_graph_users.groups_remove_memberRemove a member from a groupdestructivem365_graph_users.groups_remove_ownerRemove an owner from a groupdestructivem365_graph_users.groups_renewRenew a group's expirationwritem365_graph_users.groups_searchSearch groupsreadm365_graph_users.groups_setting_createCreate a group settingwritem365_graph_users.groups_setting_deleteDelete a group settingdestructivem365_graph_users.groups_setting_getGet one group settingreadm365_graph_users.groups_setting_updateUpdate a group settingwritem365_graph_users.groups_settingsList a group's settingsreadm365_graph_users.groups_transitive_member_ofList a group's parents including nestedreadm365_graph_users.groups_transitive_membersList a group's members including nestedreadm365_graph_users.groups_updateUpdate a groupwritem365_graph_users.invitations_createInvite a guest userwritem365_graph_users.invitations_listList guest invitationsreadm365_graph_users.org_contacts_direct_reportsList an organizational contact's direct reportsreadm365_graph_users.org_contacts_getGet an organizational contactreadm365_graph_users.org_contacts_listList organizational contactsreadm365_graph_users.org_contacts_managerGet an organizational contact's managerreadm365_graph_users.org_contacts_member_ofList an organizational contact's groupsreadm365_graph_users.org_contacts_transitive_member_ofList an organizational contact's groups including nestedreadm365_graph_users.users_check_member_groupsCheck which of these groups a user is inreadm365_graph_users.users_check_member_objectsCheck which of these directory objects a user is inreadm365_graph_users.users_createCreate a userwritem365_graph_users.users_created_objectsList objects a user createdreadm365_graph_users.users_deleteDelete a userdestructivem365_graph_users.users_deltaTrack user changes (delta)readm365_graph_users.users_direct_reportsList a user's direct reportsreadm365_graph_users.users_export_personal_dataExport a user's personal datawritem365_graph_users.users_extension_createCreate a user open extensionwritem365_graph_users.users_extension_deleteDelete a user open extensiondestructivem365_graph_users.users_extension_getGet one user open extensionreadm365_graph_users.users_extensionsList a user's open extensionsreadm365_graph_users.users_getGet a userreadm365_graph_users.users_get_member_groupsList every group a user is transitively inreadm365_graph_users.users_get_member_objectsList every directory object a user is transitively inreadm365_graph_users.users_listList usersreadm365_graph_users.users_managerGet a user's managerreadm365_graph_users.users_member_ofList a user's direct groupsreadm365_graph_users.users_on_premises_syncGet a user's on-premises sync behaviourreadm365_graph_users.users_owned_devicesList devices a user ownsreadm365_graph_users.users_owned_objectsList objects a user ownsreadm365_graph_users.users_peopleList people relevant to a userreadm365_graph_users.users_photoGet a user's photo metadatareadm365_graph_users.users_photo_deleteDelete a user's photodestructivem365_graph_users.users_photosList a user's photo sizesreadm365_graph_users.users_registered_devicesList devices registered to a userreadm365_graph_users.users_remove_managerRemove a user's managerdestructivem365_graph_users.users_restoreRestore a deleted directory objectwritem365_graph_users.users_retry_provisioningRetry a user's service provisioningwritem365_graph_users.users_searchSearch usersreadm365_graph_users.users_service_provisioning_errorsList a user's provisioning errorsreadm365_graph_users.users_set_managerSet a user's managerwritem365_graph_users.users_settingsGet a user's settingsreadm365_graph_users.users_settings_updateUpdate a user's settingswritem365_graph_users.users_sponsor_ofList users this user sponsorsreadm365_graph_users.users_sponsorsList a user's sponsorsreadm365_graph_users.users_transitive_member_ofList every group a user is in, including nestedreadm365_graph_users.users_updateUpdate a userwrite
Applications44
m365_graph_users.applications_add_keyAdd a certificate to an applicationwritem365_graph_users.applications_add_ownerAdd an owner to an applicationwritem365_graph_users.applications_add_passwordAdd a client secret to an applicationwritem365_graph_users.applications_createCreate an applicationwritem365_graph_users.applications_deleteDelete an applicationdestructivem365_graph_users.applications_deltaTrack application changes (delta)readm365_graph_users.applications_extension_propertiesList an application's directory extension propertiesreadm365_graph_users.applications_extension_property_createCreate a directory extension propertywritem365_graph_users.applications_extension_property_deleteDelete a directory extension propertydestructivem365_graph_users.applications_federated_credential_createCreate a federated identity credentialwritem365_graph_users.applications_federated_credential_deleteDelete a federated identity credentialdestructivem365_graph_users.applications_federated_identity_credentialsList an application's federated identity credentialsreadm365_graph_users.applications_getGet an applicationreadm365_graph_users.applications_listList applicationsreadm365_graph_users.applications_ownersList an application's ownersreadm365_graph_users.applications_remove_keyRemove a certificate from an applicationdestructivem365_graph_users.applications_remove_ownerRemove an owner from an applicationdestructivem365_graph_users.applications_remove_passwordRemove a client secret from an applicationdestructivem365_graph_users.applications_set_verified_publisherSet an application's verified publisherwritem365_graph_users.applications_updateUpdate an applicationwritem365_graph_users.directory_deleted_applicationsList deleted applicationsreadm365_graph_users.oauth2_permission_grant_createCreate an OAuth2 permission grantwritem365_graph_users.oauth2_permission_grant_deleteDelete an OAuth2 permission grantdestructivem365_graph_users.oauth2_permission_grant_getGet an OAuth2 permission grantreadm365_graph_users.oauth2_permission_grantsList OAuth2 delegated permission grantsreadm365_graph_users.service_principals_add_passwordAdd a secret to a service principalwritem365_graph_users.service_principals_app_role_assigned_toList who is assigned to an enterprise applicationreadm365_graph_users.service_principals_app_role_assignmentsList app roles this service principal holdsreadm365_graph_users.service_principals_assign_app_roleAssign a user or group to an enterprise applicationdestructivem365_graph_users.service_principals_createCreate a service principalwritem365_graph_users.service_principals_delegated_permission_classificationsList a service principal's permission classificationsreadm365_graph_users.service_principals_deleteDelete a service principaldestructivem365_graph_users.service_principals_deltaTrack service principal changes (delta)readm365_graph_users.service_principals_getGet a service principalreadm365_graph_users.service_principals_listList service principalsreadm365_graph_users.service_principals_member_ofList a service principal's groups and rolesreadm365_graph_users.service_principals_oauth2_grantsList a service principal's delegated grantsreadm365_graph_users.service_principals_owned_objectsList objects a service principal ownsreadm365_graph_users.service_principals_ownersList a service principal's ownersreadm365_graph_users.service_principals_remove_app_role_assignmentRemove an assignment from an enterprise applicationdestructivem365_graph_users.service_principals_remove_passwordRemove a secret from a service principaldestructivem365_graph_users.service_principals_updateUpdate a service principalwritem365_graph_users.users_app_role_assignmentsList a user's app role assignmentsreadm365_graph_users.users_oauth2_grantsList a user's delegated permission grantsread
Authentication42
m365_graph_users.authentication_methods_policyGet the authentication methods policyreadm365_graph_users.authentication_strength_policiesList authentication strength policiesreadm365_graph_users.organization_certificate_based_authList certificate-based auth configurationreadm365_graph_users.users_auth_email_createRegister an email authentication methodwritem365_graph_users.users_auth_email_deleteDelete an email authentication methoddestructivem365_graph_users.users_auth_email_getGet one email authentication methodreadm365_graph_users.users_auth_email_listList a user's email authentication methodsreadm365_graph_users.users_auth_fido2_deleteDelete a FIDO2 security keydestructivem365_graph_users.users_auth_fido2_getGet one FIDO2 security keyreadm365_graph_users.users_auth_fido2_listList a user's FIDO2 security keysreadm365_graph_users.users_auth_method_getGet one authentication methodreadm365_graph_users.users_auth_methodsList a user's authentication methodsreadm365_graph_users.users_auth_microsoft_authenticator_deleteDelete a Microsoft Authenticator registrationdestructivem365_graph_users.users_auth_microsoft_authenticator_getGet one Microsoft Authenticator registrationreadm365_graph_users.users_auth_microsoft_authenticator_listList a user's Microsoft Authenticator registrationsreadm365_graph_users.users_auth_operationsList authentication long-running operationsreadm365_graph_users.users_auth_password_deleteDelete a password methoddestructivem365_graph_users.users_auth_password_getGet one password methodreadm365_graph_users.users_auth_password_listList a user's password methodsreadm365_graph_users.users_auth_password_resetReset a user's passwordwritem365_graph_users.users_auth_phone_createRegister a phone authentication methodwritem365_graph_users.users_auth_phone_deleteDelete a phone authentication methoddestructivem365_graph_users.users_auth_phone_disable_smsDisable SMS sign-in on a phone methoddestructivem365_graph_users.users_auth_phone_enable_smsEnable SMS sign-in on a phone methodwritem365_graph_users.users_auth_phone_getGet one phone authentication methodreadm365_graph_users.users_auth_phone_listList a user's phone authentication methodsreadm365_graph_users.users_auth_platform_credential_deleteDelete a platform credentialdestructivem365_graph_users.users_auth_platform_credential_getGet one platform credentialreadm365_graph_users.users_auth_platform_credential_listList a user's platform credentialsreadm365_graph_users.users_auth_software_oath_deleteDelete a software OATH tokendestructivem365_graph_users.users_auth_software_oath_getGet one software OATH tokenreadm365_graph_users.users_auth_software_oath_listList a user's software OATH tokensreadm365_graph_users.users_auth_temporary_access_pass_createRegister a Temporary Access Passdestructivem365_graph_users.users_auth_temporary_access_pass_deleteDelete a Temporary Access Passdestructivem365_graph_users.users_auth_temporary_access_pass_getGet one Temporary Access Passreadm365_graph_users.users_auth_temporary_access_pass_listList a user's Temporary Access Passesreadm365_graph_users.users_auth_windows_hello_for_business_deleteDelete a Windows Hello for Business credentialdestructivem365_graph_users.users_auth_windows_hello_for_business_getGet one Windows Hello for Business credentialreadm365_graph_users.users_auth_windows_hello_for_business_listList a user's Windows Hello for Business credentialsreadm365_graph_users.users_authenticationGet a user's authentication containerreadm365_graph_users.users_change_passwordChange the signed-in user's passwordwritem365_graph_users.users_revoke_sessionsRevoke a user's sign-in sessionsdestructive
Roles28
m365_graph_users.administrative_units_add_scoped_role_memberGrant a scoped role in an administrative unitdestructivem365_graph_users.administrative_units_remove_scoped_role_memberRevoke a scoped role in an administrative unitdestructivem365_graph_users.administrative_units_scoped_role_membersList an administrative unit's scoped role membersreadm365_graph_users.directory_role_templates_getGet a directory role templatereadm365_graph_users.directory_role_templates_listList directory role templatesreadm365_graph_users.directory_roles_activateActivate a directory rolewritem365_graph_users.directory_roles_add_memberAdd a member to a directory roledestructivem365_graph_users.directory_roles_getGet a directory rolereadm365_graph_users.directory_roles_listList directory rolesreadm365_graph_users.directory_roles_membersList a directory role's membersreadm365_graph_users.directory_roles_remove_memberRemove a member from a directory roledestructivem365_graph_users.directory_roles_scoped_membersList a directory role's AU-scoped membersreadm365_graph_users.role_assignment_schedule_request_cancelCancel a role activation requestdestructivem365_graph_users.role_assignment_schedule_request_createRequest a role activation or assignmentdestructivem365_graph_users.role_assignment_schedule_requestsList role activation requestsreadm365_graph_users.role_assignment_schedulesList active role assignment schedulesreadm365_graph_users.role_assignments_createCreate a role assignmentdestructivem365_graph_users.role_assignments_deleteDelete a role assignmentdestructivem365_graph_users.role_assignments_getGet a role assignmentreadm365_graph_users.role_assignments_listList directory role assignmentsreadm365_graph_users.role_definitions_createCreate a role definitionwritem365_graph_users.role_definitions_deleteDelete a role definitiondestructivem365_graph_users.role_definitions_getGet a role definitionreadm365_graph_users.role_definitions_listList directory role definitionsreadm365_graph_users.role_definitions_updateUpdate a role definitionwritem365_graph_users.role_eligibility_schedulesList eligible role assignmentsreadm365_graph_users.role_resource_namespacesList RBAC resource namespacesreadm365_graph_users.users_scoped_role_member_ofList a user's administrative-unit-scoped rolesread
Policy25
m365_graph_users.api_connectors_createCreate an API connectorwritem365_graph_users.api_connectors_deleteDelete an API connectordestructivem365_graph_users.api_connectors_getGet an API connectorreadm365_graph_users.api_connectors_listList API connectorsreadm365_graph_users.api_connectors_updateUpdate an API connectorwritem365_graph_users.authentication_context_class_referencesList authentication context class referencesreadm365_graph_users.b2x_user_flowsList self-service sign-up user flowsreadm365_graph_users.conditional_access_policies_createCreate a conditional access policywritem365_graph_users.conditional_access_policies_deleteDelete a conditional access policydestructivem365_graph_users.conditional_access_policies_getGet a conditional access policyreadm365_graph_users.conditional_access_policies_listList conditional access policiesreadm365_graph_users.conditional_access_policies_updateUpdate a conditional access policywritem365_graph_users.conditional_access_templatesList conditional access policy templatesreadm365_graph_users.groups_lifecycle_policiesList group lifecycle policiesreadm365_graph_users.groups_lifecycle_policy_createCreate a group lifecycle policywritem365_graph_users.groups_lifecycle_policy_deleteDelete a group lifecycle policydestructivem365_graph_users.groups_lifecycle_policy_getGet a group lifecycle policyreadm365_graph_users.groups_lifecycle_policy_updateUpdate a group lifecycle policywritem365_graph_users.identity_providersList identity providersreadm365_graph_users.named_locations_createCreate a named locationwritem365_graph_users.named_locations_deleteDelete a named locationdestructivem365_graph_users.named_locations_getGet a named locationreadm365_graph_users.named_locations_listList named locationsreadm365_graph_users.named_locations_updateUpdate a named locationwritem365_graph_users.users_agreement_acceptancesList a user's terms-of-use acceptancesread
Organization17
m365_graph_users.domains_createCreate a domainwritem365_graph_users.domains_deleteDelete a domaindestructivem365_graph_users.domains_force_deleteForce-delete a domaindestructivem365_graph_users.domains_getGet a domainreadm365_graph_users.domains_listList domainsreadm365_graph_users.domains_name_referencesList objects using a domainreadm365_graph_users.domains_promotePromote a domain to primarywritem365_graph_users.domains_service_configuration_recordsList a domain's service configuration recordsreadm365_graph_users.domains_updateUpdate a domainwritem365_graph_users.domains_verification_dns_recordsList a domain's verification DNS recordsreadm365_graph_users.domains_verifyVerify a domainwritem365_graph_users.organizationGet the tenant organizationreadm365_graph_users.organization_brandingGet the tenant's sign-in brandingreadm365_graph_users.organization_branding_localizationsList localized sign-in brandingreadm365_graph_users.organization_getGet one organization recordreadm365_graph_users.organization_set_mdm_authoritySet the mobile device management authoritywritem365_graph_users.organization_updateUpdate the organizationwrite
Licensing7
m365_graph_users.groups_assign_licenseAssign or remove group-based licenceswritem365_graph_users.groups_members_with_license_errorsList group members with licence errorsreadm365_graph_users.subscribed_sku_getGet a subscribed SKUreadm365_graph_users.subscribed_skusList subscribed SKUsreadm365_graph_users.users_assign_licenseAssign or remove user licenceswritem365_graph_users.users_license_detailsList a user's licencesreadm365_graph_users.users_reprocess_licenseReprocess a user's group-based licenceswrite
Audit5
m365_graph_users.audit_directory_audit_getGet one directory audit recordreadm365_graph_users.audit_directory_auditsList directory audit logsreadm365_graph_users.audit_provisioningList provisioning logsreadm365_graph_users.audit_sign_in_getGet one sign-in recordreadm365_graph_users.audit_sign_insList sign-in logsread
Questions
The Microsoft 365 Users MCP server, answered.
Is there a Microsoft 365 Users MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 274 Microsoft 365 Users actions across directory, applications, authentication and roles, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Microsoft 365 Users.
What do I need to connect Microsoft 365 Users?
Entra application (client) id and Entra client secret. Plus your tenant id. The free call account { op: "connections.requirements", service: "m365_graph_users" } lists exactly what to paste.
Can an AI agent delete or change things in Microsoft 365 Users?
Only if its key allows it, and only with an explicit confirmation. 53 Microsoft 365 Users actions are destructive, including delete a user, delete a group and delete a role definition. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Microsoft 365 Users API limit?
actionlake paces every call to the limits in the Microsoft 365 Users service file: 10,000 calls per 10 minutes per connection. Repeated reads are answered from cache (155 Microsoft 365 Users actions can be), which never reaches Microsoft 365 Users.
What does a Microsoft 365 Users action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (106 Microsoft 365 Users actions page). Cache hits, searches, dry runs and calls Microsoft 365 Users refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Microsoft 365 Users API does it cover?
The Microsoft 365 Users API v1.0 at graph.microsoft.com/v1.0. It is built from Microsoft 365 Users's documentation as read on 8 September 2026. 274 actions in 8 areas, each one in the signed service file (version 1.0.0).
Can I combine Microsoft 365 Users with my other systems?
Yes. ask joins Microsoft 365 Users to HaloPSA or NetSuite on the same customer and returns the answer rather than every row. Microsoft 365 Users maps crm.contact, which 192 other connectors also map.
Does actionlake keep my Microsoft 365 Users data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Microsoft 365 Users credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Microsoft 365 Users today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.