MCP Server for Keycloak

Your managed Keycloak, in the conversation.

The Skycloak MCP server gives any MCP client, Claude, ChatGPT, Gemini, Grok or your editor, your whole platform: clusters, realms, applications, SSO, custom domains, WAF, webhooks, SIEM and branding. One command, browser sign-in, nothing to install.

terminal bash
$ claude mcp add --transport http skycloak https://mcp.skycloak.io

That is Claude Code. Everywhere else you paste the same URL: a custom connector in Claude, ChatGPT, Gemini or Grok, a JSON entry in Cursor or VS Code. No API key to create, paste into a config file, or forget to rotate.

Everything the API can do

Not just the realm. The platform around it.

Point an agent at a Keycloak admin API and it can edit realms. It cannot provision a cluster, verify a custom domain, change a WAF rule, or ship events to your SIEM. Those surfaces are the managed platform, and they are exactly where an assistant saves the most time.

Clusters

Provision, resize, upgrade and inspect the managed Keycloak clusters themselves.

list_clusters get_cluster create_cluster update_cluster list_cluster_upgrades get_cluster_upgrade_path get_cluster_insights

Edge security & WAF

Read and change the protection in front of the cluster, not just the settings inside it.

get_cluster_security update_cluster_security

Custom domains

Add a domain, get back the DNS records to create, then trigger verification and manage routes.

list_domains create_domain verify_domain list_domain_routes create_domain_route

Webhooks

Subscribe to platform events, inspect what is subscribed, and fire a test delivery.

list_webhook_subscriptions list_webhook_event_types create_webhook_subscription test_webhook_subscription

SIEM destinations

Wire cluster events into Splunk, Datadog, Sentinel or a webhook sink, and test the pipe.

list_siem_destinations create_siem_destination update_siem_destination test_siem_destination

Events, logs & exports

Query authentication and admin events, read logs, and export realms or event history.

query_events get_logs create_export export_cluster_events create_realm_export

Realms, users & roles

The Keycloak layer: realms, users, roles, groups and membership.

list_realms create_realm list_realm_users create_realm_user assign_realm_user_role add_realm_user_to_group

Applications & SSO

OIDC and SAML clients, their roles and sessions, plus the identity providers behind sign-in.

list_applications create_application rotate_application_secret list_identity_providers create_identity_provider discover_oidc

Branding & themes

Login and email branding, theme upload and per-client theme assignment.

list_themes set_theme_assignment upsert_login_branding upsert_email_branding

Extensions & SMTP

Install and upgrade Keycloak extensions, and configure or test outbound mail.

list_extensions install_extension upgrade_extension get_smtp upsert_smtp test_smtp
Things to actually ask it

Questions a dashboard makes you click for.

Eight jobs teams hand to the MCP server every day, running against a live platform. Pick one, or let it play.

skycloak-mcp ~ connected to mcp.skycloak.io example
Which realms across my clusters still have self-registration enabled?
skycloak_list_clusters 3 clusters
skycloak_list_realms 11 realms across 3 clusters
Checked 11 realms across 3 clusters. 2 still allow self-registration:
prod-eu / acme registrationAllowed: true
staging-eu / checkout registrationAllowed: true
The other 9 have it off. Want me to disable those two?
Connect it
$ claude mcp add --transport http skycloak https://mcp.skycloak.io

That is Claude Code. Everywhere else you paste the same URL: a custom connector in Claude, ChatGPT, Gemini or Grok, a JSON entry in Cursor or VS Code. No API key to create or rotate.

Bounded by your own access. Read questions run against your live platform. Anything that changes state is limited to your permissions, and deletions refuse to run without an explicit confirm=true.

Permissions

Your agent gets exactly the access you have.

The scary part of handing an assistant your identity provider is not that it does nothing useful. It is that it does something very useful to the wrong realm. So there is no second permission system to reason about.

One permission model

