
Keycloak
STDIOMCP server for managing Keycloak users and realms through standardized protocol
MCP server for managing Keycloak users and realms through standardized protocol
A Model Context Protocol (MCP) server implementation for Keycloak, providing a standardized interface for managing Keycloak users and realms.
This project implements an MCP server that integrates with Keycloak, allowing you to manage Keycloak users and realms through a standardized protocol. It uses the official Keycloak Admin Client to interact with Keycloak's API.
https://github.com/user-attachments/assets/4b02a049-b8d6-4cc5-a7b4-564a0e758dd8
Creates a new user in a specified realm.
Inputs:
realm
: The realm nameusername
: Username for the new useremail
: Email address for the userfirstName
: User's first namelastName
: User's last nameDeletes a user from a specified realm.
Inputs:
realm
: The realm nameuserId
: The ID of the user to deleteLists all available realms.
Lists all users in a specified realm.
Inputs:
realm
: The realm nameLists all clients in a specified realm.
Inputs:
realm
: The realm nameLists all groups in a specified realm.
Inputs:
realm
: The realm nameLists all roles for a specific client in a realm.
Inputs:
realm
: The realm nameclientUniqueId
: The unique ID of the clientAssigns a client role to a specific user.
Inputs:
realm
: The realm nameuserId
: The ID of the userclientUniqueId
: The unique ID of the clientroleName
: The name of the role to assignAdds a user to a specific group.
Inputs:
realm
: The realm nameuserId
: The ID of the usergroupId
: The ID of the groupTo install keycloak-mcp for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @HaithamOumerzoug/keycloak-mcp --client claude
The server is available as an NPM package:
# Direct usage with npx npx -y keycloak-mcp # Or global installation npm install -g keycloak-mcp
Configure the server in your Cursor IDE, Cline or Claude Desktop MCP configuration file:
{ "mcpServers": { "keycloak": { "command": "npx", "args": ["-y", "keycloak-mcp"], "env": { "KEYCLOAK_URL": "http://localhost:8080", "KEYCLOAK_ADMIN": "admin", "KEYCLOAK_ADMIN_PASSWORD": "admin" } } } }
{ "mcpServers": { "keycloak": { "command": "node", "args": ["path/to/dist/index.js"], "env": { "KEYCLOAK_URL": "http://localhost:8080", "KEYCLOAK_ADMIN": "admin", "KEYCLOAK_ADMIN_PASSWORD": "admin" } } } }
To set up the development environment:
npm install
npm run build
npm run watch
npm run build
- Builds the project and makes the CLI executablenpm run prepare
- Runs the build script (used during package installation)npm run watch
- Watches for changes and rebuilds automatically@keycloak/keycloak-admin-client
- Official Keycloak Admin Client@modelcontextprotocol/sdk
- MCP SDK for standardized protocol implementationzod
- TypeScript-first schema validationtypescript
- For TypeScript support@types/node
- TypeScript definitions for Node.jsshx
- Cross-platform shell commandsMIT