Skip to main content
Glama
dockndevai

mcp-keycloak

by dockndevai

mcp-keycloak

CI License: MIT

Un servidor de Model Context Protocol para Keycloak. Permite a un cliente compatible con MCP (Claude Desktop, Claude Code, etc.) inspeccionar y administrar los realms, usuarios, clientes, roles y grupos de Keycloak, con la seguridad controlada por completo mediante flags.

El objetivo de diseño es ser seguro por defecto: inicia en modo de solo lectura, limita el alcance a una lista de permitidos de realms, protege los realms protegidos frente a modificaciones y restringe las operaciones destructivas a una habilitación explícita.

Características

  • Multi-realm — toda herramienta recibe un argumento realm; delimítalo con una lista de permitidos.

  • Modos de accesoread-onlyread-writeadmin, ordenados en capas para que un modo nunca exponga herramientas por encima de su nivel.

  • Flags de seguridad — lista de permitidos de realms, realms protegidos, número de intentos de borrado, simulación (dry-run) y registro de auditoría JSON (ver más abajo).

  • Dos estrategias de autenticación — cuenta de servicio de cliente confidencial (recomendada) o nombre de usuario/contraseña de administrador.

  • Cero dependencias pesadas — un cliente REST de administración ligero y basado en fetch, más el MCP SDK y zod.

Related MCP server: mcp-keycloak-admin

Modelo de seguridad

Aspecto

Flag

Valor por defecto

Efecto

¿Qué puede hacer el servidor en general?

KEYCLOAK_MODE

read-only

read-only expone solo herramientas de lectura; read-write añade operaciones de modificación; admin añade herramientas destructivas. Las herramientas del modo superior nunca se registran.

¿Qué realms están en el alcance?

KEYCLOAK_REALM_ALLOWLIST

(todos)

Lista separada por comas. Cuando está definida, cualquier operación sobre un realm fuera de la lista es rechazada.

¿Qué realms son de solo lectura para siempre?

KEYCLOAK_PROTECTED_REALMS

master

Los realms protegidos se pueden leer, pero jamás modificar o eliminar, en todos los modos.

¿Puede eliminar?

KEYCLOAK_ALLOW_DELETE

false

Las herramientas delete_* requieren esto y el modo admin.

Vista previa sin tocar Keycloak

KEYCLOAK_DRY_RUN

false

Las herramientas de escritura/administración validan y registran la intención, y luego devuelven el control sin invocar Keycloak.

Registro de auditoría

KEYCLOAK_AUDIT_LOG

true

Emite una línea JSON a stderr por cada operación protegida (ALLOW / DENY / DRY_RUN).

Estas capas son independientes: por ejemplo, el modo admin con KEYCLOAK_ALLOW_DELETE=false puede crear y actualizar usuarios, pero no eliminarlos.

Tools

Lectura (read-only+): list_realms, get_realm, list_users, get_user, count_users, list_clients, list_realm_roles, list_groups

Escritura (read-write+): create_user, update_user, reset_password, logout_user

Administración (admin): delete_user

Uso con tu cliente MCP

Funciona con Claude Code, Claude Desktop, Cursor, OpenAI Codex CLI, Windsurf, VS Code (Copilot) y cualquier otro cliente de MCP; consulta docs/CLIENTS.md para la configuración de cada cliente.

Instalación

npm install
npm run build

Configuración

Copia .env.example y complétalo, o establece las variables directamente en la configuración de tu cliente de MCP. Una credencial con los roles de realm-management que necesites y un cliente confidencial es lo más recomendado.

Ejecutar con Claude Desktop / Claude Code

Añade la configuración de tu cliente de MCP (claude_desktop_config.json o a través de claude mcp add):

{
  "mcpServers": {
    "keycloak": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-keycloak/dist/index.js"],
      "env": {
        "KEYCLOAK_URL": "https://keycloak.example.com",
        "KEYCLOAK_CLIENT_ID": "admin-cli",
        "KEYCLOAK_CLIENT_SECRET": "your-secret",
        "KEYCLOAK_MODE": "read-only",
        "KEYCLOAK_REALM_ALLOWLIST": "app,customers"
      }
    }
  }
}

Sube KEYCLOAK_MODE a read-write (y, para eliminar, admin + KEYCLOAK_ALLOW_DELETE=true) solo cuando quieras permitir que el modelo realice cambios.

Desarrollo

npm run dev        # watch mode
npm test           # unit tests for the security policy
npm run typecheck

Publicación

Este servidor incluye un server.json para el registro oficial de MCP y un mcpName para validar la titularidad del paquete en npm. Consulta PUBLISHING.md para publicar en npm y aparecer en el registro de MCP, Smithery, Glama, Cursor y PulseMCP.

Licencia

MIT

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    An MCP server for Keycloak Admin REST API, enabling user, group, event, and security management through service account authentication.
    30
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables administrators to manage Keycloak realms, users, roles, clients, groups, and more through its Admin REST API, with safe-by-default configuration and destructive operation confirmation.
    56
    42
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that lets an AI assistant inspect and modify Keycloak realm, client, and protocol-mapper configuration across multiple Keycloak hosts.
    7
    87
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables administration of Keycloak identity and access management through MCP, allowing management of realms, clients, users, roles, groups, identity providers, and sessions from any MCP client.
    41
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Managed Keycloak from any MCP client: clusters, realms, apps, SSO, users, domains, audit events.

  • Remote MCP for A2A caller identity, scope policy, verdict receipts, and audit history.

  • The official MCP Server from Mia-Platform to interact with Mia-Platform Console

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dockndevai/mcp-keycloak'

If you have feedback or need assistance with the MCP directory API, please join our Discord server