mcp-keycloak
Keycloak MCP Server
Ein Model Context Protocol (MCP) Server, der eine natürlichsprachliche Schnittstelle zur Verwaltung von Keycloak Identitäts- und Zugriffsmanagement über dessen REST-API bereitstellt. Dieser Server ermöglicht es KI-Agenten, Benutzerverwaltung, Client-Konfiguration, Realm-Administration und rollenbasierte Zugriffskontrollen nahtlos durchzuführen.
Übersicht
Der Keycloak MCP Server schließt die Lücke zwischen KI-Anwendungen und den leistungsstarken Identitätsverwaltungsfunktionen von Keycloak. Egal, ob Sie einen KI-Assistenten entwickeln, der Benutzer verwalten, Clients konfigurieren oder komplexe Autorisierungsszenarien handhaben muss – dieser Server bietet die benötigten Werkzeuge durch einfache, natürlichsprachliche Befehle.
Related MCP server: Advanced Keycloak MCP server
Funktionen
🔐 Umfassende Benutzerverwaltung
Verwalten Sie den Lebenszyklus von Benutzern von der Erstellung bis zur Löschung, einschließlich Passwort-Resets, Sitzungsverwaltung und Aktualisierungen von Benutzerattributen.
🏢 Client-Konfiguration
Erstellen und konfigurieren Sie OAuth2/OIDC-Clients, verwalten Sie Client-Secrets und handhaben Sie Service-Accounts programmatisch.
👥 Rollenbasierte Zugriffskontrolle (RBAC)
Definieren und weisen Sie Realm- und Client-spezifische Rollen zu, verwalten Sie Benutzerberechtigungen und implementieren Sie eine fein abgestufte Zugriffskontrolle.
🏛️ Realm-Administration
Konfigurieren Sie Realm-Einstellungen, verwalten Sie Standardgruppen, handhaben Sie Ereigniskonfigurationen und steuern Sie Realm-weite Richtlinien.
🔐 Authentifizierungsverwaltung
Umfassende Verwaltung von Authentifizierungsabläufen, einschließlich Erstellung, Aktualisierung und Löschung von Abläufen, Verwaltung von Ausführungen und Konfiguration von Authentifikatoren.
🔄 Gruppenverwaltung
Organisieren Sie Benutzer in Gruppen, verwalten Sie Gruppenhierarchien und handhaben Sie gruppenbasierte Berechtigungen effizient.
Installation
Installation via Smithery
Um mcp-keycloak automatisch für Claude Desktop über Smithery zu installieren:
npx -y @smithery/cli install mcp-keycloak --client claudeSchnellstart
Installation mittels pip:
pip install mcp-keycloakEntwicklungsinstallation
Klonen Sie das Repository und installieren Sie die Abhängigkeiten:
git clone https://github.com/idoyudha/mcp-keycloak.git
cd mcp-keycloak
pip install -e .Konfiguration
Der Server kann über Umgebungsvariablen oder eine .env-Datei konfiguriert werden:
# Required configuration
SERVER_URL=https://your-keycloak-server.com
USERNAME=admin-username
PASSWORD=admin-password
REALM_NAME=your-realm
# Optional OAuth2 client configuration
CLIENT_ID=optional-client-id
CLIENT_SECRET=optional-client-secretWerkzeuge
Der Keycloak MCP Server bietet eine umfassende Reihe von Werkzeugen, die nach Funktionalität organisiert sind:
Benutzerverwaltung
Komplette Verwaltung des Benutzerlebenszyklus, einschließlich:
list_users- Benutzer mit Paginierung und Filterung auflistencreate_user/update_user/delete_user- Vollständige CRUD-Operationenreset_user_password- Passwortverwaltungget_user_sessions/logout_user- Sitzungskontrollecount_users- Benutzerstatistiken
Client-Verwaltung
OAuth2/OIDC-Client-Konfiguration:
list_clients/get_client/create_client- Client-Operationenget_client_secret/regenerate_client_secret- Secret-Verwaltungget_client_service_account- Zugriff auf Service-Accountsupdate_client/delete_client- Client-Modifikationen
Rollenverwaltung
Fein abgestufte Berechtigungskontrolle:
list_realm_roles/create_realm_role- Realm-Rollen-Operationenlist_client_roles/create_client_role- Client-spezifische Rollenassign_realm_role_to_user/remove_realm_role_from_user- Rollenzuweisungenget_user_realm_roles/assign_client_role_to_user- Abfragen von Benutzerrollen
Gruppenverwaltung
Hierarchische Benutzerorganisation:
list_groups/create_group/update_group- Gruppenoperationenget_group_members/add_user_to_group- Mitgliedschaftsverwaltungget_user_groups/remove_user_from_group- Benutzer-Gruppen-Zuordnungen
Realm-Administration
Systemweite Konfiguration:
get_accessible_realms- Liste der zugänglichen Realmsget_realm_info/update_realm_settings- Realm-Konfigurationget_realm_events_config/update_realm_events_config- Ereignisverwaltungadd_realm_default_group/remove_realm_default_group- Standardeinstellungen
Authentifizierungsverwaltung
Komplette Kontrolle über Authentifizierungsabläufe:
list_authentication_flows/get_authentication_flow- Ablaufverwaltungcreate_authentication_flow/update_authentication_flow- Ablauf-CRUD-Operationendelete_authentication_flow/copy_authentication_flow- Ablaufmodifikationenget_flow_executions/update_flow_executions- Ausführungsverwaltungcreate_execution/delete_execution- Lebenszyklus von Ausführungenget_authenticator_config/create_authenticator_config- Konfigurationsverwaltungget_required_actions/update_required_action- Kontrolle erforderlicher Aktionen
Verwendung
Ausführen des Servers
Der Server unterstützt sowohl stdio (Standard) als auch HTTP-Transporte. Die Konfigurationsdatei smithery.yaml ermöglicht die Bereitstellung auf der Smithery-Plattform und die automatische Installation über die Smithery CLI:
# Run in stdio mode (default, for local CLI tools)
python -m src.main
# Run in HTTP mode with streamable HTTP transport
TRANSPORT=http python -m src.main
# Run HTTP mode on a custom port
TRANSPORT=http PORT=8080 python -m src.main
# Or use the convenience script:
./scripts/run_server.sh # stdio mode (default)
./scripts/run_server.sh http # HTTP mode
PORT=8080 ./scripts/run_server.sh http # HTTP mode on custom portBei Verwendung des HTTP-Transports ist der Server unter http://127.0.0.1:8000/mcp/ (oder Ihrem benutzerdefinierten PORT) erreichbar.
HTTP-Transport
Der Keycloak MCP Server unterstützt den HTTP-Transportmodus, der mehrere Vorteile bietet:
Netzwerkzugänglichkeit: Zugriff auf den Server von jedem Gerät in Ihrem Netzwerk
Mehrere Clients: Unterstützung gleichzeitiger Verbindungen von mehreren KI-Clients
Integrationsflexibilität: Einfache Integration in Webanwendungen und APIs
Lastverteilung: Bereitstellung hinter einem Reverse-Proxy für Skalierbarkeit
Details zum HTTP-Protokoll
Der HTTP-Transport folgt der MCP-Spezifikation für Streamable HTTP. FastMCP handhabt automatisch alle Protokollanforderungen:
Endpunkt: Die gesamte Kommunikation erfolgt über den
/mcp/-EndpunktAnfragemethode: POST-Anfragen mit JSON-RPC 2.0-Nachrichten
Inhaltstypen:
Der Server gibt
Content-Type: application/jsonfür einzelne Antworten zurückDer Server gibt
Content-Type: text/event-streamfür Streaming-Antworten zurück
Accept-Header: Clients müssen
Accept: application/json, text/event-streamenthaltenNachrichtenformat: Alle Nachrichten verwenden das JSON-RPC 2.0-Format, UTF-8 kodiert
FastMCP bestimmt automatisch basierend auf dem Anfragetyp und ob die Antwort Streaming-Fähigkeiten erfordert, ob eine einzelne JSON-Antwort oder ein SSE-Stream zurückgegeben werden soll.
Verbindung zum HTTP-Server
Im HTTP-Modus können sich Clients wie folgt verbinden:
http://127.0.0.1:8000/mcp/Beispiel für eine Client-Anfrage:
curl -X POST http://localhost:8000/mcp/ \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "method": "list_tools", "id": 1}'Sicherheitsimplementierung
Der HTTP-Transport implementiert alle Sicherheitsanforderungen der MCP-Spezifikation:
✅ Validierung des Origin-Headers (ERFORDERLICH)
Validiert automatisch Origin-Header, um DNS-Rebinding-Angriffe zu verhindern
Erlaubt nur Verbindungen von
localhostund127.0.0.1-UrsprüngenBlockiert nicht autorisierte Cross-Origin-Anfragen
✅ Localhost-Bindung (EMPFOHLEN)
Bindet nur an
127.0.0.1, um netzwerkbasierte Angriffe zu verhindernFolgt den Sicherheitsempfehlungen der MCP-Spezifikation
✅ Keine Authentifizierung erforderlich
Der Server läuft ohne Authentifizierungsanforderungen für eine vereinfachte lokale Entwicklung
Geeignet für die Nutzung auf localhost und in vertrauenswürdigen Umgebungen
Für Produktionsbereitstellungen sind zusätzliche Überlegungen erforderlich:
Verwendung von HTTPS mit ordnungsgemäßen Zertifikaten
Bereitstellung hinter einem Reverse-Proxy (nginx, Apache)
Festlegen geeigneter Firewall-Regeln
Implementierung einer Authentifizierung auf Ebene des Reverse-Proxys, falls erforderlich
Integrationsbeispiele
Voraussetzungen
Stellen Sie vor der Integration des Keycloak MCP Servers sicher, dass eines der folgenden Programme installiert ist:
uvx (empfohlen): Installation über
pip install uvxoderpipx install uvxuv: Folgen Sie den Installationsanweisungen
npm/npx: Für die Smithery-Installation (wird mit Node.js geliefert)
Option 1: Verwendung der Smithery CLI (Empfohlen)
Der einfachste Weg – konfiguriert automatisch alles für Claude Desktop:
npx @smithery/cli install @idoyudha/mcp-keycloak --client claudeDieser Befehl fragt Sie nach den erforderlichen Konfigurationswerten und richtet den Server automatisch ein.
Option 2: Verwendung von uvx (Manuelle Einrichtung)
Kein Klonen erforderlich! Fügen Sie dies zu Ihrer claude_desktop_config.json hinzu:
{
"mcpServers": {
"keycloak": {
"command": "uvx",
"args": ["mcp-keycloak"],
"env": {
"SERVER_URL": "https://your-keycloak.com",
"USERNAME": "admin",
"PASSWORD": "admin-password",
"REALM_NAME": "your-realm"
}
}
}
}Option 3: Lokale Entwicklungseinrichtung
Für Entwicklung oder Anpassungen:
Klonen Sie das Repository:
git clone https://github.com/idoyudha/mcp-keycloak.git
cd mcp-keycloakFügen Sie dies zu Ihrer
claude_desktop_config.jsonhinzu:
{
"mcpServers": {
"keycloak": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-keycloak",
"run",
"python",
"-m",
"src"
],
"env": {
"SERVER_URL": "https://your-keycloak.com",
"USERNAME": "admin",
"PASSWORD": "admin-password",
"REALM_NAME": "your-realm"
}
}
}
}💡 Kurztipps:
Ersetzen Sie
/path/to/mcp-keycloakdurch den tatsächlichen Pfad, in den Sie das Repository geklont habenStellen Sie sicher, dass Ihre Keycloak-Server-URL das Protokoll (
https://oderhttp://) enthältDer
REALM_NAMEsollte mit einem existierenden Realm in Ihrer Keycloak-Instanz übereinstimmen
Anwendungsbeispiele
🤖 KI-gestützte Identitätsverwaltung
Erstellen Sie KI-Assistenten, die Benutzer-Onboarding, Berechtigungsverwaltung und Zugriffskontrolle durch natürlichsprachliche Befehle handhaben können.
🔄 Automatisierte Benutzerbereitstellung
Erstellen Sie Workflows, die Benutzer automatisch bereitstellen, Rollen zuweisen und Client-Anwendungen basierend auf Geschäftsregeln konfigurieren.
📊 Identitätsanalyse
Fragen und analysieren Sie Benutzerdaten, Sitzungsinformationen und Zugriffsmuster, um Einblicke in Ihre Identitätsinfrastruktur zu gewinnen.
🚀 DevOps-Integration
Integrieren Sie die Keycloak-Verwaltung in Ihre CI/CD-Pipelines, was eine automatisierte Konfiguration von Identitätsdiensten ermöglicht.
Anforderungen
Python 3.8 oder höher
Keycloak-Server (getestet mit Keycloak 18+)
Administratorzugriff auf den Keycloak-Realm
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die LICENSE-Datei für Details.
Mitwirken
Beiträge sind willkommen! Bitte fühlen Sie sich frei, einen Pull Request einzureichen.
Support
Für Probleme, Fragen oder Beiträge besuchen Sie bitte das GitHub-Repository.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables management of Keycloak users and realms through a standardized interface, providing tools for user creation, deletion, role assignment, and group management.98713MIT
- MIT
- AlicenseCqualityCmaintenanceEnables management of Keycloak identity and access management through the Keycloak Admin REST API, providing 299 tools for operations like user management, client configuration, and realm administration via natural language.1003MIT
- AlicenseAqualityAmaintenanceEnables administrators to manage Keycloak realms, users, roles, clients, groups, and more through its Admin REST API, with safe-by-default configuration and destructive operation confirmation.56421MIT
Related MCP Connectors
Managed Keycloak from any MCP client: clusters, realms, apps, SSO, users, domains, audit events.
Self-hosted federated MCP gateway: one OAuth 2.1 MCP server in front of N apps, user-level scopes.
Issue, rotate and revoke scoped API-key passes for 25+ providers — the agent never sees a real key
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/idoyudha/mcp-keycloak'
If you have feedback or need assistance with the MCP directory API, please join our Discord server