Octodet Keycloak MCP Server
Un potent servidor Model Context Protocol per a l'administració de Keycloak, que ofereix un conjunt complet d'eines per gestionar usuaris, realms, rols i altres recursos de Keycloak a través d'interfícies LLM.
Característiques
- Gestió d'usuaris: Crear, eliminar i llistar usuaris a través de realms.
- Administració de realms: Capacitats completes de gestió de realms.
- Integració segura: Autenticació amb credencials d'administrador.
- Configuració fàcil: Configuració simple amb variables d'entorn.
- Integració LLM: Ús sense esforç amb Claude, ChatGPT i altres assistents AI compatibles amb MCP.
Instal·lació
Via NPM (Recomanat)
El servidor està disponible com a paquet NPM:
# Ús directe amb npx
npx -y @octodet/keycloak-mcp
# O instal·lació global
npm install -g @octodet/keycloak-mcp
Configuració
Variables d'entorn
- KEYCLOAK_URL: URL del servidor Keycloak (per defecte: http://localhost:8080)
- KEYCLOAK_ADMIN: Nom d'usuari administrador (per defecte: admin)
- KEYCLOAK_ADMIN_PASSWORD: Contrasenya d'administrador (per defecte: admin)
- KEYCLOAK_REALM: Realm per defecte (per defecte: master)
Configuració del client MCP
VS Code
Afegiu això al vostre settings.json:
{
"mcp.servers": {
"keycloak": {
"command": "npx",
"args": ["-y", "@octodet/keycloak-mcp"],
"env": {
"KEYCLOAK_URL": "http://localhost:8080",
"KEYCLOAK_ADMIN": "admin",
"KEYCLOAK_ADMIN_PASSWORD": "admin"
}
}
}
}
Claude Desktop
Configureu al vostre fitxer de configuració de Claude Desktop:
{
"mcpServers": {
"keycloak": {
"command": "npx",
"args": ["-y", "@octodet/keycloak-mcp"],
"env": {
"KEYCLOAK_URL": "http://localhost:8080",
"KEYCLOAK_ADMIN": "admin",
"KEYCLOAK_ADMIN_PASSWORD": "admin"
}
}
}
}
Per al desenvolupament local
{
"mcpServers": {
"keycloak": {
"command": "node",
"args": ["path/to/build/index.js"],
"env": {
"KEYCLOAK_URL": "http://localhost:8080",
"KEYCLOAK_ADMIN": "admin",
"KEYCLOAK_ADMIN_PASSWORD": "admin"
}
}
}
}
Eines disponibles
El servidor proporciona un conjunt complet d'eines MCP per a l'administració de Keycloak. Cada eina està dissenyada per realitzar tasques administratives específiques a través de realms, usuaris i rols.
Visió general d'eines
create-user– Gestió d'usuaris – Crear un usuari nou en un realm específic.delete-user– Gestió d'usuaris – Eliminar un usuari existent d'un realm.list-users– Gestió d'usuaris – Llistar tots els usuaris d'un realm específic.list-realms– Gestió de realms – Llistar tots els realms disponibles.list-roles– Gestió de rols – Llistar tots els rols d'un client específic.update-user-roles– Gestió de rols – Afegir o eliminar rols de client per a un usuari.
Gestió d'usuaris
create-user
Crea un usuari nou en un realm específic amb atributs complets i credencials opcionals.
Paràmetres obligatoris:realm(string): Nom del realm de destinació.username(string): Nom d'usuari únic per al nou usuari.email(string): Adreça electrònica vàlida.firstName(string): Nom de l'usuari.lastName(string): Cognom de l'usuari.
enabled(boolean): Habilita/inhabilita el compte d'usuari (per defecte:true).emailVerified(boolean): Marca l'email com verificat.credentials(array): Array d'objectes de credencials per establir contrasenyes.
type(string): Tipus de credencial (p. ex. "password").value(string): Valor de la credencial.temporary(boolean): Si la contrasenya ha de canviar en el primer login.
{
"realm": "my-app-realm",
"username": "john.doe",
"email": "john.doe@company.com",
"firstName": "John",
"lastName": "Doe",
"enabled": true,
"emailVerified": true,
"credentials": [
{
"type": "password",
"value": "TempPassword123!",
"temporary": true
}
]
}
Resposta: Retorna l'ID d'usuari creat i un missatge de confirmació.delete-user
Elimina permanentment un usuari del realm especificat. Aquesta acció és irreversible.
Paràmetres obligatoris:realm(string): Nom del realm de destinació.userId(string): Identificador únic de l'usuari a eliminar.
{
"realm": "my-app-realm",
"userId": "8f5c21e3-7c9d-4b5a-9f3e-8d4f6a2e7b1c"
}
Resposta: Missatge de confirmació d'eliminació amb èxit.⚠️ Advertència: Aquesta operació és irreversible. Assegureu-vos d'haver l'ID d'usuari correcte abans d'executar-la.
list-users
Obtén una llista de tots els usuaris del realm especificat amb la seva informació bàsica.
Paràmetres obligatoris:(string): Nom del realm de destinació.
id, username, email, etc.Gestió de realms
list-realms
Llista tots els realms disponibles.
Resposta: Retorna una llista d'objectes realm amb atributs comid, name, etc.list-roles
Llista tots els rols d'un client específic dins del realm.
Paràmetres obligatoris:realm(string): Nom del realm.clientId(string): ID del client.
id, name, description, etc.update-user-roles
Afegir o eliminar rols de client per a un usuari.
Paràmetres obligatoris:realm(string): Nom del realm.userId(string): Identificador d'usuari.clientId(string): ID del client.roles(array): Array de rols a afegir o eliminar.add(boolean): Si s'ha d'afegir (true) o eliminar (false).
{
"realm": "my-app-realm",
"userId": "8f5c21e3-7c9d-4b5a-9f3e-8d4f6a2e7b1c",
"clientId": "my-client",
"roles": ["admin", "user"],
"add": true
}
Exemple d'ús per eliminar rols:
{
"realm": "my-app-realm",
"userId": "8f5c21e3-7c9d-4b5a-9f3e-8d4f6a2e7b1c",
"clientId": "my-client",
"roles": ["user"],
"add": false
}
Resposta: Retorna l'usuari actualitzat amb la nova configuració de rols.Consells d'ús
- Gestió d'usuaris: Util




