LeashIndex Get the report

Index / calendar

KeyCloak MCP

io-github-shigechika-keycloak-mcp declares 33 capabilities across 33 tools, with 1 critical issue. One of them, no-revocation, is recorded for every server in the index because MCP has no field in which to declare a way to switch a tool off; a missing declaration is not evidence that the control is missing.

59/100 exposureElevated

Manifest recorded 2026-11-04 from tools/list answered by the PyPI package keycloak-mcp==1.5.1 (published to PyPI as keycloak-mcp, listed in the official MCP registry as io.github.shigechika/keycloak-mcp 1.5.1), run in an isolated container with no network access and no credentials. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 33 tools

33 of 33 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

high · no-expiry · All 33 tools

33 of 33 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 33 tools

33 of 33 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

high · uncapped-write · 6 of 33 tools

6 tools can modify data and declare no limit.

low · uncapped-read · 27 of 33 tools

27 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
health_checkwrite assumed
count_usersread inferred
search_usersread inferred
get_userread inferred
reset_passwordwrite assumed
reset_passwords_batchwrite assumed
get_user_sessionsread inferred
logout_userwrite assumed
set_user_enabledwrite inferred
get_user_credentialsread inferred
get_totp_usersread inferred
get_brute_force_statusread inferred
list_user_groupsread inferred
list_users_by_groupread inferred
get_eventsread inferred
get_login_statsread inferred
get_login_stats_by_hourread inferred
get_login_failures_by_ipread inferred
get_ip_activityread inferred
spray_checkread inferred
get_login_stats_by_clientread inferred
detect_login_loopsread inferred
get_password_update_eventsread inferred
get_admin_eventsread inferred
get_user_attribute_historyread inferred
get_session_statsread inferred
get_client_sessionsread inferred
list_clientsread inferred
get_clientread inferred
get_realm_rolesread inferred
get_realm_security_defensesread inferred
get_config_changesread inferred
daily_briefwrite assumed
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.