mcp-keycloak
mcp-keycloak
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 acceso —
read-only→read-write→admin, 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? |
|
|
|
¿Qué realms están en el alcance? |
| (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? |
|
| Los realms protegidos se pueden leer, pero jamás modificar o eliminar, en todos los modos. |
¿Puede eliminar? |
|
| Las herramientas |
Vista previa sin tocar Keycloak |
|
| Las herramientas de escritura/administración validan y registran la intención, y luego devuelven el control sin invocar Keycloak. |
Registro de auditoría |
|
| Emite una línea JSON a stderr por cada operación protegida ( |
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 buildConfiguració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 typecheckPublicació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
Maintenance
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
- AlicenseAqualityAmaintenanceAn MCP server for Keycloak Admin REST API, enabling user, group, event, and security management through service account authentication.30MIT
- AlicenseAqualityAmaintenanceEnables 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.56421MIT
- AlicenseAqualityCmaintenanceAn MCP server that lets an AI assistant inspect and modify Keycloak realm, client, and protocol-mapper configuration across multiple Keycloak hosts.787MIT
- AlicenseNot gradedqualityBmaintenanceEnables 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.41Apache 2.0
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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