MCP Hub
Back to servers

KeyCloak MCP

MCP server for KeyCloak Admin REST API via Service Account

Registry
Updated
Apr 10, 2026

Quick Install

uvx keycloak-mcp

keycloak-mcp

English | 日本語

MCP (Model Context Protocol) server for KeyCloak Admin REST API.

Uses Client Credentials Grant (Service Account) — no user password or TOTP required. Infinispan-safe: does not create user sessions or use the userinfo endpoint.

Features

User Management

ToolDescription
count_usersGet total user count in the realm
search_usersSearch users by username, email, or name
get_userGet detailed user information by username
reset_passwordReset a user's password
reset_passwords_batchReset passwords for multiple users from CSV
get_user_sessionsGet active sessions for a user (local time)
logout_userForce logout a user by removing all sessions

Group Management

ToolDescription
list_user_groupsList groups a user belongs to
list_users_by_groupList all members of a group

Security Monitoring

ToolDescription
get_brute_force_statusCheck if a user is locked by brute force detection
get_login_failures_by_ipLogin failure statistics by source IP (with site labels)
detect_login_loopsDetect users with rapid repeated logins (redirect loop detection)

Event Analytics

ToolDescription
get_eventsGet events with filters (type, username, client, IP, date). Resolves username to user ID automatically
get_login_statsLogin success/failure statistics with full pagination
get_login_stats_by_hourLogin statistics by hour (local time)
get_login_stats_by_clientLogin statistics by client (SP)
get_password_update_eventsPassword update event history

Session & Client

ToolDescription
get_session_statsActive session count per client
get_client_sessionsActive sessions for a specific client
list_clientsList all SAML/OIDC clients
get_realm_rolesList all realm-level roles

Setup

# uv
uv pip install keycloak-mcp

# pip
pip install keycloak-mcp

Or from source:

git clone https://github.com/shigechika/keycloak-mcp.git
cd keycloak-mcp

# uv
uv sync

# pip
pip install -e .

Configuration

Set the following environment variables:

VariableDescriptionDefault
KEYCLOAK_URLKeyCloak base URL (e.g., https://sso.example.com)required
KEYCLOAK_REALMRealm namemaster
KEYCLOAK_CLIENT_IDService Account client IDrequired
KEYCLOAK_CLIENT_SECRETClient secretrequired
KEYCLOAK_SITES_INIPath to INI file for IP-to-site classification (optional)

KeyCloak Client Setup

  1. Create a new client in KeyCloak Admin Console
  2. Enable Client authentication and Service account roles
  3. Assign realm roles: view-users, view-events, view-clients, manage-users (for password reset)

Usage

Claude Code

Add to .mcp.json:

{
  "mcpServers": {
    "keycloak-mcp": {
      "type": "stdio",
      "command": "keycloak-mcp",
      "env": {
        "KEYCLOAK_URL": "https://sso.example.com",
        "KEYCLOAK_CLIENT_ID": "keycloak-mcp",
        "KEYCLOAK_CLIENT_SECRET": ""
      }
    }
  }
}

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "keycloak-mcp": {
      "command": "keycloak-mcp",
      "env": {
        "KEYCLOAK_URL": "https://sso.example.com",
        "KEYCLOAK_CLIENT_ID": "keycloak-mcp",
        "KEYCLOAK_CLIENT_SECRET": ""
      }
    }
  }
}

Direct Execution

export KEYCLOAK_URL=https://sso.example.com
export KEYCLOAK_CLIENT_ID=keycloak-mcp
export KEYCLOAK_CLIENT_SECRET=your-secret
keycloak-mcp

Development

git clone https://github.com/shigechika/keycloak-mcp.git
cd keycloak-mcp

# uv
uv sync --dev
uv run pytest -v
uv run ruff check .

# pip
python3 -m venv .venv
.venv/bin/pip install -e . && .venv/bin/pip install pytest pytest-cov respx ruff
.venv/bin/pytest -v
.venv/bin/ruff check .

License

MIT

Reviews

No reviews yet

Sign in to write a review