Skip to main content
Glama
IPA MCP Server
by vhspace

IPA MCP-Server

CI Release Python 3.12+ License: Apache 2.0

MCP-Server und CLI für FreeIPA — verwaltet Benutzergruppen, Hostgruppen, HBAC-Regeln und Sudo-Regeln über die FreeIPA JSON-RPC API. Entwickelt für das Hochfahren von Forge-Clustern und die Automatisierung der Zugriffskontrolle im Together AI SRE-Stack.

Schnellstart

Cursor IDE

Hinzufügen zu .cursor/mcp.json:

{
  "mcpServers": {
    "ipa-mcp": {
      "command": "uvx",
      "args": ["--from", "ipa-mcp", "ipa-mcp"],
      "env": {
        "IPA_HOST": "ipa.example.com",
        "IPA_USERNAME": "admin",
        "IPA_PASSWORD": "your-password"
      }
    }
  }
}

Aus dem Quellcode

cd ipa-mcp
uv sync --all-groups
uv run ipa-mcp

Tools

Lese-Tools (6)

Tool

Beschreibung

ipa_list_groups

Benutzergruppen auflisten

ipa_list_hostgroups

Hostgruppen auflisten

ipa_list_hbac_rules

HBAC-Regeln auflisten

ipa_list_sudo_rules

Sudo-Regeln auflisten

ipa_list_users

Benutzer auflisten

ipa_list_hosts

Hosts auflisten

Schreib-Tools (10)

Tool

Beschreibung

ipa_create_group

Benutzergruppe erstellen

ipa_add_group_members

Benutzer zu Gruppe hinzufügen

ipa_create_hostgroup

Hostgruppe erstellen

ipa_add_hostgroup_members

Hosts zu Hostgruppe hinzufügen

ipa_create_hbac_rule

HBAC-Regel erstellen

ipa_add_hbac_rule_members

Mitglieder zu HBAC-Regel hinzufügen

ipa_create_sudo_rule

Sudo-Regel erstellen

ipa_add_sudo_rule_members

Mitglieder zu Sudo-Regel hinzufügen

ipa_add_sudo_option

Sudo-Option hinzufügen

ipa_setup_forge

Einmalige Forge-Cluster-Einrichtung (Gruppen + HBAC + Sudo)

CLI

Das begleitende ipa-cli bietet dieselben Funktionen über Shell-Befehle — verwenden Sie es, wenn das Token-Budget begrenzt ist oder Shell-Zugriff verfügbar ist.

Aufgabe

Befehl

Benutzergruppen auflisten

ipa-cli groups

Hostgruppen auflisten

ipa-cli hostgroups

HBAC-Regeln auflisten

ipa-cli hbac-rules

Sudo-Regeln auflisten

ipa-cli sudo-rules

Benutzer auflisten

ipa-cli users

Hosts auflisten

ipa-cli hosts

Benutzergruppe erstellen

ipa-cli create-group <name> --desc "description"

Hostgruppe erstellen

ipa-cli create-hostgroup <name>

Vollständige Forge-Einrichtung

ipa-cli setup-forge <cluster> --hosts "host1,host2" --users "alice,bob"

CLI installieren: uvx --from ipa-mcp ipa-cli oder aus dem Repository mit uv run ipa-cli ausführen.

Cross-MCP-Integration

Dieser Server arbeitet mit anderen MCP-Servern im SRE-Stack zusammen:

  • NetBox MCP — Suchen Sie Host-FQDNs, bevor Sie sie zu IPA-Hostgruppen hinzufügen. NetBox ist die Quelle der Wahrheit für das Geräteinventar.

  • AWX MCP — Lösen Sie Ansible-Playbooks für die IPA-Registrierung oder Host-Bereitstellung nach der Forge-Einrichtung aus.

  • MAAS MCP — Koordinieren Sie sich mit MAAS bei der Inbetriebnahme von Knoten, die in IPA registriert werden sollen.

Installation

Erfordert Python 3.12+ und einen FreeIPA-Server mit aktivierter JSON-RPC API.

uv add ipa-mcp
# or
pip install ipa-mcp

Für die Entwicklung aus dem Quellcode:

cd ipa-mcp
uv sync --all-groups

Konfiguration

Umgebungsvariablen

Erstellen Sie eine .env-Datei (siehe env.example):

Variable

Erforderlich

Standard

Beschreibung

IPA_HOST

Ja

—

FreeIPA-Server-Hostname oder URL

IPA_USERNAME

Nein

admin

IPA API-Benutzername

IPA_PASSWORD

Ja

—

IPA-Administrator-Passwort

IPA_VERIFY_SSL

Nein

false

SSL-Zertifikatsüberprüfung (normalerweise false bei selbstsignierten Zertifikaten)

Aliase: IPA_URL für IPA_HOST, IPA_USER für IPA_USERNAME, IPA_PASS für IPA_PASSWORD.

Befehlszeile

ipa-mcp                    # stdio (default)
ipa-cli groups             # CLI
ipa-cli setup-forge cartesia5 --hosts "host1.cloud.together.ai" --users "alice"

Cursor / Claude Code Integration

Cursor (.cursor/mcp.json oder .mcp.json)

{
  "mcpServers": {
    "ipa-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/ipa-mcp", "run", "ipa-mcp"],
      "env": {
        "IPA_HOST": "ipa.example.com",
        "IPA_USERNAME": "admin",
        "IPA_PASSWORD": "your-password"
      }
    }
  }
}

Claude Code

claude mcp add ipa-mcp -- uv --directory /path/to/ipa-mcp run ipa-mcp

Entwicklung

uv sync --all-groups
uv run ruff check src/ tests/
uv run ruff format src/ tests/
uv run pytest -v
uv run mypy src/

Projektstruktur

src/ipa_mcp/
├── config.py       # Pydantic Settings
├── ipa_client.py   # FreeIPA JSON-RPC client
├── server.py       # FastMCP tools and entrypoint
└── cli.py          # Typer CLI

Sicherheit

  • Anmeldeinformationen sind SecretStr und werden in Protokollen geschwärzt

  • Committen Sie niemals .env-Dateien mit echten Anmeldeinformationen

  • FreeIPA-Server verwenden oft selbstsignierte Zertifikate — IPA_VERIFY_SSL=false ist üblich

Lizenz

Apache License 2.0

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors