项目简介

Koppla 是一个基于 Model Context Protocol (MCP) 构建的服务器,专注于 Active Directory (AD) 管理。它允许用户使用自然语言与 Active Directory 环境进行交互,实现用户和组的查询及管理。Koppla 旨在简化 AD 管理任务,并使其可以通过支持 MCP 协议的 AI 客户端(如 Claude Desktop)进行操作。

主要功能点

  • 自然语言查询: 使用自然语言轻松查询 Active Directory 中的用户、组和计算机对象信息。
  • AD 对象管理: 支持常见的 Active Directory 管理操作,例如:
    • 查找用户(按姓名、部门等条件)
    • 查询用户所属组
    • 更新用户属性(如部门、职位等)
    • 将用户添加到组
    • 从组中移除用户
  • 安全配置管理: 提供安全的配置管理工具,用于加密存储 Active Directory 密码,保护敏感信息。
  • 写操作保护: 默认禁用写操作,需要显式启用以进行用户属性更新、用户组管理等修改操作,并提供多重安全检查,防止误操作和未授权修改。
  • 详细的操作日志和安全审计: 记录所有操作,方便问题追踪和安全审计。

安装步骤

  1. 环境准备: 确保你的系统已安装 Python 3.7 或更高版本
  2. 安装 Koppla: 打开终端或命令提示符,运行以下命令安装 Koppla:
    pip install koppla

服务器配置

MCP 客户端(如 Claude Desktop)需要配置 Koppla 服务器的启动信息才能建立连接。请将以下 JSON 配置添加到你的 MCP 客户端的配置文件中(例如 Claude Desktop 的 'claude_desktop_config.json'):

{
  "mcpServers": {
    "Koppla-Active-Directory": {  //  服务器名称,可以自定义
      "command": "python",      //  启动服务器的命令,这里使用 python 解释器
      "args": ["-m", "koppla.server"], //  命令参数,指定运行 koppla.server 模块作为 MCP 服务器
      "env": {                  //  环境变量配置
        "AD_SERVER": "ldap://<你的域控制器地址>:389",  //  Active Directory 服务器地址,例如 ldap://ad.example.com:389
        "AD_USER": "<域名\\用户名>",     //  用于连接 AD 的用户名,例如 DOMAIN\\username 或 [email protected]
        "AD_PASSWORD": "<密码>",       //  用于连接 AD 的密码,**注意:推荐使用 'koppla-config configure' 命令进行配置,密码会被加密存储**
        "BASE_DN": "DC=lazyadmin,DC=nl",   //  LDAP 查询的基础 DN (Distinguished Name),例如 DC=example,DC=com
        "AD_WRITE_ENABLED": "false"    //  是否启用写操作,默认为 false (禁用),设置为 "true" 以启用用户属性更新和组管理等写操作
      }
    }
  }
}

配置 AD 连接信息:

推荐使用 Koppla 提供的配置管理工具 'koppla-config' 来安全地配置 Active Directory 连接信息。在终端或命令提示符中运行:

koppla-config configure

按照提示输入 Active Directory 服务器地址、用户名、密码和 Base DN。'koppla-config' 工具会自动加密密码并更新 MCP 客户端的配置文件。

基本使用方法

  1. 启动 MCP 客户端 (如 Claude Desktop),客户端会自动连接到配置的 Koppla 服务器。
  2. 在 MCP 客户端中使用自然语言指令与 Active Directory 交互。例如:
    • "查找所有部门为销售部的用户"
    • "将用户 John Doe 添加到组 'IT Support'"
    • "列出所有被锁定的用户账户"

注意: 对于涉及到数据修改的操作(如更新用户属性、添加用户到组等),Koppla 默认需要用户显式确认。MCP 客户端在收到需要确认的响应时,务必先向用户展示即将执行的操作,并征求用户同意 后再发送确认指令。

信息

分类

商业系统