Skip to main content
Glama

Überblick

Active Directory MCP ist ein Open-Source-Model Context Protocol-Server, der es KI-Assistenten (Claude, Gemini CLI, ChatGPT über API usw.) ermöglicht, Active-Directory-Umgebungen sicher zu verwalten.

Hauptfunktionen

  • 47 Tools für Benutzer, Gruppen, Computer, OUs, Sicherheit, Audit und 15 MSP-Prompt-Playbooks.

  • Drei Transports: stdio (server.py), Streamable HTTP über FastMCP (server_http.py) und Streamable HTTP über FastAPI (server_fastapi.py).

  • Von Natur aus Multi-Tenant-fähig: Jede Instanz bindet sich über AD_MCP_CONFIG an ihr eigenes AD; dieselbe Codebasis kann unbegrenzt viele Mandanten von einem Host aus bedienen.

  • Schutzmechanismen für Schreiboperationen: Jedes ändernde Tool erfordert entweder eine mandantenspezifische Client-Bestätigungszeichenfolge oder ein Automatisierungs-Bearer-Token, bevor es AD verändert.

  • Audit-Protokoll für jeden Vorgang: Jeder Aufruf protokolliert Operationsname, Ziel, Modus (CONFIRMED / AUTOMATION / NO_CONFIRMATION_REQUIRED) und Ergebnis.

Namenskonvention

Alle MCP-Toolnamen verwenden das Präfix ad_* mit einem beschreibenden Suffix — z. B. ad_list_users_with_filters, ad_create_user_account, ad_disable_computer_account_trust. Dies vermeidet Kollisionen, wenn dieses MCP neben anderen Servern (GLPI, Hudu usw.) läuft, die mit demselben KI-Client verbunden sind.


Related MCP server: Shell MCP

Multi-Tenant-Architektur

Dieses MCP ist dafür ausgelegt, als ein Prozess pro Mandant zu laufen, wobei alle dieselbe Codebasis verwenden:

.base-code/                    <- this repository (shared source of truth)
  src/active_directory_mcp/
  ad-config/
    ad-config.example.json     <- template only (real configs are .gitignored)

<deployment>/                  <- one directory per tenant, OUTSIDE this repo
  tenant-a/
    ad-config/ad-config.json   <- real credentials (NEVER committed)
    start.sh                   <- exports AD_MCP_CONFIG and launches the server
  tenant-b/
    ad-config/ad-config.json
    start.sh

Jedes start.sh exportiert AD_MCP_CONFIG, das auf die Konfiguration des jeweiligen Mandanten verweist, und führt python -m active_directory_mcp.server_http auf einem dedizierten Port aus. Aktualisieren Sie das gemeinsame .base-code/ einmal, starten Sie alle Mandanten neu — gleicher Code, isolierter Zustand.


Schnellstart

Voraussetzungen

  • Python 3.11+

  • LDAP/LDAPS vom Host aus erreichbar

  • Ein AD-Dienstkonto mit den Berechtigungen, die für die Operationen erforderlich sind, die Sie freigeben möchten

1. Installation

git clone https://github.com/DevSkillsIT/Skills-MCP-Active-Directory.git
cd Skills-MCP-Active-Directory

python -m venv .venv
source .venv/bin/activate          # Linux/macOS
# .venv\Scripts\activate           # Windows

pip install -e .                   # installs from pyproject.toml

2. Konfiguration

mkdir -p /etc/ad-mcp
cp ad-config/ad-config.example.json /etc/ad-mcp/ad-config.json
$EDITOR /etc/ad-mcp/ad-config.json   # set server, bind_dn, password, base_dn, OUs
chmod 600 /etc/ad-mcp/ad-config.json

