Microsoft Active Directory MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Microsoft Active Directory MCP Servershow me all users who haven't logged in for 90 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Microsoft Active Directory MCP Server — 100 Essential Tools
A complete, production-ready, open-source Model Context Protocol (MCP) server for Microsoft Active Directory Domain Services (AD DS) featuring exactly 100 functional tools for directory administration, automation, security auditing, health diagnostics, and compliance reporting.
Designed to allow AI agents (Claude Desktop, Cursor, Antigravity, custom agents) to securely interact with Active Directory using natural language while enforcing least-privilege, write-approval workflows, and immutable audit logs.
1. Destaques e Funcionalidades (Key Features)
100 Ferramentas 100% Funcionais: Nenhuma ferramenta fictícia ou apenas mock. Todas possuem validação estrita, tratamento de erro, timeouts e saída estruturada.
Três Modos de Operação:
READ_ONLY(Padrão): Consultas, pesquisas e relatórios. Operações de alteração são bloqueadas por segurança.WRITE_APPROVAL: Ações administrativas geram tokens criptográficos de confirmação de uso único com expiração (5 min) exigindo aprovação explícita.FULL_ADMIN: Execuções administrativas diretas para pipelines de automação, respeitando proteções contra exclusão acidental.
Proteção de Objetos Críticos: Proteção nativa contra exclusão ou alteração de contas e grupos vitais (
Administrator,krbtgt,Domain Admins,Enterprise Admins,OU=Domain Controllers, etc.).Arquitetura Híbrida: Executa nativamente no Windows com módulos RSAT e fallback via .NET
DirectoryServices/ADSI, além de suportar conexões remotas via LDAP/LDAPS multiplataforma.Prevenção contra Injeção: Higienização contra LDAP Injection (RFC 4515) e execução segura de comandos PowerShell com
-EncodedCommandUTF-16LE.Modo Dry-Run: Permite simulação prévia (
dry_run=true) em qualquer ferramenta de escrita para avaliar impacto antes de aplicar alterações.Auditoria Estruturada em JSON: Registro em tempo real com
correlation_id, timestamps, operador e mascaramento de senhas e dados sensíveis.
Related MCP server: safe-runbook-mcp
2. Arquitetura do Sistema
┌────────────────────────────────────────────────────────┐
│ AI Agent (Claude, Cursor, etc.) │
└──────────────────────────┬─────────────────────────────┘
│ MCP Protocol (JSON-RPC)
┌──────────────────────────▼─────────────────────────────┐
│ AD MCP SERVER (Python 3.12) │
├────────────────────────────────────────────────────────┤
│ • 100 Tools Registry │
│ • Authorization Gatekeeper (READ_ONLY / APPROVAL) │
│ • Approval Token Manager (HMAC-SHA256 Single-Use) │
│ • Guardrails & Injection Prevention │
│ • Structured Audit Logger (JSON Lines) │
└──────────────────────────┬─────────────────────────────┘
│
┌─────────────┴─────────────┐
▼ ▼
┌─────────────────────────┐ ┌─────────────────────────┐
│ PowerShell RSAT & ADSI │ │ LDAP / LDAPS (ldap3) │
│ (Windows Server / 11) │ │ (Cross-Platform Remote) │
└────────────┬────────────┘ └────────────┬────────────┘
│ │
▼ ▼
┌────────────────────────────────────────────────────────┐
│ Microsoft Active Directory Domain Controllers (DCs) │
└────────────────────────────────────────────────────────┘3. Catálogo das 100 Ferramentas
O servidor MCP implementa exatamente 100 ferramentas organizadas em 10 categorias essenciais (10 ferramentas por categoria):
Categoria 1 — Domínio e Controladores de Domínio (1 a 10)
ad_get_domain_info— Consultar informações detalhadas do domínio atual.ad_list_domains— Listar domínios disponíveis na floresta.ad_get_forest_info— Consultar informações da floresta Active Directory.ad_list_domain_controllers— Listar controladores de domínio (DCs).ad_get_domain_controller_info— Consultar detalhes de um DC específico.ad_test_domain_controller— Verificar disponibilidade de portas e serviços de um DC.ad_get_domain_functional_level— Consultar nível funcional do domínio.ad_get_forest_functional_level— Consultar nível funcional da floresta.ad_get_fsmo_roles— Consultar detentores das 5 funções FSMO.ad_get_domain_trusts— Consultar relações de confiança (Trusts).
Categoria 2 — Usuários (11 a 20)
ad_list_users— Listar usuários com filtros configuráveis.ad_get_user— Consultar detalhes completos de um usuário.ad_search_users— Pesquisar usuários por nome, login, e-mail ou atributo.ad_create_user— Criar novo usuário no Active Directory.ad_update_user— Atualizar atributos de usuário existente.ad_disable_user— Desabilitar conta de usuário.ad_enable_user— Habilitar conta de usuário.ad_delete_user— Excluir conta de usuário com confirmação obrigatória.ad_unlock_user— Desbloquear conta travada por tentativas de senha.ad_reset_user_password— Redefinir senha de usuário com segurança.
Categoria 3 — Grupos e Membros (21 a 30)
ad_list_groups— Listar grupos com filtros de escopo e categoria.ad_get_group— Consultar detalhes e contagem de membros de grupo.ad_create_group— Criar novo grupo no Active Directory.ad_update_group— Atualizar atributos de um grupo.ad_delete_group— Excluir grupo do Active Directory.ad_add_group_member— Adicionar membro(s) a um grupo.ad_remove_group_member— Remover membro(s) de um grupo.ad_list_group_members— Listar membros de grupo (diretos ou recursivos).ad_get_user_groups— Consultar grupos dos quais um usuário faz parte.ad_get_nested_group_membership— Consultar associação recursiva a grupos (aninhados).
Categoria 4 — Computadores e Dispositivos (31 a 40)
ad_list_computers— Listar computadores registrados no domínio.ad_get_computer— Consultar detalhes de um computador.ad_search_computers— Pesquisar computadores por nome, sistema operacional ou OU.ad_create_computer— Criar objeto de computador.ad_update_computer— Atualizar atributos de computador.ad_disable_computer— Desabilitar conta de computador.ad_enable_computer— Habilitar conta de computador.ad_delete_computer— Excluir conta de computador.ad_move_computer— Mover computador entre OUs.ad_get_stale_computers— Identificar computadores inativos há determinado período.
Categoria 5 — Organizational Units (OU) (41 a 50)
ad_list_ous— Listar Unidades Organizacionais (OUs).ad_get_ou— Consultar detalhes de uma OU.ad_create_ou— Criar nova Unidade Organizacional.ad_update_ou— Atualizar atributos de uma OU.ad_delete_ou— Excluir OU com validação de proteção e conteúdo.ad_move_object— Mover qualquer objeto entre OUs.ad_list_ou_objects— Listar objetos contidos em uma OU.ad_get_ou_hierarchy— Consultar árvore da hierarquia de OUs.ad_get_ou_protection_status— Consultar estado da proteção contra exclusão acidental.ad_set_ou_protection— Habilitar ou desabilitar proteção contra exclusão acidental.
Categoria 6 — Group Policy Objects (GPO) (51 a 60)
ad_list_gpos— Listar todas as Group Policy Objects (GPOs).ad_get_gpo— Consultar detalhes de uma GPO.ad_create_gpo— Criar nova GPO.ad_update_gpo— Atualizar configurações suportadas de GPO.ad_delete_gpo— Excluir GPO com confirmação.ad_link_gpo— Vincular GPO a site, domínio ou OU.ad_unlink_gpo— Remover vínculo de GPO.ad_get_gpo_links— Consultar vínculos de GPO em um site, domínio ou OU.ad_get_gpo_report— Gerar relatório detalhado XML ou HTML de GPO.ad_compare_gpos— Comparar configurações de duas GPOs.
Categoria 7 — DNS e Infraestrutura (61 a 70)
ad_list_dns_zones— Listar zonas DNS integradas ao Active Directory.ad_get_dns_zone— Consultar detalhes e configurações de zona DNS.ad_list_dns_records— Listar registros DNS de uma zona.ad_get_dns_record— Consultar registro DNS específico.ad_create_dns_record— Criar registro DNS (A, CNAME, etc.).ad_update_dns_record— Atualizar registro DNS existente.ad_delete_dns_record— Excluir registro DNS de uma zona.ad_test_dns_resolution— Testar resolução de nomes DNS.ad_test_ldap_connectivity— Testar conectividade na porta LDAP/LDAPS.ad_test_kerberos_connectivity— Verificar conectividade Kerberos e estado do cache.
Categoria 8 — Segurança e Auditoria (71 a 80)
ad_get_locked_accounts— Listar contas bloqueadas por tentativas de senha.ad_get_disabled_accounts— Listar todas as contas desabilitadas do domínio.ad_get_password_expiring_users— Identificar senhas próximas do vencimento.ad_get_password_never_expires_users— Identificar contas com 'Senha Nunca Expira'.ad_get_privileged_users— Identificar usuários em grupos privilegiados.ad_get_domain_admins— Consultar membros do grupo 'Domain Admins'.ad_get_admin_count_users— Identificar contas com atributo adminCount=1.ad_get_inactive_users— Identificar usuários sem atividade recente.ad_get_delegated_permissions— Auditar permissões delegadas em objeto ou OU.ad_get_security_group_changes— Consultar alterações em grupos nos logs de eventos.
Categoria 9 — Replicação, Saúde e Diagnóstico (81 a 90)
ad_get_replication_status— Consultar estado geral da replicação.ad_get_replication_partners— Listar parceiros de replicação.ad_get_replication_failures— Identificar falhas de replicação do AD.ad_sync_replication— Solicitar sincronização imediata de replicação.ad_get_dc_services_status— Consultar estado dos serviços essenciais (NTDS, DNS, KDC, etc.).ad_get_dc_event_logs— Consultar eventos recentes nos logs do controlador.ad_get_directory_health— Executar verificações de integridade e saúde do AD.ad_test_secure_channel— Testar canal seguro entre computador e domínio.ad_get_time_sync_status— Verificar sincronização de horário com o PDC Emulator.ad_get_sysvol_status— Verificar disponibilidade das pastas SYSVOL e Netlogon.
Categoria 10 — Relatórios, Inventário e Automação (91 a 100)
ad_generate_domain_inventory— Gerar inventário completo consolidado do domínio.ad_generate_user_report— Gerar relatório detalhado de usuários.ad_generate_group_report— Gerar relatório de grupos e membros.ad_generate_computer_report— Gerar relatório de computadores e sistemas operacionais.ad_generate_gpo_report— Gerar relatório consolidado de todas as GPOs.ad_generate_security_audit_report— Gerar relatório de auditoria de segurança.ad_generate_inactive_accounts_report— Relatório de contas inativas (usuários e computadores).ad_generate_domain_health_report— Relatório executivo de saúde do domínio.ad_compare_directory_snapshots— Comparar inventários de períodos diferentes.ad_run_compliance_assessment— Executar avaliação de conformidade (regras de segurança).
4. Instalação e Configuração Passo a Passo
Pré-requisitos
Python 3.11 ou 3.12+ (Download Python)
Sistema Operacional:
Windows 10/11 ou Windows Server (Recomendado para integração completa via RSAT/ADSI e Credential Vault).
Linux / macOS (Suportado para consultas remotas via LDAP/LDAPS).
Ferramentas RSAT do Active Directory (opcional no cliente, mas altamente recomendado):
# Instalação automática do RSAT no Windows 10/11: powershell -ExecutionPolicy Bypass -File scripts/install_rsat.ps1
Passo 1: Clonar e Instalar Dependências
# 1. Clone o repositório
git clone https://github.com/nks1097/microsoft-active-directory-mcp.git
cd microsoft-active-directory-mcp
# 2. Executar o instalador automático (Windows):
.\scripts\setup_env.bat
# OU fazer a instalação manual com virtualenv:
python -m venv .venv
.\.venv\Scripts\activate
pip install -e ".[dev]"Passo 2: Configurar o Arquivo .env
Copie o modelo .env.example para .env:
copy .env.example .envEdite o arquivo .env com os dados do seu controlador de domínio:
# Modo de Operação (READ_ONLY por padrão para segurança)
AD_MCP_MODE=READ_ONLY
# Endereço e Domínio do Active Directory
AD_SERVER=dc01.corp.contoso.com
AD_DOMAIN=corp.contoso.com
AD_PORT=636
AD_USE_SSL=true
AD_TLS_VALIDATE_CERT=true
# Método de Autenticação Escolhido
AD_AUTH_METHOD=credential_manager
AD_CREDENTIAL_TARGET=AD_MCP_CREDENTIALPasso 3: Onde e Como Colocar a Senha?
O servidor suporta 3 métodos de autenticação. Escolha o mais adequado para o seu cenário:
Método A: Windows Credential Vault (Recomendado para Produção — Sem Senhas em Texto Puro)
Para evitar que senhas administrativas fiquem expostas em arquivos de texto (.env ou mcp_config.json), o servidor utiliza o Cofre de Credenciais do Windows com criptografia DPAPI.
Mantenha no seu
.env:AD_AUTH_METHOD=credential_manager AD_CREDENTIAL_TARGET=AD_MCP_CREDENTIALNo terminal PowerShell, execute o assistente de gravação segura:
powershell -ExecutionPolicy Bypass -File scripts/set_production_credentials.ps1O terminal solicitará as credenciais (a digitação da senha fica oculta):
=== Active Directory MCP - Credential Setup === Digite as credenciais da conta de servico do Active Directory. Usuario (ex: CONTOSO\svc_ad_mcp ou svc_ad@corp.contoso.com): CONTOSO\svc_ad_mcp Senha da conta (a digitacao ficara oculta): ************** Credencial para 'CONTOSO\svc_ad_mcp' armazenada com sucesso no Windows Credential Manager.
Pronto! A senha foi gravada com criptografia de sistema operacional vinculada ao seu usuário Windows. O servidor MCP lê a senha da memória criptografada automaticamente em tempo de execução. Você não precisa colocar senha no .env nem no arquivo de configuração do Claude/Cursor.
Método B: Autenticação Integrada Windows / Kerberos / SSPI (Sem Senha!)
Se você está executando em uma máquina ingressada no domínio (domain-joined) com um usuário que já possui permissão de leitura no Active Directory:
Configure no
.env:AD_AUTH_METHOD=windows_integratedDeixe usuário e senha em branco! O servidor utilizará o próprio token de segurança Kerberos da sua sessão Windows ativa via SSPI.
Método C: Variáveis de Ambiente Diretas (Para Linux, Docker, Containers ou CI/CD)
Se você estiver executando em Linux, Docker ou ambientes onde o Windows Credential Vault não está disponível:
Configure no
.env(ou injete nas variáveis do container/orquestrador):AD_AUTH_METHOD=env AD_USERNAME=CONTOSO\svc_ad_mcp AD_PASSWORD=SuaSenhaForteAqui
Passo 4: Validar a Conectividade
Antes de conectar ao Claude Desktop ou Antigravity, valide se a comunicação com o Active Directory está perfeita executando o diagnóstico integrado:
powershell -ExecutionPolicy Bypass -File scripts/test_connectivity.ps1O diagnóstico validará automaticamente:
Resolução de nomes DNS do domínio e do DC.
Portas de rede (53 DNS, 88 Kerberos, 389 LDAP, 445 SMB, 636 LDAPS, 3268 Global Catalog).
Handshake TLS e certificados digitais.
Consulta real ao RootDSE do Active Directory.
5. Como Conectar aos Clientes de IA
A. Antigravity IDE / VS Code MCP
Abra seu arquivo de configuração MCP (~/.gemini/config/mcp_config.json) e insira:
{
"mcpServers": {
"active-directory": {
"command": "C:\\caminho\\para\\microsoft-active-directory-mcp\\.venv\\Scripts\\python.exe",
"args": ["-m", "ad_mcp"],
"env": {
"AD_MCP_MODE": "READ_ONLY",
"AD_SERVER": "dc01.corp.contoso.com",
"AD_DOMAIN": "corp.contoso.com",
"AD_AUTH_METHOD": "credential_manager",
"AD_CREDENTIAL_TARGET": "AD_MCP_CREDENTIAL"
}
}
}
}B. Claude Desktop
No Claude Desktop, edite %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"active-directory": {
"command": "C:\\caminho\\para\\microsoft-active-directory-mcp\\.venv\\Scripts\\python.exe",
"args": ["-m", "ad_mcp"],
"env": {
"AD_MCP_MODE": "READ_ONLY",
"AD_SERVER": "dc01.corp.contoso.com",
"AD_DOMAIN": "corp.contoso.com",
"AD_AUTH_METHOD": "credential_manager",
"AD_CREDENTIAL_TARGET": "AD_MCP_CREDENTIAL"
}
}
}
}C. Cursor AI
No Cursor, configure em Features > MCP Servers apontando para o binário Python do .venv com argumento -m ad_mcp.
6. Exemplos de Consultas em Linguagem Natural
Uma vez conectado, o agente de IA pode responder a perguntas como:
"Liste os usuários desabilitados do domínio corp.contoso.com"
"Quais usuários possuem privilégios administrativos no domínio?"
"Encontre computadores que não fazem logon há mais de 90 dias."
"Verifique a saúde dos controladores de domínio e o status da replicação."
"Gere um relatório executivo de segurança em HTML."
"Quais usuários estão com o atributo 'Senha Nunca Expira' ativado?"
7. Testes e Qualidade de Código
Para executar a suíte completa de testes unitários automatizados:
pytest -vPara verificar conformidade e formatação de código com Ruff:
ruff check .
ruff format .8. Documentação Detalhada
9. Licença
Este projeto é open source sob a licença MIT. Contribuições da comunidade são bem-vindas! Consulte o CONTRIBUTING.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Security gateway for AI agents: policy, approval, and audited execution, no secrets shared.
Context and control for any AI. Agent identity, scoped access, and proof across tools.
Human-in-the-loop review and approval for AI agents. Audit trail, approval policies, native MCP.
Register every AI agent, log every action, prove it. EU AI Act compliance built in.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables controlled AI-agent access to enterprise-shaped tools with a deny-by-default gated write path, human approval, dry-run execution, and append-only audit logging.1-
- AlicenseAqualityBmaintenanceEnables AI agents to safely inspect and execute version-controlled operational runbooks with policy checks, dry-run planning, and out-of-band approvals.3MIT

Praxis Liteofficial
AlicenseAqualityAmaintenanceEnables AI agents to safely interact with local files by enforcing policies that allow, block, or require approval for actions, while protecting credentials and maintaining a tamper-proof audit log.122MIT- AlicenseNot gradedqualityCmaintenanceEnables AI agents to operate a simulated IT operations environment through policy-enforced, risk-tiered tool calls with human approval for risky writes, dry-run previews, rate limits, emergency lockdown, and tamper-evident auditing.MIT