Manages Keycloak users and realms: create and delete users, list realms and list the users in a realm.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add keycloak-model-context-protocol --env KEYCLOAK_ADMIN='<KEYCLOAK_ADMIN>' --env KEYCLOAK_ADMIN_PASSWORD='<KEYCLOAK_ADMIN_PASSWORD>' --env KEYCLOAK_URL='<KEYCLOAK_URL>' -- npx -y keycloak-model-context-protocol~/.codex/config.toml
[mcp_servers.keycloak-model-context-protocol]
command = "npx"
args = ["-y", "keycloak-model-context-protocol"]
env = { KEYCLOAK_ADMIN = "<KEYCLOAK_ADMIN>", KEYCLOAK_ADMIN_PASSWORD = "<KEYCLOAK_ADMIN_PASSWORD>", KEYCLOAK_URL = "<KEYCLOAK_URL>" }
# codex mcp add keycloak-model-context-protocol --env KEYCLOAK_ADMIN='<KEYCLOAK_ADMIN>' --env KEYCLOAK_ADMIN_PASSWORD='<KEYCLOAK_ADMIN_PASSWORD>' --env KEYCLOAK_URL='<KEYCLOAK_URL>' -- npx -y keycloak-model-context-protocol~/.cursor/mcp.json
{
"mcpServers": {
"keycloak-model-context-protocol": {
"command": "npx",
"args": [
"-y",
"keycloak-model-context-protocol"
],
"env": {
"KEYCLOAK_ADMIN": "<KEYCLOAK_ADMIN>",
"KEYCLOAK_ADMIN_PASSWORD": "<KEYCLOAK_ADMIN_PASSWORD>",
"KEYCLOAK_URL": "<KEYCLOAK_URL>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"keycloak-model-context-protocol": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"keycloak-model-context-protocol"
],
"env": {
"KEYCLOAK_ADMIN": "<KEYCLOAK_ADMIN>",
"KEYCLOAK_ADMIN_PASSWORD": "<KEYCLOAK_ADMIN_PASSWORD>",
"KEYCLOAK_URL": "<KEYCLOAK_URL>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"keycloak-model-context-protocol": {
"command": "npx",
"args": [
"-y",
"keycloak-model-context-protocol"
],
"env": {
"KEYCLOAK_ADMIN": "<KEYCLOAK_ADMIN>",
"KEYCLOAK_ADMIN_PASSWORD": "<KEYCLOAK_ADMIN_PASSWORD>",
"KEYCLOAK_URL": "<KEYCLOAK_URL>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"keycloak-model-context-protocol": {
"command": "npx",
"args": [
"-y",
"keycloak-model-context-protocol"
],
"env": {
"KEYCLOAK_ADMIN": "<KEYCLOAK_ADMIN>",
"KEYCLOAK_ADMIN_PASSWORD": "<KEYCLOAK_ADMIN_PASSWORD>",
"KEYCLOAK_URL": "<KEYCLOAK_URL>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"keycloak-model-context-protocol": {
"command": "npx",
"args": [
"-y",
"keycloak-model-context-protocol"
],
"env": {
"KEYCLOAK_ADMIN": "<KEYCLOAK_ADMIN>",
"KEYCLOAK_ADMIN_PASSWORD": "<KEYCLOAK_ADMIN_PASSWORD>",
"KEYCLOAK_URL": "<KEYCLOAK_URL>"
}
}
}
}Environment variables
KEYCLOAK_ADMINKEYCLOAK_ADMIN_PASSWORDKEYCLOAK_URL
Replace the placeholders with your own credentials and keep them out of version control.