PluginBench
MCP Server

Keycloak Admin MCP Server

io.github.mrz1880/mcp-keycloak-admin

What is the Keycloak Admin MCP server?

Administer Keycloak via its Admin REST API: users, roles, clients, groups, IdP, events.

How to install Keycloak Admin

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • KEYCLOAK_BASE_URL
    required

    Base URL of the Keycloak server (no trailing slash).

  • KEYCLOAK_REALM
    required

    Realm the server operates on.

  • AUTH_MODE
    required

    Authentication mode: service_account or password.

  • KC_CLIENT_ID

    Confidential client id (service_account mode).

  • KC_CLIENT_SECRET
    secret

    Client secret (service_account mode).

  • KC_ADMIN_USERNAME

    Admin username (password mode).

  • KC_ADMIN_PASSWORD
    secret

    Admin password (password mode).

  • KC_ADMIN_REALM

    Realm holding the admin user (password mode; default master).

  • READ_ONLY

    When true, write and destructive tools are not registered.

  • ALLOWED_REALMS

    Comma-separated allow-list of realms the server may operate on.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-keycloak-admin": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-keycloak-admin"
      ],
      "env": {
        "KEYCLOAK_BASE_URL": "<YOUR_KEYCLOAK_BASE_URL>",
        "KEYCLOAK_REALM": "<YOUR_KEYCLOAK_REALM>",
        "AUTH_MODE": "<YOUR_AUTH_MODE>",
        "KC_CLIENT_ID": "<YOUR_KC_CLIENT_ID>",
        "KC_CLIENT_SECRET": "<YOUR_KC_CLIENT_SECRET>",
        "KC_ADMIN_USERNAME": "<YOUR_KC_ADMIN_USERNAME>",
        "KC_ADMIN_PASSWORD": "<YOUR_KC_ADMIN_PASSWORD>",
        "KC_ADMIN_REALM": "<YOUR_KC_ADMIN_REALM>",
        "READ_ONLY": "<YOUR_READ_ONLY>",
        "ALLOWED_REALMS": "<YOUR_ALLOWED_REALMS>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "mcp-keycloak-admin": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-keycloak-admin"
      ],
      "env": {
        "KEYCLOAK_BASE_URL": "<YOUR_KEYCLOAK_BASE_URL>",
        "KEYCLOAK_REALM": "<YOUR_KEYCLOAK_REALM>",
        "AUTH_MODE": "<YOUR_AUTH_MODE>",
        "KC_CLIENT_ID": "<YOUR_KC_CLIENT_ID>",
        "KC_CLIENT_SECRET": "<YOUR_KC_CLIENT_SECRET>",
        "KC_ADMIN_USERNAME": "<YOUR_KC_ADMIN_USERNAME>",
        "KC_ADMIN_PASSWORD": "<YOUR_KC_ADMIN_PASSWORD>",
        "KC_ADMIN_REALM": "<YOUR_KC_ADMIN_REALM>",
        "READ_ONLY": "<YOUR_READ_ONLY>",
        "ALLOWED_REALMS": "<YOUR_ALLOWED_REALMS>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-keycloak-admin": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-keycloak-admin"
      ],
      "env": {
        "KEYCLOAK_BASE_URL": "<YOUR_KEYCLOAK_BASE_URL>",
        "KEYCLOAK_REALM": "<YOUR_KEYCLOAK_REALM>",
        "AUTH_MODE": "<YOUR_AUTH_MODE>",
        "KC_CLIENT_ID": "<YOUR_KC_CLIENT_ID>",
        "KC_CLIENT_SECRET": "<YOUR_KC_CLIENT_SECRET>",
        "KC_ADMIN_USERNAME": "<YOUR_KC_ADMIN_USERNAME>",
        "KC_ADMIN_PASSWORD": "<YOUR_KC_ADMIN_PASSWORD>",
        "KC_ADMIN_REALM": "<YOUR_KC_ADMIN_REALM>",
        "READ_ONLY": "<YOUR_READ_ONLY>",
        "ALLOWED_REALMS": "<YOUR_ALLOWED_REALMS>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "mcp-keycloak-admin": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-keycloak-admin"
      ],
      "env": {
        "KEYCLOAK_BASE_URL": "<YOUR_KEYCLOAK_BASE_URL>",
        "KEYCLOAK_REALM": "<YOUR_KEYCLOAK_REALM>",
        "AUTH_MODE": "<YOUR_AUTH_MODE>",
        "KC_CLIENT_ID": "<YOUR_KC_CLIENT_ID>",
        "KC_CLIENT_SECRET": "<YOUR_KC_CLIENT_SECRET>",
        "KC_ADMIN_USERNAME": "<YOUR_KC_ADMIN_USERNAME>",
        "KC_ADMIN_PASSWORD": "<YOUR_KC_ADMIN_PASSWORD>",
        "KC_ADMIN_REALM": "<YOUR_KC_ADMIN_REALM>",
        "READ_ONLY": "<YOUR_READ_ONLY>",
        "ALLOWED_REALMS": "<YOUR_ALLOWED_REALMS>"
      }
    }
  }
}
Claude Code
claude mcp add mcp-keycloak-admin --env KEYCLOAK_BASE_URL=<YOUR_KEYCLOAK_BASE_URL> --env KEYCLOAK_REALM=<YOUR_KEYCLOAK_REALM> --env AUTH_MODE=<YOUR_AUTH_MODE> --env KC_CLIENT_ID=<YOUR_KC_CLIENT_ID> --env KC_CLIENT_SECRET=<YOUR_KC_CLIENT_SECRET> --env KC_ADMIN_USERNAME=<YOUR_KC_ADMIN_USERNAME> --env KC_ADMIN_PASSWORD=<YOUR_KC_ADMIN_PASSWORD> --env KC_ADMIN_REALM=<YOUR_KC_ADMIN_REALM> --env READ_ONLY=<YOUR_READ_ONLY> --env ALLOWED_REALMS=<YOUR_ALLOWED_REALMS> -- npx -y mcp-keycloak-admin

Related MCP servers

Give your AI agent stealth web scraping with Cloudflare bypass and CSS selection, powered by Scrapling.

67k
Python
BSD-3-Clause
View repository →

Give your AI coding agent full control of a live Chrome browser for automation, debugging, and performance analysis.

45k
TypeScript
Apache-2.0
View repository →

Let AI agents manage your Puter files, websites, and serverless workers over MCP.

43k
TypeScript
AGPL-3.0
View repository →

Browser automation for AI agents via MCP, powering ByteDance's Agent TARS hybrid GUI/DOM browser control.

37k
TypeScript
Apache-2.0
View repository →

Run arbitrary shell commands from an MCP-connected AI agent.

37k
TypeScript
Apache-2.0
View repository →

Filesystem access MCP server from ByteDance's UI-TARS/Agent TARS ecosystem.

37k
TypeScript
Apache-2.0
View repository →