返回市场
MCP活动目录服务器

MCP活动目录服务器

作者:rosingul13 星标更新:2025-07-01

项目介绍

mcp-active-directory-server

用于Active Directory管理的MCP服务器,采用Python服务器和PowerShell后端

🏗️ 架构概述

Claude Desktop ↔ MCP协议 ↔ Python服务器 ↔ PowerShell ↔ Active Directory

系统采用三层架构:

  • 表现层:Claude Desktop(AI接口)
  • 应用层:Python MCP服务器(协议处理器及编排器)
  • 数据层:PowerShell脚本 → Active Directory(实际AD操作)

📁 组件分解

1. simple_mcp_server.py - MCP协议桥 🌉

角色:作为主要编排器和协议转换器

功能

  • 协议处理器:实现Model Context Protocol (MCP) JSON-RPC 2.0规范

  • 工具注册表:定义了14个可供Claude使用的工具:

    • 6个基础工具(用户管理、组、连接)
    • 8个高级工具(域信息、森林信息、信任关系、复制状态等)
  • 凭据管理器:从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操作和业务逻辑

功能

  • AD操作:14个不同的函数用于不同的AD任务
  • 输入验证:处理JSON参数解析和验证
  • 凭据管理:使用提供的域凭据进行AD身份验证
  • 错误处理:全面的try-catch块,带有结构化的错误响应
  • 结构化输出:返回JSON格式的结果以供一致处理

功能分类

基础操作(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. 安全与配置层 🔐

凭据管理

  • 使用Windows凭据管理器进行安全凭据存储
  • 目标:"MCPActiveDirectory"
  • 具有最小必要权限的服务账户
  • 脚本中无硬编码密码

配置变量

$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服务器职责

  • ✅ 符合MCP协议
  • ✅ 工具注册和发现
  • ✅ 安全(凭据检索)
  • ✅ 错误处理和日志记录
  • ✅ 异步操作处理
  • ✅ 实现JSON-RPC 2.0

PowerShell脚本职责

  • ✅ 所有Active Directory操作
  • ✅ 参数验证和清理
  • ✅ 域认证
  • ✅ 业务逻辑实现
  • ✅ 结构化错误报告
  • ✅ 全面的数据检索

安全模型

  • 🔐 凭据:存储在Windows凭据管理器中(加密)
  • 🔐 认证:具有最小权限的服务账户
  • 🔐 范围:仅限特定OU(ManagedUsers)