Skip to main content
Glama
dockndevai

mcp-keycloak

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KEYCLOAK_URLYesBase URL of your Keycloak server (e.g., https://keycloak.example.com). Required for authentication to Keycloak.
KEYCLOAK_MODENoAccess mode for the server: read-only (default), read-write, or admin. Higher modes expose additional tools.read-only
KEYCLOAK_DRY_RUNNoWhen true, write/admin tools validate and log intent without calling Keycloak.false
KEYCLOAK_AUDIT_LOGNoEmits a JSON line to stderr per guarded operation (ALLOW / DENY / DRY_RUN).true
KEYCLOAK_CLIENT_IDNoClient ID for the confidential-client service account authentication strategy.
KEYCLOAK_ALLOW_DELETENoSet to true to enable delete_* tools (requires admin mode).false
KEYCLOAK_CLIENT_SECRETNoClient secret for the confidential-client service account authentication strategy.
KEYCLOAK_ADMIN_PASSWORDNoPassword for the admin username/password authentication strategy.
KEYCLOAK_ADMIN_USERNAMENoUsername for the admin username/password authentication strategy.
KEYCLOAK_REALM_ALLOWLISTNoComma-separated allowlist of realms that can be accessed. If not set, all realms are allowed.
KEYCLOAK_PROTECTED_REALMSNoComma-separated list of realms that are read-only forever and cannot be mutated or deleted, regardless of mode.master

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_realmsA

List all realms visible to the configured credentials. Realms outside the allowlist are filtered out.

get_realmC

Fetch the configuration of a single realm.

list_usersB

List users in a realm. Supports free-text search and pagination. Passwords and secrets are never returned by Keycloak.

get_userB

Fetch a single user representation by their Keycloak id.

count_usersA

Return the number of users in a realm, optionally matching a search term.

list_clientsA

List OAuth/OIDC clients configured in a realm. Client secrets are not included.

list_realm_rolesC

List the realm-level roles defined in a realm.

list_groupsC

List groups in a realm.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a clearly distinct resource and action: get_realm vs list_realms, list_users vs get_user vs count_users, and list_clients/list_realm_roles/list_groups all have separate scopes. Descriptions make the boundaries explicit, so an agent should not confuse them.

Naming Consistency5/5

All tool names use snake_case with a consistent verb_noun pattern: get_realm, list_users, get_user, count_users, list_clients, list_realm_roles, list_groups, list_realms. There are no mixed conventions or vague verbs.

Tool Count5/5

The server exposes 8 tools, which is well-scoped for a focused Keycloak read/inspection surface. No tool feels redundant, and the count avoids both bloat and a thin single-tool interface.

Completeness2/5

The surface is read-only and omits all create, update, and delete operations for realms, users, clients, roles, and groups. Even read coverage is incomplete, since there is no get_client, get_group, or get_role, leaving significant gaps for typical Keycloak administration.

Maintenance

ActivityMaintained
ResponsivenessNo issues