keycloak model context protocol for Cursor
io.github.christophenglisch/keycloak-model-context-protocol
Manage Keycloak users, groups, roles and realms through the Keycloak Admin REST API.
client:Cursor
transport:stdio
runtime:npm
Install keycloak model context protocol in Cursor
~/.cursor/mcp.json · windows: %USERPROFILE%\.cursor\mcp.json
{
"mcpServers": {
"keycloak-model-context-protocol": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"keycloak-model-context-protocol"
],
"env": {
"KEYCLOAK_URL": "<KEYCLOAK_URL>",
"KEYCLOAK_AUTH_REALM": "<KEYCLOAK_AUTH_REALM>",
"KEYCLOAK_CLIENT_ID": "<KEYCLOAK_CLIENT_ID>",
"KEYCLOAK_CLIENT_SECRET": "<KEYCLOAK_CLIENT_SECRET>",
"KEYCLOAK_USERNAME": "<KEYCLOAK_USERNAME>",
"KEYCLOAK_PASSWORD": "<KEYCLOAK_PASSWORD>",
"KEYCLOAK_GRANT_TYPE": "<KEYCLOAK_GRANT_TYPE>",
"KEYCLOAK_MCP_READ_ONLY": "<KEYCLOAK_MCP_READ_ONLY>",
"KEYCLOAK_MCP_REALMS": "<KEYCLOAK_MCP_REALMS>",
"KEYCLOAK_MCP_ALLOW_MASTER_WRITE": "<KEYCLOAK_MCP_ALLOW_MASTER_WRITE>",
"KEYCLOAK_MCP_TOOLSETS": "<KEYCLOAK_MCP_TOOLSETS>",
"KEYCLOAK_MCP_REQUIRE_CONFIRMATION": "<KEYCLOAK_MCP_REQUIRE_CONFIRMATION>",
"KEYCLOAK_MCP_TIMEOUT_MS": "<KEYCLOAK_MCP_TIMEOUT_MS>",
"KEYCLOAK_MCP_LOG_LEVEL": "<KEYCLOAK_MCP_LOG_LEVEL>"
}
}
}
}
Use .cursor/mcp.json in a project root instead to scope it to that project. Cursor merges both. Cursor docs