Tools are registered against the scopes of the credential you signed in with. If your account cannot rotate a client secret, neither can your assistant. Nothing to configure, nothing that can drift out of step with your real access.

Destructive tools refuse by default

Deleting a realm, an application or an identity provider requires an explicit confirm=true. Without it the tool declines and says why, so an ambiguous instruction cannot cascade into a deletion.

Standard OAuth, no shared secret

Sign-in runs through your Skycloak account over OAuth. There is no long-lived key sitting in a config file on a laptop, and revoking access is the same action you already use.

FAQ

The MCP server, answered.

What is an MCP server for Keycloak?
An MCP server for Keycloak is a hosted Model Context Protocol endpoint that lets an AI assistant read and change your identity infrastructure through defined tools instead of a dashboard or hand-written API calls. The Skycloak one lives at https://mcp.skycloak.io and exposes every operation the Skycloak platform API supports, spanning managed Keycloak clusters, realms, applications, identity providers, users, custom domains, edge security and WAF, webhooks, SIEM destinations, branding, extensions, SMTP and audit logs. You connect with one command and sign in through your browser over OAuth, there is nothing to install, and an assistant only ever gets the access the signed-in account already has.
How do I connect it to Claude, ChatGPT, Gemini, Grok or Cursor?
Give the client the URL https://mcp.skycloak.io and it does the rest. In Claude, ChatGPT, Gemini and Grok that means adding a custom connector; in Claude Code it is claude mcp add --transport http skycloak https://mcp.skycloak.io; in Cursor, VS Code and other editors it is a JSON entry with "type": "http" and that URL. On first use the server returns a 401 carrying its OAuth metadata and the client opens a browser for you to sign in. See the MCP documentation for the full setup.
Do I need an API key?
No. The hosted server implements OAuth discovery, so your client finds the authorization server on its own and opens a browser for you to approve. There is no key to create, paste into a config file, or rotate. If your client does not speak OAuth, or you are running headless in CI, you can send a Skycloak API key as a bearer token instead.
Can an AI assistant delete my production realm?
Only if you can. Tools are registered against the scopes of the credential you signed in with, so the assistant inherits exactly your access and never more. On top of that, destructive tools such as deleting a realm, an application or an identity provider refuse to run unless they are passed an explicit confirm=true, so a vague instruction cannot cascade into a deletion.
Is this just for Keycloak configuration?
No, and that is the main difference from pointing an agent at a Keycloak admin API. The Skycloak MCP server reaches the managed platform around Keycloak as well: provisioning and upgrading clusters, custom domains and their DNS verification, the WAF and edge security rules, webhook subscriptions, SIEM destinations, extensions, SMTP and branding. Those surfaces do not exist in the Keycloak admin API at all.
Which MCP clients does it work with?
Any spec-compliant one. It speaks streamable HTTP, the standard MCP remote transport, and authenticates over OAuth, so it is not tied to a vendor. That covers the assistants with custom-connector support (Claude, ChatGPT, Gemini, Grok) and the editors and agents that speak MCP (Cursor, VS Code, Windsurf, Zed, Cline, Goose). Claude Code and Cursor are the ones we test against on every release.
What does it cost?
Nothing extra. The MCP server is included with every Skycloak plan and is rate limited per plan like the rest of the API. You need a Skycloak account and at least one cluster for it to be useful.
How is this different from the Terraform provider?
They solve different halves of the same problem. The Terraform provider is for declarative, reviewed, repeatable infrastructure that lives in version control. The MCP server is for the conversational half: investigating, auditing and answering questions, plus the one-off changes that never justified a pull request. Most teams end up using both.

Stop clicking through a console to answer a question.

Connect in one command, or start a free trial and spin up a cluster to point it at. Unlimited users on every plan, real upstream Keycloak, no lock-in.

Start free trial
Start Free Trial MCP Docs
© 2026 Skycloak. All Rights Reserved. Design by Yasser Soliman