用于Active Directory管理的MCP服务器,采用Python服务器和PowerShell后端
Claude Desktop ↔ MCP协议 ↔ Python服务器 ↔ PowerShell ↔ Active Directory
系统采用三层架构:
1. simple_mcp_server.py - MCP协议桥 🌉
角色:作为主要编排器和协议转换器
功能:
协议处理器:实现Model Context Protocol (MCP) JSON-RPC 2.0规范
工具注册表:定义了14个可供Claude使用的工具:
凭据管理器:从Windows凭据管理器中安全地获取AD服务账户凭据
PowerShell编排器:执行带有适当参数的PowerShell脚本
响应格式化器:将PowerShell JSON输出转换为符合MCP标准的响应
关键函数:
async def handle_request(request) # 处理MCP协议请求
async def run_powershell_script() # 执行PowerShell操作
async def get_credentials_from_credential_manager() # 安全层
2. ad_operations.ps1 - Active Directory工作马达 ⚙️
角色:包含所有实际的Active Directory操作和业务逻辑
功能:
功能分类:
基础操作(6个):
Create-User # New-ADUser 操作
Modify-User # Set-ADUser 操作
Add-UserToGroup # Add-ADGroupMember
Remove-UserFromGroup # Remove-ADGroupMember
Get-UserInfo # 获取所有属性的Get-ADUser
Test-ADConnection # 域连接性测试
增强操作(8个):
Get-DomainInfo # 相当于Get-ADDomain
Get-ForestInfo # 相当于Get-ADForest
Get-TrustInfo # 获取AD信任关系
Get-DomainPasswordPolicy # 获取默认域密码策略
Get-ReplicationStatus # AD复制健康状况
Get-AllUserAttributes # 深度用户检查
Get-AllComputerAttributes # 深度计算机检查
Get-SitesAndServices # 站点、链接、子网
3. 安全与配置层 🔐
凭据管理:
配置变量:
$TargetOU = "OU=ManagedUsers,DC=demo,DC=local" # 管理OU
$DomainName = "demo.local" # 域名
$DefaultPassword = "TempPassword123!" # 初始密码(如果未提供密码则使用此密码)
1. 请求流程(Claude → AD)
Claude Desktop
↓ (用户请求:“创建John Smith用户”)
Python MCP服务器
↓ (验证请求,格式化参数)
↓ (从凭据管理器检索凭据)
↓ (调用带有JSON数据的PowerShell)
PowerShell脚本
↓ (解析JSON,认证到AD)
↓ (执行New-ADUser cmdlet)
Active Directory
2. 响应流程(AD → Claude)
Active Directory
↓ (返回AD对象/状态)
PowerShell脚本
↓ (格式化为带有成功/错误状态的JSON)
Python MCP服务器
↓ (接收JSON,验证,格式化为MCP)
↓ (创建符合MCP标准的响应)
Claude Desktop
↓ (向用户显示格式化的结果)
Python服务器职责:
PowerShell脚本职责:
安全模型: