A side-by-side look at the MCP Keycloak Admin and Authentik MCP Server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Keycloak Admin for security work as a local process; choose Authentik MCP Server for security as a local process. You can also run both side by side in one mcpServers block.
KEYCLOAK_BASE_URL, KEYCLOAK_REALM, AUTH_MODE, KC_CLIENT_ID, KC_CLIENT_SECRET, KC_ADMIN_USERNAME, KC_ADMIN_PASSWORD, READ_ONLY.keycloak_user_search, keycloak_user_get, keycloak_user_sessions_list.AUTHENTIK_URL, AUTHENTIK_TOKEN.authentik_admin_system_info, authentik_admin_version, authentik_admin_settings_get.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Security | Security |
| Quality signal | 61/100 · Good | 56/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | other | Not declared |
| Pricing | Free | Not declared |
| Required env vars | KEYCLOAK_BASE_URLKEYCLOAK_REALMAUTH_MODEKC_CLIENT_IDKC_CLIENT_SECRETKC_ADMIN_USERNAMEKC_ADMIN_PASSWORDREAD_ONLY | AUTHENTIK_URLAUTHENTIK_TOKEN |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2 | 14 |
| Directory activity | 2 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 56 | 80 |
| Full listing | View MCP Keycloak Admin | View Authentik MCP Server |
keycloak_user_searchSearch realm users by email, username or free text.keycloak_user_getFetch a single user by id.keycloak_user_sessions_listList a user's active sessions.keycloak_user_createCreate a realm user.keycloak_user_updateUpdate a user's email, name or enabled flag.keycloak_user_set_enabledEnable or disable a user.keycloak_user_send_action_emailSend a required-actions email.keycloak_user_reset_passwordSet a new password for a user.keycloak_user_logoutRevoke all of a user's sessions.keycloak_user_deletePermanently delete a user (id + username must match).keycloak_role_listList realm roles.keycloak_user_roles_getList a user's realm roles.authentik_admin_system_infoGet system information including HTTP host, runtime environment, server time, and embedded outpost statusauthentik_admin_versionGet Authentik version information including current version and build hashauthentik_admin_settings_getGet current system settingsauthentik_admin_settings_updateUpdate system settings (partial update)authentik_admin_appsList installed Django applications in the Authentik instanceauthentik_admin_modelsList all data models available in the Authentik instanceauthentik_admin_version_historyList Authentik version history entriesauthentik_admin_system_task_triggerTrigger all system tasks (e.g., cleanup, cache clear)authentik_authenticators_listList all authenticator devices across all types for the current userauthentik_authenticators_admin_by_type_listList authenticator devices of a specific type (admin view)authentik_authenticators_admin_by_type_getGet a single authenticator device by type and ID (admin view)authentik_authenticators_admin_by_type_deleteDelete an authenticator device by type and ID (admin view)Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"mrz1880-mcp-keycloak-admin": {
"command": "npx",
"args": [
"-y",
"mcp-keycloak-admin"
],
"env": {
"KEYCLOAK_BASE_URL": "YOUR_KEYCLOAK_BASE_URL_HERE",
"KEYCLOAK_REALM": "YOUR_KEYCLOAK_REALM_HERE",
"AUTH_MODE": "YOUR_AUTH_MODE_HERE",
"KC_CLIENT_ID": "YOUR_KC_CLIENT_ID_HERE",
"KC_CLIENT_SECRET": "YOUR_KC_CLIENT_SECRET_HERE",
"KC_ADMIN_USERNAME": "YOUR_KC_ADMIN_USERNAME_HERE",
"KC_ADMIN_PASSWORD": "YOUR_KC_ADMIN_PASSWORD_HERE",
"READ_ONLY": "YOUR_READ_ONLY_HERE"
}
}
}
}
{
"mcpServers": {
"authentik-mcp-server": {
"command": "npx",
"args": [
"-y",
"@samik081/mcp-authentik"
],
"env": {
"AUTHENTIK_URL": "YOUR_AUTHENTIK_URL_HERE",
"AUTHENTIK_TOKEN": "YOUR_AUTHENTIK_TOKEN_HERE"
}
}
}
}