{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.sferarc/keycloak-api-mcp","description":"Unofficial: one tool per Keycloak admin operation on a realm, read-only unless writes are enabled","title":"Keycloak Admin API","repository":{"url":"https://github.com/sferarc/openapi","source":"github","subfolder":"packages/keycloak-api"},"version":"3.8.0","websiteUrl":"https://openapi.sferadev.com/keycloak-api","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"keycloak-api","version":"3.8.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Base URL of the server, such as https://keycloak.example.com","isRequired":true,"name":"KEYCLOAK_URL"},{"description":"Realm the tools act on","isRequired":true,"name":"KEYCLOAK_REALM"},{"description":"A fixed access token; otherwise set KEYCLOAK_CLIENT_ID and KEYCLOAK_CLIENT_SECRET","isSecret":true,"name":"KEYCLOAK_TOKEN"},{"description":"A confidential client with a service account, for the client credentials grant","name":"KEYCLOAK_CLIENT_ID"},{"description":"Secret of that client","isSecret":true,"name":"KEYCLOAK_CLIENT_SECRET"},{"description":"Realm of that client, if not KEYCLOAK_REALM (for example master)","name":"KEYCLOAK_TOKEN_REALM"},{"description":"1 to list the tools that change data","name":"KEYCLOAK_MCP_ALLOW_WRITES"},{"description":"Comma separated resources to list tools for, such as users,groups,roles","name":"KEYCLOAK_MCP_RESOURCES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-11-06T06:05:45.533478Z","publishedAt":"2026-11-06T06:05:45.533478Z","updatedAt":"2026-11-06T06:05:45.533478Z","isLatest":true}}}
