Keycloak
STDIOKeycloak用户和领域管理的MCP服务器
Keycloak用户和领域管理的MCP服务器
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
--keycloak-url <Keycloak Instance URL>--keycloak-admin <Admin Username>--keycloak-admin-password <Admin Password>The server is available as an NPM package:
# Direct usage with npx $ npx -y keycloak-mcp --keycloak-url <Keycloak Instance URL> --keycloak-admin <Admin Username> --keycloak-admin-password <Admin Password> # Or global installation $ npm install -g keycloak-mcp@latest $ keycloak-mcp --keycloak-url <Keycloak Instance URL> --keycloak-admin <Admin Username> --keycloak-admin-password <Admin Password>
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/server.js"], "env": { "KEYCLOAK_URL": "http://localhost:8080", "KEYCLOAK_ADMIN": "admin", "KEYCLOAK_ADMIN_PASSWORD": "admin" } } } }
To set up the development environment:
npm install
cp .env.template .env # Edit the .env file and set all variables with the appropriate values
npm run dev
npm run build - Builds the project and makes the CLI executablenpm run prepare - Runs the build script (used during package installation)npm run dev - Watches for changes and rebuilds automaticallynpm start - Starts the server (for production)@keycloak/keycloak-admin-client - Official Keycloak Admin Client@modelcontextprotocol/sdk - MCP SDK for standardized protocol implementationzod - TypeScript-first schema validationchalk - Terminal string stylingyargs - Parsing command-line argumentstypescript - For TypeScript support@types/node - TypeScript definitions for Node.jsshx - Cross-platform shell commandsts-node - TypeScript execution and REPL for Node.jsrimraf - A cross-platform tool to remove directories@types/yargs - TypeScript definitions for yargsMIT