freeipa-mcp-server

ahmetazanpa/freeipa-mcp-server

3.1

If you are the rightful owner of freeipa-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

Model Context Protocol (MCP) server for interacting with FreeIPA directory management systems.

Tools
14
Resources
0
Prompts
0

FreeIPA MCP Server

Model Context Protocol (MCP) server for interacting with FreeIPA directory management systems.

📋 Overview

This MCP server provides various tools for interacting with FreeIPA identity management systems. You can perform user and group management, password operations, and system status monitoring.

🚀 Features

User Management

  • ✅ List users
  • ✅ Show user details
  • ✅ Add new users
  • ✅ Modify user information
  • ✅ Change passwords
  • ✅ Reset passwords (with phone verification)

Group Management

  • ✅ List groups
  • ✅ Show group details
  • ✅ Add new groups
  • ✅ Add members to groups
  • ✅ Remove members from groups

System Management

  • ✅ Connect to FreeIPA server
  • ✅ Check connection status
  • ✅ Disconnect from server

🛠️ Installation

Requirements

  • Python 3.8+
  • FreeIPA server
  • FreeIPA API access

Dependencies

pip install -r requirements.txt

Environment Variables

Create a .env file and define the following variables:

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

🚀 Running

Development Environment

python freeipa_mcp_server.py

With Docker

# Build image
docker build -t freeipa-mcp-server .

# Run container
docker run -p 8000:8000 --env-file .env freeipa-mcp-server

With Docker Compose

version: '3.8'
services:
  freeipa-mcp-server:
    build: .
    ports:
      - "8000:8000"
    env_file:
      - .env
    restart: unless-stopped

📚 API Endpoints

Health Check

  • GET /health - System status and connection information

Connection Status

  • GET /connection-status - FreeIPA connection status

MCP Endpoints

  • GET /sse - Server-Sent Events endpoint
  • POST /messages - MCP message endpoint

🔧 MCP Tools

Connection Management

freeipa_connect

Connect to FreeIPA server.

{
  "server": "https://freeipa.example.com",
  "username": "admin",
  "password": "password",
  "verify_ssl": true
}
freeipa_disconnect

Disconnect from FreeIPA server.

freeipa_status

Check connection status.

User Operations

user_list

Get list of users.

{
  "sizelimit": 100
}
user_show

Show user details.

{
  "uid": "john.doe"
}
user_add

Add new user.

{
  "uid": "newuser",
  "givenname": "John",
  "sn": "Doe",
  "mail": "john.doe@example.com",
  "userpassword": "password123"
}
user_modify

Update user information.

{
  "uid": "john.doe",
  "mail": "newemail@example.com",
  "telephonenumber": "+905551234567"
}
change_password

Change user password.

{
  "username": "john.doe",
  "new_password": "newpassword123",
  "old_password": "oldpassword123"
}
forgot_reset_password

Reset password (with phone verification).

{
  "username": "john.doe",
  "phone": "+905551234567",
  "new_password": "newpassword123"
}

Group Operations

group_list

Get list of groups.

{
  "sizelimit": 100,
  "cn": "developers",
  "description": "Development team"
}
group_show

Show group details.

{
  "cn": "developers"
}
group_add

Add new group.

{
  "cn": "newgroup",
  "description": "New group description"
}
group_add_member

Add member to group.

{
  "cn": "developers",
  "user": "john.doe"
}
group_remove_member

Remove member from group.

{
  "cn": "developers",
  "user": "john.doe"
}