Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Administer Keycloak via its Admin REST API: users, roles, clients, groups, IdP, events.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
KEYCLOAK_BASE_URL, KEYCLOAK_REALM, AUTH_MODE, KC_CLIENT_ID, KC_CLIENT_SECRET, KC_ADMIN_USERNAME, KC_ADMIN_PASSWORD, KC_ADMIN_REALM, READ_ONLY, ALLOWED_REALMSAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"keycloak-admin": {
"command": "npx",
"args": [
"-y",
"mcp-keycloak-admin"
],
"env": {
"KEYCLOAK_BASE_URL": "your-value",
"KEYCLOAK_REALM": "your-value",
"AUTH_MODE": "your-value",
"KC_CLIENT_ID": "your-value",
"KC_CLIENT_SECRET": "your-value",
"KC_ADMIN_USERNAME": "your-value",
"KC_ADMIN_PASSWORD": "your-value",
"KC_ADMIN_REALM": "your-value",
"READ_ONLY": "your-value",
"ALLOWED_REALMS": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add keycloak-admin --env KEYCLOAK_BASE_URL=your-value --env KEYCLOAK_REALM=your-value --env AUTH_MODE=your-value --env KC_CLIENT_ID=your-value --env KC_CLIENT_SECRET=your-value --env KC_ADMIN_USERNAME=your-value --env KC_ADMIN_PASSWORD=your-value --env KC_ADMIN_REALM=your-value --env READ_ONLY=your-value --env ALLOWED_REALMS=your-value -- npx -y mcp-keycloak-adminTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"keycloak-admin": {
"command": "npx",
"args": [
"-y",
"mcp-keycloak-admin"
],
"env": {
"KEYCLOAK_BASE_URL": "your-value",
"KEYCLOAK_REALM": "your-value",
"AUTH_MODE": "your-value",
"KC_CLIENT_ID": "your-value",
"KC_CLIENT_SECRET": "your-value",
"KC_ADMIN_USERNAME": "your-value",
"KC_ADMIN_PASSWORD": "your-value",
"KC_ADMIN_REALM": "your-value",
"READ_ONLY": "your-value",
"ALLOWED_REALMS": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"keycloak-admin": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-keycloak-admin"
],
"env": {
"KEYCLOAK_BASE_URL": "your-value",
"KEYCLOAK_REALM": "your-value",
"AUTH_MODE": "your-value",
"KC_CLIENT_ID": "your-value",
"KC_CLIENT_SECRET": "your-value",
"KC_ADMIN_USERNAME": "your-value",
"KC_ADMIN_PASSWORD": "your-value",
"KC_ADMIN_REALM": "your-value",
"READ_ONLY": "your-value",
"ALLOWED_REALMS": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
KC_CLIENT_ID envKC_ADMIN_USERNAME envKC_ADMIN_REALM envREAD_ONLY envALLOWED_REALMS envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto mrz1880 bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: KEYCLOAK_BASE_URL, KEYCLOAK_REALM, AUTH_MODE, KC_CLIENT_SECRET, KC_ADMIN_PASSWORD
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.2.3) kam vor 4 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Foliosio
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Read your support inbox, tag conversations and save draft replies from your AI agent. Never sends.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
A Model Context Protocol (MCP) server to administer a Keycloak instance through its Admin REST API. Safe by default, configurable, and built with a clean, test-driven architecture.
Compatible with Keycloak 26.x (validated against 26.0.5).
No install needed — run it straight from npm with npx:
npx -y mcp-keycloak-admin
The server speaks MCP over stdio, so you normally wire it into an MCP client rather than running it by hand — see Usage with an MCP client. New to it? The Quickstart spins up a local Keycloak and a client config in a couple of minutes.
Administering Keycloak from an MCP client (an assistant, an IDE, a custom agent) means exposing day-to-day operations — searching users, managing roles, reading events — as MCP tools, without handing over a raw admin console. This server does that with strong guardrails so destructive actions never happen silently.
service_account — a confidential client with a service account (recommended; no admin password stored).password — the admin-cli client with an admin username/password.READ_ONLY mode hides every write/destructive tool.ALLOWED_REALMS restricts which realms the server may operate on.confirm: true parameter fallback for clients that do not support elicitation).Add the server to your MCP client configuration:
{
"mcpServers": { "keycloak-admin": { "command": "npx", "args": ["-y", "mcp-keycloak-admin"], "env": { "KEYCLOAK_BASE_URL": "http://localhost:8080", "KEYCLOAK_REALM": "demo-realm", "AUTH_MODE": "service_account", "KC_CLIENT_ID": "mcp-admin", "KC_CLIENT_SECRET": "your-secret" } } } }
See docs/setup-keycloak.md to create the mcp-admin client and grant it the least-privilege roles it needs.
Each server entry targets one Keycloak (one base URL + realm + auth). To manage several environments, add one entry per instance — each fully isolated, with its own credentials and guardrails:
{
"mcpServers": { "kc-preprod": { "command": "npx", "args": ["-y", "mcp-keycloak-admin"], "env": { "KEYCLOAK_BASE_URL": "https://preprod.example.com", "KEYCLOAK_REALM": "preprod-realm", "AUTH_MODE": "service_account", "KC_CLIENT_ID": "mcp-admin", "KC_CLIENT_SECRET": "…", "ALLOWED_REALMS": "preprod-realm" } }, "kc-prod": { "command": "npx", "args": ["-y", "mcp-keycloak-admin"], "env": { "KEYCLOAK_BASE_URL": "https://auth.example.com", "KEYCLOAK_REALM": "prod-realm", "AUTH_MODE": "service_account", "KC_CLIENT_ID": "mcp-admin", "KC_CLIENT_SECRET": "…", "READ_ONLY": "true", "ALLOWED_REALMS": "prod-realm" } } } }
The client namespaces the tools per server (e.g. kc-prod:keycloak_user_delete), so there's no risk of running an operation against the wrong environment. This is the recommended pattern: you can, for example, keep production READ_ONLY while preprod stays writable.
| Variable | Required | Description |
|---|---|---|
KEYCLOAK_BASE_URL | yes | Base URL of the Keycloak server (no trailing slash). |
KEYCLOAK_REALM | yes | Realm the server operates on. |
AUTH_MODE | yes | service_account or password. |
KC_CLIENT_ID | if service_account | Confidential client id (e.g. mcp-admin). |
KC_CLIENT_SECRET | if service_account | Client secret. |
KC_ADMIN_USERNAME | if password | Admin username. |
KC_ADMIN_PASSWORD | if password | Admin password. |
KC_ADMIN_REALM | no (default master) | Realm holding the admin user (password mode). |
READ_ONLY | no (default false) | When true, write/destructive tools are not registered. |
ALLOWED_REALMS | no | Comma-separated allow-list of realms. Empty = all. |
A full example lives in .env.example.
Levels: [R] read-only · [W] write · [D] destructive (requires confirmation). Every tool carries the matching MCP annotations (readOnlyHint / destructiveHint / idempotentHint).
Currently implemented:
Note: this table tracks the
mainbranch, which can run ahead of the
latest npm release shown by the version badge above. To confirm what's
available in your install, check
npm view mcp-keycloak-admin versionand pin
mcp-keycloak-admin@latest.
| Tool | Level | Description |
|---|---|---|
keycloak_user_search | R | Search realm users by email, username or free text. |
keycloak_user_get | R | Fetch a single user by id. |
keycloak_user_sessions_list | R | List a user's active sessions. |
keycloak_user_create | W | Create a realm user. |
keycloak_user_update | W | Update a user's email, name or enabled flag. |
keycloak_user_set_enabled | W | Enable or disable a user. |
keycloak_user_send_action_email | W | Send a required-actions email. |
keycloak_user_reset_password | D | Set a new password for a user. |
keycloak_user_logout | D | Revoke all of a user's sessions. |
keycloak_user_delete | D | Permanently delete a user (id + username must match). |
keycloak_role_list | R | List realm roles. |
keycloak_user_roles_get | R | List a user's realm roles. |
keycloak_user_role_assign | W | Grant a realm role to a user. |
keycloak_user_role_unassign | D | Revoke a realm role from a user. |
keycloak_client_roles_list | R | List the roles defined on a client. |
keycloak_user_client_roles_get | R | List a user's client roles. |
keycloak_user_client_role_assign | W | Grant a client role to a user. |
keycloak_user_client_role_unassign | D | Revoke a client role from a user. |
keycloak_client_list | R | List the realm clients. |
keycloak_client_create | W | Create a realm client. |
keycloak_client_update | W | Update a client (enabled, public, redirect URIs, CORS web origins). |
keycloak_client_delete | D | Delete a client. |
keycloak_client_get | R | Fetch a client by its clientId. |
keycloak_client_get_secret | R | Read a client secret (masked unless reveal). |
keycloak_client_scopes_list | R | List the realm's client scopes. |
keycloak_client_default_scopes_get | R | List a client's default scopes. |
keycloak_client_mappers_list | R | List a client's protocol mappers. |
keycloak_client_scope_assign | W | Add a default scope to a client. |
keycloak_client_scope_unassign | D | Remove a default scope from a client. |
keycloak_client_regenerate_secret | D | Regenerate a client secret (old one stops working). |
keycloak_group_list | R | List the realm's top-level groups. |
keycloak_group_members_list | R | List the members of a group. |
keycloak_user_groups_list | R | List the groups a user belongs to. |
keycloak_group_create | W | Create a top-level group. |
keycloak_group_member_add | W | Add a user to a group. |
keycloak_group_role_assign | W | Grant a realm role to a group. |
keycloak_group_member_remove | D | Remove a user from a group. |
keycloak_group_delete | D | Delete a group. |
keycloak_idp_list | R | List identity providers. |
keycloak_idp_get | R | Fetch an identity provider by alias. |
keycloak_idp_mappers_list | R | List an identity provider's mappers. |
keycloak_idp_create | W | Create an identity provider. |
keycloak_idp_delete | D | Delete an identity provider. |
keycloak_federation_list | R | List user federation (LDAP/Kerberos) providers. |
| `keyclo
Nur der Anfang wird gezeigt; den Rest findest du im Repo