
Keycloak Model Context Protocol
io.github.ChristophEnglischPublished by GitHub account ChristophEnglischv1.1.0Updated Oct 29, 2026
Manage Keycloak users, groups, roles and realms through the Keycloak Admin REST API.
The publisher's own server: model.tools — Zero-Auth Agent Utilities
Overview
Lets an assistant administer Keycloak realms, users, groups, roles, sessions, clients and events through the Keycloak Admin REST API, with guardrails on writes.
- What you can do
- List and inspect realms, including a safe subset of realm settings and a security summary
- Search, read, create, update and delete users, and send action e-mails
- List groups and members, add or remove users from groups
- List roles and user roles, assign or revoke roles
- Inspect clients, list user sessions and log users out
- Read login and admin events, check brute-force lockout status and unlock accounts
- When to use it
- Useful when an assistant should help with day-to-day Keycloak identity administration: looking up users and their roles, onboarding or offboarding staff, auditing realm security settings, or investigating failed logins and lockouts.
- Requirements
- Runs locally over stdio as an npm package, requiring Node.js 22 or newer and a reachable Keycloak server. Needs KEYCLOAK_URL plus one credential set: KEYCLOAK_CLIENT_ID with KEYCLOAK_CLIENT_SECRET (recommended service account), or KEYCLOAK_USERNAME with KEYCLOAK_PASSWORD. Optional settings control toolsets, read-only mode, realm allowlist and timeouts.
Installation
In SourceWeft
- Open Keycloak Model Context Protocol in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Keycloak MCP Server
[npm version] [CI] [License: MIT]
A Model Context Protocol (MCP) server for Keycloak administration. It lets an AI assistant such as Claude manage users, groups, roles and sessions, and inspect clients, events and the security posture of your realms, through the Keycloak Admin REST API, with least-privilege authentication and guardrails around every write.
[!WARNING] This server acts with the permissions of the Keycloak account you give it. Use a dedicated service-account client with only the roles you need, never the bootstrap admin. Every tool that changes data asks for confirmation by default, and a read-only mode is available. See Security.
Highlights
- 24 tools in 7 toolsets, enabled per toolset. The default set (
core,groups,roles) is small; everything else is opt-in. - Least-privilege auth.
client_credentialswith a service account is the recommended grant; the password grant stays available. No credential defaults, so a missing setting fails fast. - Guardrails. Read-only mode, realm allowlist, write protection for the
masterrealm, and a preview-then-confirm: trueflow for every change. Grants of administrative rights are detected through composite roles and parent groups. - 4 guided prompts (onboarding, offboarding, security audit, failed-login investigation) and MCP resources for realms and users, with realm-name completion.
- Structured, paginated output with output schemas; secrets and credentials are never returned or logged.
- Works with Claude Desktop, Claude Code, VS Code, Cursor and any stdio MCP client. Requires Node.js 22 or newer.
How it works
Your MCP client starts the server as a local child process and talks to it over stdio. Every tool call passes the guards, then goes through a single gateway that owns the Keycloak login and caches the access token.
What a confirmed call looks like
Every tool that changes data is destructive (it deletes or revokes) or sensitive (it changes identity, credentials, rights or protection mechanisms, for example user_update or user_role_assign). Called without confirm: true, such a tool only returns a preview of what would happen and changes nothing. After you approve, the assistant repeats the call with confirm: true.
The model can set confirm: true itself, even on its first call. The server then still computes the preview and returns it with the result, but only your client's approval prompt proves that a human agreed. All these tools carry destructiveHint, so clients that ask before destructive calls ask here too.
Quick start
Requirements: Node.js 22 or newer, a Keycloak server your machine can reach (tested with Keycloak 24.0 to 26.8), and an MCP client.
1. Prepare Keycloak (3 steps)
In the realm you want to administer (here demo):
- Create a client
mcp-adminwith Client authentication on and only Service accounts roles enabled (turn off Standard flow and Direct access grants). - Assign roles. On the client's Service accounts roles tab, assign client roles of
realm-management. For a first read-only trial:view-users,query-users,query-groups,view-realm. - Copy the secret from the client's Credentials tab.
Step-by-step instructions with Admin Console click paths, kcadm.sh commands and a local Docker Keycloak: docs/getting-started.md.
2. Configure your MCP client
Example for Claude Code (other clients: docs/clients.md):
Or as JSON (Claude Desktop, claude_desktop_config.json):
3. Ask your first question
List the realms you can access, then show me the first 10 users of realm demo.
If you get an answer, you are done. If not, see docs/troubleshooting.md.
Configuration
All settings are environment variables. Only KEYCLOAK_URL and one set of credentials are required.
Full reference with examples, validation rules and the tool-to-role matrix: docs/configuration.md.
Toolsets and tools
Tools are named <domain>_<verb>. Only the default toolsets are enabled unless you set KEYCLOAK_MCP_TOOLSETS. In read-only mode only tools of kind read are registered.
Details for every tool (parameters, outputs, required roles): docs/tools-reference.md.
Prompts and resources
Prompts are guided workflows built on the tools. They appear in your client's prompt picker (in Claude Code as slash commands). The realm argument autocompletes.
Resources are read-only JSON documents, filtered by the same realm allowlist:
Security
- Least privilege first. Use a service-account client scoped to one realm with only the
realm-managementroles you need. A role matrix is in docs/configuration.md. - Every change needs confirmation (
KEYCLOAK_MCP_REQUIRE_CONFIRMATION=true): destructive and sensitive tools show a preview first. Grants of administrative rights, also through composite roles and parent groups, profile changes and action e-mails for accounts with administrative rights, and changes to the server's own account need a confirmation thatKEYCLOAK_MCP_REQUIRE_CONFIRMATION=falsedoes not turn off. Role and group grants, profile changes and action e-mails for the server's own account are refused. - Account takeover protection: a changed e-mail address is marked as unverified unless stated otherwise, action e-mail links are valid for at most 24 hours, and previews name the recipient address and whether the target account has administrative rights.
- Blast-radius limits:
KEYCLOAK_MCP_READ_ONLY,KEYCLOAK_MCP_REALMS, and write protection formaster(off by default). - No secrets in output or logs. Credentials are masked on stderr; tools never return client secrets, user credentials or attributes.
- Prompt injection: treat names and descriptions coming from Keycloak as data. The shipped prompts say so explicitly; keep write tools disabled when you do not need them.
Threat model, hardening checklist and how to report a vulnerability: docs/security.md and SECURITY.md.
Example prompts
- "Which realms can you see? Show me the settings of realm
demo." - "Find all users in
demowhose e-mail ends with@example.comand who are disabled." - "Create user
jdoe(Jane Doe, [email protected]) indemo, add her to groupengineeringand send her an e-mail to set a password." - "Who is in the group
ops, and which roles doesalicehave, including composite roles?" - "Run the
audit_realm_securityprompt fordemo." (needsclientsandeventstoolsets for the full audit) - "There were many failed logins last night. Investigate realm
demo." - "Offboard
bobindemo: end his sessions and disable the account."
Documentation
Upgrade from 0.x
Version 1.0 changes the defaults: credentials are required (no admin/admin fallback), destructive tools ask for confirmation, and the tools were renamed to <domain>_<verb> (for example create-user became user_create, delete-user became user_delete). The old KEYCLOAK_ADMIN and KEYCLOAK_ADMIN_PASSWORD variables still work but are deprecated. See the migration guide.
Contributing and license
Contributions are welcome. See CONTRIBUTING.md and the Code of Conduct. Released under the MIT License.
Source: README.md at commit b2c37f7
Tools
0Version history
3- v1.1.0LatestOct 29, 2026
- v1.0.3Oct 26, 2026
- v1.0.2Oct 25, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Model integrations

model.tools — Zero-Auth Agent Utilities
tools.modelOfficial publisher
Zero-auth remote utility server giving agents disposable email OTP reading, durable checkpoints, webhook bins, wake timers, receipts and page-to-Markdown…
NLP.COM.AI Open Model Catalog
ai.com.nlpOfficial publisher
NLP.COM.AI Open Model Catalog's hosted MCP server, published by nlp.com.ai; no sign-in required; Streamable HTTP; 3 tools.

Hologram Model Hub
foundation.uor.hubOfficial publisher
A remote MCP server that lets an assistant search an index of open models and get verified download links with SHA-256 checksums.

ModelLens
Published by GitHub account Greatbeing
Probes OpenAI-compatible model gateways, ranks models by measured latency and success, and recommends which model to use.

Bedrock Multi-Model
Published by GitHub account Sagargupta16
Local MCP server that puts AWS Bedrock's text, image, video and embedding models behind nine tools so an assistant can ask, compare and judge models.