FreeIPA MCP服务器
用于与FreeIPA目录管理系统交互的模型上下文协议(MCP)服务器。
📋 概述
此MCP服务器提供了各种与FreeIPA身份管理系统交互的工具。您可以执行用户和组管理、密码操作和系统状态监视。
🚀 特性
用户管理
- ✅ 列出用户
- ✅ 显示用户详细信息
- ✅ 添加新用户
- ✅ 修改用户信息
- ✅ 更改密码
- ✅ 重置密码(通过手机验证)
组管理
- ✅ 列出组
- ✅ 显示组详细信息
- ✅ 添加新组
- ✅ 向组中添加成员
- ✅ 从组中删除成员
系统管理
- ✅ 连接到FreeIPA服务器
- ✅ 检查连接状态
- ✅ 和服务器断开连接
🛠️ 安装
需求
- Python 3.8+
- FreeIPA服务器
- FreeIPA API访问
依赖项
pip install -r requirements.txt环境变量
创建一个 .env 文件并定义以下变量:
FREEIPA_SERVER=https://your-freeipa-server.com
FREEIPA_USERNAME=admin
FREEIPA_PASSWORD=your-password
FREEIPA_VERIFY_SSL=true
PORT=8000
HOST=0.0.0.0🚀 跑步
开发环境
python freeipa_mcp_server.py使用Docker
# Build image
docker build -t freeipa-mcp-server .
# Run container
docker run -p 8000:8000 --env-file .env freeipa-mcp-server使用Docker Compose
version: '3.8'
services:
freeipa-mcp-server:
build: .
ports:
- "8000:8000"
env_file:
- .env
restart: unless-stopped📚 API终点
健康检查
GET /health-系统状态和连接信息
连接状态
GET /connection-status-FreeIPA连接状态
MCP端点
GET /sse-服务器发送事件端点POST /messages-MCP消息端点
🔧 MCP工具
连接管理
freeipa_connect
连接到FreeIPA服务器。
{
"server": "https://freeipa.example.com",
"username": "admin",
"password": "password",
"verify_ssl": true
}freeipa_disconnect
断开与FreeIPA服务器的连接。
freeipa_status
检查连接状态。
用户操作
user_list
获取用户列表。
{
"sizelimit": 100
}user_show
显示用户详细信息。
{
"uid": "john.doe"
}user_add
添加新用户。
{
"uid": "newuser",
"givenname": "John",
"sn": "Doe",
"mail": "john.doe@example.com",
"userpassword": "password123"
}user_modify
更新用户信息。
{
"uid": "john.doe",
"mail": "newemail@example.com",
"telephonenumber": "+905551234567"
}change_password
更改用户密码。
{
"username": "john.doe",
"new_password": "newpassword123",
"old_password": "oldpassword123"
}forgot_reset_password
重置密码(通过手机验证)。
{
"username": "john.doe",
"phone": "+905551234567",
"new_password": "newpassword123"
}组操作
group_list
获取组列表。
{
"sizelimit": 100,
"cn": "developers",
"description": "Development team"
}group_show
显示组详细信息。
{
"cn": "developers"
}group_add
添加新组。
{
"cn": "newgroup",
"description": "New group description"
}group_add_member
将成员添加到组。
{
"cn": "developers",
"user": "john.doe"
}group_remove_member
从组中删除成员。
{
"cn": "developers",
"user": "john.doe"
}