这是一个基于Python的模型上下文协议(MCP)服务器,用于通过LDAP管理Active Directory环境。该项目提供了强大的工具,用于用户管理、组操作、计算机账户管理、组织单位管理和安全审计。
克隆并设置环境:
# 克隆仓库
git clone https://github.com/alpadalar/ActiveDirectoryMCP.git
cd ActiveDirectoryMCP
# 创建并激活虚拟环境
uv venv
source .venv/bin/activate # Linux/macOS
# 或
.\.venv\Scripts\Activate.ps1 # Windows
安装依赖项:
# 安装带有开发依赖项
uv pip install -e ".[dev]"
创建配置:
# 创建配置目录并复制模板
mkdir -p ad-config
cp ad-config/config.example.json ad-config/config.json
配置Active Directory连接:
{
"active_directory": {
"server": "ldap://dc.example.com:389",
"domain": "example.com",
"base_dn": "DC=example,DC=com",
"bind_dn": "CN=service-account,OU=Service Accounts,DC=example,DC=com",
"password": "your-service-account-password"
},
"organizational_units": {
"users_ou": "OU=Users,DC=example,DC=com",
"groups_ou": "OU=Groups,DC=example,DC=com",
"computers_ou": "OU=Computers,DC=example,DC=com",
"service_accounts_ou": "OU=Service Accounts,DC=example,DC=com"
}
}
# 测试配置
python -c "import active_directory_mcp; print('安装OK')"
# 运行测试
pytest
# 测试LDAP连接
AD_MCP_CONFIG="ad-config/ad-config.json" python -m active_directory_mcp.server
在现有Active Directory上部署到生产:
# 1. 配置您的AD环境
cp ad-config/production-config.example.json ad-config/ad-config.json
# 使用您的AD服务器详细信息编辑ad-config.json
# 2. 部署ActiveDirectoryMCP
docker compose up -d
# 3. 验证部署
docker compose ps
docker compose logs activedirectory-mcp
🌐 生产URL: http://localhost:8813/activedirectory-mcp
生产特性:
对于包含测试LDAP服务器的开发:
# 1. 启动测试环境
docker compose -f docker-compose-ad.yml up -d
# 2. 测试设置
python test_ad_environment.py
# 3. 访问服务
# - ActiveDirectoryMCP: http://localhost:8813/activedirectory-mcp
# - LDAP管理员: http://localhost:8080
测试特性:
对于使用stdio传输的测试和开发:
# 启动stdio服务器
./start_server.sh
# 或使用自定义配置
AD_MCP_CONFIG="ad-config/ad-config.json" python -m active_directory_mcp.server
对于本地HTTP传输开发:
# 启动HTTP服务器
./start_http_server.sh
# 或使用自定义设置
python -m active_directory_mcp.server_http --host 0.0.0.0 --port 8813 --path /activedirectory-mcp
{
"mcpServers": {
"ActiveDirectoryMCP": {
"transport": {
"type": "http",
"url": "http://localhost:8813/activedirectory-mcp"
},
"description": "使用HTTP传输的Active Directory管理"
}
}
}
{
"mcpServers": {
"ActiveDirectoryMCP-Local": {
"transport": {
"type": "http",
"url": "http://localhost:8813/activedirectory-mcp"
},
"description": "ActiveDirectoryMCP本地开发"
}
}
}
{
"mcpServers": {
"ActiveDirectoryMCP": {
"command": "/absolute/path/to/ActiveDirectoryMCP/.venv/bin/python",
"args": ["-m", "active_directory_mcp.server"],
"cwd": "/absolute/path/to/ActiveDirectoryMCP",
"env": {
"PYTHONPATH": "/absolute/path/to/ActiveDirectoryMCP/src",
"AD_MCP_CONFIG": "/absolute/path/to/ActiveDirectoryMCP/ad-config/ad-config.json"
},
"disabled": false
}
}
}
list_users - 列出用户,带过滤和属性get_user - 获取详细用户信息create_user - 创建新用户账户modify_user - 更新用户属性delete_user - 删除用户账户enable_user / disable_user - 账户状态管理reset_user_password - 密码重置功能get_user_groups - 组成员分析list_groups - 列出组,带过滤get_group - 获取详细组信息create_group - 创建安全/分发组modify_group - 更新组属性delete_group - 删除组add_group_member / remove_group_member - 成员管理get_group_members - 成员列表,带递归list_computers - 列出计算机账户get_computer - 获取计算机详情create_computer - 创建计算机对象modify_computer - 更新计算机属性delete_computer - 删除计算机账户enable_computer / disable_computer - 账户管理reset_computer_password - 密码重置get_stale_computers - 查找不活跃计算机list_organizational_units - 列出OUs,带层次结构get_organizational_unit - 获取OU详情create_organizational_unit - 创建新的OUsmodify_organizational_unit - 更新OU属性delete_organizational_unit - 删除OUsmove_organizational_unit - 移动OUsget_organizational_unit_contents - 列出OU内容get_domain_info - 域安全设置get_privileged_groups - 特权组分析get_user_permissions - 用户权限分析get_inactive_users - 不活跃用户检测get_password_policy_violations - 策略合规audit_admin_accounts - 管理员账户审计test_connection - LDAP连接性测试health - 服务器健康检查get_schema_info - 工具模式信息⚠️ 注意:ActiveDirectoryMCP提供总共42个工具。某些LLM模型可能无法处理如此多的工具。
{
"active_directory": {
"server": "ldaps://dc.example.com:636",
"use_ssl": true
},
"security": {
"enable_tls": true,
"validate_certificate": true,
"ca_cert_file": "/path/to/ca-certificate.pem"
}
}
{
"performance": {
"connection_pool_size": 10,
"max_retries": 3,
"retry_delay": 1.0,
"page_size": 1000
}
}
✅ 所有测试通过(129/129) - 生产就绪!
# 以详细输出运行所有测试
pytest -v
# 运行特定测试类别
pytest tests/test_config.py -v # 配置测试
pytest tests/test_ldap_manager.py -v # LDAP管理器测试
pytest tests/test_user_tools.py -v # 用户管理测试
pytest tests/test_group_tools.py -v # 组管理测试
pytest tests/test_computer_tools.py -v # 计算机管理测试
pytest tests/test_security_tools.py -v # 安全与审计测试
pytest tests/test_organizational_unit_tools.py -v # OU管理测试
pytest tests/test_integration.py -v # 端到端工作流程测试
pytest tests/test_performance.py -v # 性能与负载测试
# 直接测试HTTP端点
python test_scripts/test_http_server.py
# 自定义服务器URL
python test_scripts/test_http_server.py http://your-server:8813/activedirectory-mcp
# 使用真实AD连接测试(需要配置)
AD_MCP_CONFIG="ad-config/ad-config.json" pytest tests/test_integration.py -v
# 运行性能和负载测试
pytest tests/test_performance.py -v
# 运行特定性能类别
pytest tests/test_performance.py::TestLargeDatasetPerformance -v # 大数据集处理
pytest tests/test_performance.py::TestConcurrentOperations -v # 并发操作
pytest tests/test_performance.py::TestMemoryAndResourceUsage -v # 内存使用测试
pytest tests/test_performance.py::TestStressScenarios -v # 压力测试
# 性能测试特性:
# - 大数据集性能(10K+用户/组)
# - 并发操作测试(50+同时查询)
# - 内存使用验证
# - 持续负载场景
# - 连接池效率
# 启动LDAP/AD测试环境
docker-compose -f docker-compose-ad.yml up -d
# 等待服务准备好(30秒)
docker logs -f openldap-ad-dc
# 使用测试环境测试ActiveDirectoryMCP
python test_ad_environment.py
# 预期输出:
# ✅ 连接到LDAP: 192.168.1.100:389
# ✅ MCP配置:成功
# ✅ HTTP API:成功
# 🎉 测试环境准备就绪!
测试环境特性:
# 健康检查
curl -X POST "http://localhost:8813/activedirectory-mcp" \
-H "Content-Type: application/json" \
-d '{"method": "health", "params": {}}'
# 列出用户
curl -X POST "http://localhost:8813/activedirectory-mcp" \
-H "Content-Type: application/json" \
-d '{"method": "list_users", "params": {"ou": "OU=Users,DC=example,DC=com"}}'
ActiveDirectoryMCP/
├── 📁 src/ # 源代码
│ └── active_directory_mcp/
│ ├── server.py # 主MCP服务器(stdio)
│ ├── server_http.py # HTTP MCP服务器
│ ├── config/ # 配置处理
│ ├── core/ # 核心功能
│ │ ├── ldap_manager.py # LDAP连接管理器
│ │ └── logging.py # 日志配置
│ └── tools/ # 工具实现
│ ├── user.py # 用户管理
│ ├── group.py # 组管理
│ ├── computer.py # 计算机管理
│ ├── organizational_unit.py # OU管理
│ └── security.py # 安全与审计工具
│
├── 📁 tests/ # 全面测试套件(129个测试)
│ ├── test_config.py # 配置测试(8个)
│ ├── test_ldap_manager.py # LDAP管理器测试(12个)
│ ├── test_user_tools.py # 用户管理测试(13个)
│ ├── test_group_tools.py # 组管理测试(17个)
│ ├── test_computer_tools.py # 计算机管理测试(18个)
│ ├── test_security_tools.py # 安全与审计测试(14个)
│ ├── test_organizational_unit_tools.py # OU管理测试(18个)
│ ├── test_integration.py # 端到端工作流程测试(20个)
│ └── test_performance.py # 性能与负载测试(9个)
├── 📁 ad-config/ # 配置文件
│ ├── ad-config.json # 主服务器配置
│ ├── config.example.json # 示例配置
│ └── production-config.example.json # 生产示例
│
├── 📄 配置文件
│ ├── pyproject.toml # 项目元数据
│ ├── docker-compose.yml # 生产部署
│