ActiveDirectoryMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AD_MCP_CONFIG | Yes | Path to the Active Directory MCP configuration JSON file |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_usersA | List users in Active Directory with optional filtering. This tool retrieves users from the specified organizational unit or entire domain. Supports custom LDAP filters and attribute selection for targeted queries. Example:
Returns user information including account status, group memberships, and security details. |
| get_userA | Get detailed information about a specific user. Retrieves comprehensive user information including attributes, group memberships, account status, and computed security fields. Example:
Returns detailed user profile with security assessment. |
| create_userA | Create a new user account in Active Directory. Creates a user with specified attributes in the designated organizational unit. Sets the user principal name, sets the initial password and enables the account. Example:
Supports additional attributes and custom OU placement. |
| modify_userA | Modify user attributes and properties. Updates existing user attributes including personal information, security settings, and organizational data. Example:
The password cannot be changed with this tool; use reset_user_password instead. |
| delete_userA | Delete a user account from Active Directory. Permanently removes user account and all associated data. Use with caution. Example:
Validates user existence before deletion. |
| enable_userB | Enable a user account. Activates a disabled user account by modifying the userAccountControl attribute. Example:
Allows user to log in and access domain resources. |
| disable_userA | Disable a user account. Deactivates a user account preventing login while preserving account data. Example:
Useful for temporary access suspension. |
| reset_user_passwordB | Reset user password with optional auto-generation. Resets user password to specified value or generates secure random password. Optionally forces password change at next logon. Example:
Generated passwords meet complexity requirements. |
| get_user_groupsC | Get groups that a user is member of. Retrieves detailed group membership information including group types, scopes, and descriptions. Example:
Returns comprehensive group membership analysis. |
| list_groupsB | List groups in Active Directory with filtering options. Retrieves security and distribution groups with detailed information about scope, type, and membership counts. Example:
Shows group hierarchy and management information. |
| get_groupA | Get detailed information about a specific group. Retrieves comprehensive group information including members, parent groups, and management settings. Example:
Returns group configuration and membership details. |
| create_groupA | Create a new group in Active Directory. Creates security or distribution groups with specified scope and attributes. Supports Global, DomainLocal, and Universal scopes. Example:
Fails if a group with that name already exists. |
| modify_groupC | Modify group attributes and properties. Updates group information including description, managed by settings, and other attributes. Example:
Returns an error if the group is not found. |
| delete_groupB | Delete a group from Active Directory. Permanently removes the group object. Example:
Validates group existence before deletion. |
| add_group_memberA | Add a member to a group. Adds user, computer, or group as member of specified group. Example:
Fails if the member is already in the group. |
| remove_group_memberB | Remove a member from a group. Removes specified member from group membership. Example:
Validates membership before removal. |
| get_group_membersB | Get members of a group with optional recursion. Lists all group members with option to include nested group members. Example:
Shows detailed member information and nesting levels. |
| list_computersB | List computer objects in Active Directory. Retrieves computer accounts with operating system information, last logon, and security status. Example:
Shows computer health and security posture. |
| get_computerB | Get detailed information about a specific computer. Retrieves comprehensive computer information including OS details, last logon, group memberships, and security settings. Example:
Returns complete computer profile. |
| create_computerA | Create a new computer object in Active Directory. Creates computer account with appropriate attributes and service principal names. Configures DNS hostname and enables account. Example:
Fails if a computer with that name already exists. |
| modify_computerC | Modify computer attributes and properties. Updates computer information including description, location, and management settings. Example:
Returns an error if the computer is not found. |
| delete_computerB | Delete a computer object from Active Directory. Permanently removes computer account and trust relationship. Example:
Cleans up stale computer accounts. |
| enable_computerB | Enable a computer account. Activates disabled computer account allowing domain authentication. Example:
Restores computer trust relationship. |
| disable_computerA | Disable a computer account. Deactivates computer account preventing domain authentication. Example:
Useful for temporary computer isolation. |
| reset_computer_passwordA | Reset computer account password. Sets a new random 120-character machine password on the computer account (unicodePwd) and returns it once in the response (sensitive; do not log it). Requires an LDAPS/StartTLS connection; refused otherwise. The machine's secure channel breaks, so it must be rejoined or re-synced. Example:
Returns an error if the computer is not found. |
| get_stale_computersA | Get computers that haven't logged in for specified days. Identifies inactive computer accounts that may need cleanup. Example:
Helps maintain clean computer account inventory. |
| list_organizational_unitsC | List Organizational Units in Active Directory. Retrieves OU hierarchy with management information and policy links. Example:
Shows OU structure and relationships. |
| get_organizational_unitB | Get detailed information about a specific OU. Retrieves comprehensive OU information including child objects, GP links, and management settings. Example:
Returns complete OU configuration. |
| create_organizational_unitB | Create a new Organizational Unit. Creates OU with specified attributes and management settings. Example:
Establishes OU hierarchy. |
| modify_organizational_unitB | Modify OU attributes and properties. Updates OU information including description, managed by, and location details. Example:
Returns an error if the OU is not found. |
| delete_organizational_unitA | Delete an Organizational Unit. Removes OU and optionally all contained objects. Use with caution. Example:
Validates OU emptiness unless force deletion specified. |
| move_organizational_unitB | Move an OU to a new parent. Relocates OU within domain hierarchy while preserving contents. Example:
Maintains OU relationships during move. |
| get_organizational_unit_contentsA | Get contents of an OU. Lists all objects within OU including users, groups, computers, and sub-OUs. Example:
Provides OU inventory and organization. |
| get_domain_infoB | Get domain information and security settings. Retrieves domain configuration including password policies, lockout settings, and security parameters. Example:
Returns comprehensive domain security posture. |
| get_privileged_groupsB | Get information about privileged groups. Identifies and analyzes high-privilege groups including Domain Admins, Enterprise Admins, and other administrative groups. Example:
Essential for security auditing and compliance. |
| get_user_permissionsC | Get effective permissions for a user. Analyzes user's effective permissions through group memberships and identifies potential security risks. Example:
Provides security risk assessment. |
| get_inactive_usersB | Get users who haven't logged in for specified days. Identifies inactive user accounts that may pose security risks. Example:
Critical for security hygiene and compliance. |
| get_password_policy_violationsA | Get users with password policy violations. Identifies accounts with password policy non-compliance including expired passwords, never-expiring passwords, and policy violations. Example:
Essential for password security compliance. |
| audit_admin_accountsB | Audit administrative accounts for security compliance. Comprehensive security audit of privileged accounts including access patterns, policy compliance, and risk assessment. Example:
Critical for administrative account security. |
| test_connectionB | Test LDAP connection and get server information. Validates Active Directory connectivity and retrieves server status. Example:
Useful for troubleshooting and monitoring. |
| healthA | Health check for Active Directory MCP server. Returns server status, LDAP connectivity, and system health information. Example:
Essential for monitoring and alerting. |
| get_schema_infoB | Get schema information for all available tools. Retrieves comprehensive information about all tools, their parameters, and capabilities. Example:
Useful for API documentation and integration. |
| get_nested_group_membersA | Get all direct and nested members of a group. Resolves the group by sAMAccountName and evaluates transitive membership on the domain controller in a single query (LDAP_MATCHING_RULE_IN_CHAIN), so deep or cyclic nesting is handled without client-side recursion. Results are confined to the configured base DN and capped by max_list_results (see "truncated"). Example:
Returns members with dn, sAMAccountName, displayName and type. |
| get_rootdse_infoA | Get rootDSE information from the domain controller. Returns naming contexts, DC host name, functional levels, supported LDAP versions and SASL mechanisms, current time and sync/global-catalog state. Takes no input; a fixed attribute allow-list is read. Example:
Useful to confirm which DC answered and its functional level. |
| get_tls_postureA | Report the TLS posture of the connection to the domain controller. Returns the configured values (use_ssl, ssl_port, enable_tls, validate_certificate, whether a CA file is set, require_secure_connection), the live channel (ldaps, starttls or plaintext, plus TLS version and cipher when available) and a list of findings {severity, code, message}. Takes no input; no secrets or paths are returned. Example:
Useful to verify that the bind is encrypted and the certificate is validated. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 45 tools
Most tools target distinct AD object types and actions, but there is real overlap: get_group_members(recursive=True) and get_nested_group_members both resolve nested membership, and test_connection, health, get_domain_info, get_rootdse_info, and get_tls_posture all report partially overlapping connectivity/domain posture information. list_users/list_computers and get_organizational_unit_contents also overlap on object inventory.
The set mostly follows a predictable verb_noun convention: list_*, get_*, create_*, modify_*, delete_*, enable_*, disable_*, add_*, remove_*, reset_*, audit_*. Minor deviations like health and get_schema_info are noticeable but do not make the naming scheme confusing.
45 tools is heavy for an MCP server and exceeds the comfortable range, especially given several overlapping diagnostic and group-membership tools. Active Directory is broad, but this surface could be consolidated to reduce redundancy.
The server covers core AD lifecycle operations for users, groups, computers, and OUs, plus memberships, password resets, security auditing, and domain diagnostics. Minor gaps remain such as moving user/computer objects between OUs or richer search/move semantics, but the core administrative and security workflows are well represented.