Die Beispieldatei ist die einzige Vorlage, die in Git gepflegt wird. Jede echte ad-config.json wird durch .gitignore blockiert (ad-config/*.json + !ad-config/*.example.json).

3. Ausführen

export AD_MCP_CONFIG=/etc/ad-mcp/ad-config.json

# stdio transport (for direct Claude Desktop / mcp-cli use):
python -m active_directory_mcp.server

# HTTP transport (for Claude Code, Gemini CLI, n8n, etc.):
python -m active_directory_mcp.server_http --host 0.0.0.0 --port 8813 --path /activedirectory-mcp

4. Verbindung mit Claude Code

claude mcp add --transport http ad http://localhost:8813/activedirectory-mcp \
  --headers "Authorization: Bearer YOUR_AUTOMATION_TOKEN"

5. Verbindung mit Gemini CLI

~/.gemini/settings.json:

{
  "mcpServers": {
    "ad": {
      "httpUrl": "http://localhost:8813/activedirectory-mcp",
      "headers": { "Authorization": "Bearer YOUR_AUTOMATION_TOKEN" },
      "timeout": 30000
    }
  }
}

Tools

Alle Tools verwenden das Präfix ad_*. Als Write markierte Tools erfordern eine Bestätigungszeichenfolge ODER ein Automatisierungs-Bearer-Token.

Mandantenidentifikation (3)

Tool

Operation

ad_get_client_tenant_info

Mandanteninformationen für diese Instanz zurückgeben (zuerst aufrufen)

ad_list_configured_clients

Alle in der Client-Registry registrierten Clients auflisten

ad_check_client_configuration

Prüfen, ob für einen bestimmten Client-Slug ein AD konfiguriert ist

Benutzerverwaltung (9)

Tool

Write

Operation

ad_list_users_with_filters

Benutzer auflisten (optional nach OU/Kriterien gefiltert)

ad_get_user_details_by_username

Benutzerattribute per sAMAccountName abrufen

ad_get_user_group_memberships

Gruppen auflisten, in denen ein Benutzer Mitglied ist

ad_create_user_account

ja

Neuen Benutzer erstellen

ad_modify_user_attributes

ja

Benutzerattribute ändern

ad_delete_user_account_permanently

ja

Benutzer löschen

ad_enable_user_account_access

ja

Benutzerkonto aktivieren

ad_disable_user_account_access

ja

Benutzerkonto deaktivieren

ad_reset_user_password_forced

ja

Passwort zurücksetzen (Änderung bei nächster Anmeldung erzwingen)

Gruppenverwaltung (8)

Tool

Write

Operation

ad_list_groups_with_filters

Gruppen auflisten

ad_get_group_details_by_name

Gruppenattribute abrufen

ad_get_group_members_recursive

Mitglieder auflisten, optional rekursiv

ad_create_group_security_or_distribution

ja

Sicherheits- oder Verteilergruppe erstellen

ad_modify_group_attributes

ja

Gruppenattribute ändern

ad_delete_group_permanently

ja

Gruppe löschen

ad_add_member_to_group

ja

Mitglied hinzufügen

ad_remove_member_from_group

ja

Mitglied entfernen

Computerverwaltung (8)

Tool

Write

Operation

ad_list_computers_with_filters

Computer auflisten

ad_get_computer_details_by_name

Computerattribute abrufen

ad_get_inactive_computers_by_days

Computer auflisten, die N+ Tage inaktiv sind

ad_create_computer_account

ja

Computerobjekt erstellen

ad_modify_computer_attributes

ja

Computerattribute ändern

ad_delete_computer_account_permanently

ja

Computerobjekt löschen

ad_enable_computer_account_trust

ja

Computerkonto aktivieren

ad_disable_computer_account_trust

ja

Computerkonto deaktivieren

ad_reset_computer_password_trust

ja

Passwort des sicheren Kanals des Computers zurücksetzen

Verwaltung von Organisationseinheiten (7)

Tool

Write

Operation

ad_list_organizational_units_hierarchy

OUs auflisten (rekursive Option)

ad_get_organizational_unit_details

OU-Attribute abrufen

ad_get_organizational_unit_objects

Objekte innerhalb einer OU auflisten

ad_create_organizational_unit

ja

OU erstellen

ad_modify_organizational_unit_attributes

ja

OU ändern

ad_delete_organizational_unit_forced

ja

OU löschen (force=true zum Löschen nicht-leerer OUs)

ad_move_organizational_unit_parent

ja

OU zu einem neuen übergeordneten Element verschieben

Sicherheit & Audit (6)

Tool

Operation

ad_get_domain_security_policy_info

Domäneninformationen + Kennwort-/Sperrrichtlinie

ad_get_privileged_security_groups

Privilegierte Gruppen auflisten (Domain Admins, Enterprise Admins usw.)

ad_get_user_effective_permissions

Effektive Berechtigungen für einen Benutzer anzeigen

ad_get_inactive_users_by_days

Benutzer ohne Anmeldung seit N+ Tagen

ad_get_password_policy_violations

Konten, die gegen die Kennwortrichtlinie verstoßen

ad_audit_administrative_accounts

Hygiene privilegierter Konten prüfen

MSP-Prompts (2 Tools + 15 Prompts)

Tool

Operation

ad_list_msp_prompts

Die 15 professionellen MSP-Playbooks auflisten (Manager & Analyst)

ad_execute_msp_prompt

Ein benanntes Playbook mit Argumenten ausführen

Die vollständige Prompt-Übersicht finden Sie in PROMPTS.md (Sicherheitsaudit, Onboarding, Offboarding, Passwort-Reset-Playbook usw.).

System (4)

Tool

Operation

ad_test_ldap_connection_status

LDAP-Konnektivitätstest

ad_health_check_mcp_server

Vollständiger Health-Check (Server + LDAP-Suchtests + Statistiken)

ad_get_mcp_schema_tools_info

Selbstbeschreibendes Schema aller registrierten Tools


Konfiguration

Der Pfad zur Laufzeitkonfigurationsdatei wird über die Umgebungsvariable AD_MCP_CONFIG bereitgestellt. Schema in ad-config/ad-config.example.json.

Wichtige Felder

Feld

Erforderlich

Beschreibung

active_directory.server

ja

Primäre LDAP-URL, z. B. ldaps://dc.example.com:636

active_directory.server_pool

nein

Zusätzliche LDAP-URLs für Failover

active_directory.bind_dn

ja

Vollständiger DN des Dienstkontos

active_directory.password

ja

Passwort des Dienstkontos (Datei bei chmod 600 aufbewahren)

active_directory.base_dn

ja

Basis-DN, z. B. DC=example,DC=com

organizational_units.*

ja

Standard-OUs für Benutzer/Gruppen/Computer/Dienstkonten

security.enable_tls

nein

StartTLS / LDAPS erzwingen

security.validate_certificate

nein

Serverzertifikat gegen ca_cert_file verifizieren

security.require_secure_connection

nein

Bind über Klartext verweigern

automation.token

nein

Bearer-Token für unbeaufsichtigte Schreiboperationen

client.slug

nein

Mandantenkennung, die von ad_get_client_tenant_info gemeldet wird

Berechtigungen für Dienstkonten

Gewähren Sie dem Bind-Konto die minimalen delegierten Rechte, die für die von Ihnen beabsichtigten Operationen erforderlich sind:

  • Nur-Lese-Bereitstellungen: „Alle Eigenschaften lesen" + „Inhalte auflisten" auf der Domänenwurzel reicht aus.

  • Benutzer/Gruppen-Schreiben: Delegieren Sie „Objekte erstellen/löschen" + „Alle Eigenschaften schreiben" auf den Ziel-OUs.

  • Passwort zurücksetzen: Delegieren Sie das erweiterte Recht „Passwort zurücksetzen" auf den Ziel-OUs.

  • Computer beitreten/verlassen: Delegieren Sie „Computerobjekte erstellen/löschen" auf der Computer-OU.

Verwenden Sie immer ein dediziertes Dienstkonto, LDAPS in der Produktion und rotieren Sie das Passwort regelmäßig.


Sicherheit

Schreibschutzmodell

Jedes mutierende Tool (ad_create_*, ad_modify_*, ad_delete_*, ad_enable_*, ad_disable_*, ad_reset_*, ad_add_*, ad_remove_*, ad_move_*) ruft check_write_permission() auf, bevor es LDAP erreicht. Es akzeptiert den Schreibvorgang, wenn eines der folgenden zutrifft:

  1. automation_token stimmt mit automation.token in der Konfiguration überein – für CI / geplante Jobs vorgesehen.

  2. client_confirmation stimmt mit dem Mandanten-Slug überein – der KI-Assistent muss zuerst ad_get_client_tenant_info aufrufen, den Slug dem Benutzer vorlesen und genau diese Zeichenfolge übergeben.

  3. Der Mandant hat require_confirmation_for_writes: false (expliziter Opt-out, nicht empfohlen).

Wenn keine der oben genannten Bedingungen erfüllt ist, wird der Aufruf mit einer permitted: false-Meldung abgebrochen und der LDAP-Schreibvorgang wird nie versucht.

Audit-Protokollierung

Alle Operationen schreiben eine strukturierte Protokollzeile mit: Zeitstempel, Tool-Name, Ziel, Bestätigungsmodus (AUTOMATION / CONFIRMED / WRONG_CONFIRMATION / NO_CONFIRMATION_REQUIRED) und Erfolg/Fehler. Die Protokolle gehen dorthin, wo logging.file zeigt.

Geheimnis-Hygiene

  • Echte ad-config.json-Dateien sind git-ignoriert. Nur *.example.json wird verfolgt.

  • Fügen Sie niemals eine Konfiguration mit einem echten password oder automation.token in einen Chat ein, der von Dritten protokolliert oder transkribiert wird.

  • Rotieren Sie automation.token bei jeder Neugenerierung; behandeln Sie es als privilegierte Anmeldeinformation.


Testen

# Unit + integration tests
pytest tests/ -v

# Coverage
pytest --cov=src --cov-report=term-missing

# Lint
ruff check .

Ein gebündeltes docker-compose-ad.yml startet einen Samba-AD-Container unter 192.168.1.100 sowie einen MCP-Container, sodass die Integrationstests gegen ein echtes LDAP-Backend laufen können, ohne die Produktion zu berühren.


Fehlerbehebung

Symptom

Wahrscheinliche Ursache

Behebung

LDAP bind failed

falsches bind_dn / password

Überprüfen mit ldapsearch -H <server> -D '<bind_dn>' -W

Insufficient permissions

Dienstkonto fehlen delegierte Rechte

Erneut auf der Ziel-OU delegieren

Certificate verification failed

selbstsigniertes Zertifikat ohne Vertrauen

ca_cert_file setzen oder validate_certificate: false (nur Test)

permitted: false bei jedem Schreibvorgang

Fehlende Bestätigung/Token

Zuerst ad_get_client_tenant_info aufrufen oder automation_token übergeben

Health degraded

Socket offen, aber LDAP-Suche fehlgeschlagen

Dienstkonto-Sperrung / Replikation / Netzwerk-ACLs prüfen


Mitwirken

  1. Forken Sie das Repository.

  2. Erstellen Sie einen Feature-Branch: git checkout -b feat/your-feature.

  3. Führen Sie Tests aus: pytest.

  4. Öffnen Sie einen PR mit einer klaren Beschreibung und einem Link zum relevanten Issue.

Commits folgen Conventional Commits.


Lizenz

MIT – siehe LICENSE.

Danksagungen

Support

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A comprehensive production-ready MCP server with AI integration, plugin management, and web-based administration. Features multi-database support, RAG capabilities, SSH/SFTP access, and a built-in plugin hub for managing the MCP ecosystem.
  • A
    license
    A
    quality
    D
    maintenance
    A production-ready MCP server that enables AI assistants to execute shell commands, manage files, monitor system resources, and automate complex workflows with advanced features like stock tracking and web automation.
    7
    32
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server that enables AI-powered assessment of Active Directory on-premises environments by exposing AD data as queryable tools for LLMs like Claude.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to manage, monitor, and diagnose Windows systems through 42 tools across 8 modules, including services, event viewer, task scheduler, processes, network, diagnostics, observability, and safety features.
    32
    8
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • MCP server for Gainium — manage trading bots, deals, and balances via AI assistants

  • Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.

View all MCP Connectors

Latest Blog Posts

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/DevSkillsIT/Skills-MCP-Active-Directory'

If you have feedback or need assistance with the MCP directory API, please join our Discord server