There is no partial surface here and no read-only mode: every admin endpoint is registered, so the only thing standing between an assistant and a deleted realm is the Keycloak role attached to the credential you configured. The author says this plainly and gives the specific roles to grant instead of admin. Treat the credential as the permission model, because it is.
An MCP server that exposes the complete Keycloak Admin REST API as typed tools. Each tool is self-describing with a full input schema, authentication is handled internally with automatic token refresh, and both stdio and SSE transports are supported.
- 299 tools covering every Keycloak Admin REST API endpoint, grouped by the API's own categories — Users (30), Clients (33), Roles (28), Scope Mappings (29), Authentication Management (38), Realms Admin (37), Identity Providers (15), Protocol Mappers (14), Organizations (13), Groups (11), Client Scopes (10), Client Role Mappings (10), Roles by ID (10), Client Certificates (6), Components (6), Attack Detection (3), Client Initial Access (3), Client Registration Policy (1) and Keys (2)
- Named operations rather than a generic REST caller — `list_realms`, `create_user`, `list_clients`, `get_user_role_mappings`, `add_group_realm_role_mappings` and the rest, each with its own schema
- Two authentication flows with automatic token refresh: password, or client credentials via a service account
- Dual transport — stdio for Claude Code, or SSE on a port you choose for GitHub Copilot and other clients
A Keycloak instance and an admin-capable credential. `KEYCLOAK_URL` is required. Then either password auth with `KEYCLOAK_ADMIN_USERNAME` and `KEYCLOAK_ADMIN_PASSWORD`, or client credentials with `KEYCLOAK_CLIENT_ID` and `KEYCLOAK_CLIENT_SECRET`; `KEYCLOAK_ADMIN_REALM` (default `master`) and `KEYCLOAK_VERIFY_SSL` (default `true`) are optional. Python 3.11 or newer. Install it from the git URL with pip, or `uv pip install -e .` from a clone. **The author's own security warning applies**: all 299 tools are registered, including sensitive writes like creating and deleting users, resetting passwords and managing realms, so do not point it at master-realm super-admin credentials in production. Use a service account, scope `KEYCLOAK_ADMIN_REALM` to the exact realm the assistant should manage, grant only the minimum roles — `view-users`, `view-clients` or `view-realm` for read-only work, `manage-users` for user management — and keep SSL verification on. MIT licensed.
