Keycloak Admin API runs on your own machine — the client starts it, so there is no endpoint to ping. 3 476 installs a week from npm. Last commit 8 Nov 2026.
Unofficial: one tool per Keycloak admin operation on a realm, read-only unless writes are enabled
We read the source, 8 h ago · rules 995398eba69f
What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.
`Regenerated from each spec by the [Update OpenAPI workflow](${updateWorkflowUrl}).`,
Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.
We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.
This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.
claude mcp add keycloak-api-mcp -e 'KEYCLOAK_URL=<KEYCLOAK_URL>' -e 'KEYCLOAK_REALM=<KEYCLOAK_REALM>' -- npx -y keycloak-api
{
"mcpServers": {
"keycloak-api-mcp": {
"command": "npx",
"args": [
"-y",
"keycloak-api"
],
"env": {
"KEYCLOAK_REALM": "<KEYCLOAK_REALM>",
"KEYCLOAK_URL": "<KEYCLOAK_URL>"
}
}
}
}
[mcp_servers.keycloak-api-mcp]
command = "npx"
args = ["-y", "keycloak-api"]
env = { KEYCLOAK_URL = "<KEYCLOAK_URL>", KEYCLOAK_REALM = "<KEYCLOAK_REALM>" }
{
"mcpServers": {
"keycloak-api-mcp": {
"command": "npx",
"args": [
"-y",
"keycloak-api"
],
"env": {
"KEYCLOAK_REALM": "<KEYCLOAK_REALM>",
"KEYCLOAK_URL": "<KEYCLOAK_URL>"
}
}
}
}
{
"servers": {
"keycloak-api-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"keycloak-api"
],
"env": {
"KEYCLOAK_REALM": "<KEYCLOAK_REALM>",
"KEYCLOAK_URL": "<KEYCLOAK_URL>"
}
}
}
}
Put your own values in place of
<KEYCLOAK_URL> (Base URL of the server, such as https://keycloak.example.com), <KEYCLOAK_REALM> (Realm the tools act on).
The author’s registry entry marks them as required.
Optional settings from the registry entry, left out of the block above:
KEYCLOAK_TOKEN (A fixed access token; otherwise set KEYCLOAK_CLIENT_ID and KEYCLOAK_CLIENT_SECRET), KEYCLOAK_CLIENT_ID (A confidential client with a service account, for the client credentials grant), KEYCLOAK_CLIENT_SECRET (Secret of that client), KEYCLOAK_TOKEN_REALM (Realm of that client, if not KEYCLOAK_REALM (for example master)), KEYCLOAK_MCP_ALLOW_WRITES (1 to list the tools that change data), KEYCLOAK_MCP_RESOURCES (Comma separated resources to list tools for, such as users,groups,roles).
Unofficial MCP server for the Hetzner Cloud API: one typed tool per operation, read and write.
Every ThreatLocker Portal API feature, plus the write operations the read-only tools lack and a
Read and monitor WAGO PLC parameters over the WDA REST API. Read-only unless writes are allowed.
Unofficial read-only MCP server exposing several Mercury banking organizations to one AI session.
Unofficial SberBank Online: read accounts and operations, transfer with human approval.
ZapSign e-signature API: reads run freely, writes ask first, personal data filtered out.
Talos Linux cluster operations as one thin MCP tool over the official machine API.
Unofficial read-only MCP server for several QuickBooks Online company files in one AI session.
Answers built from our own checks of this server.