A side-by-side look at the MCP Keycloak Admin and MCP Virustotal MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Keycloak Admin for security work as a local process; choose MCP Virustotal for security as a local process. You can also run both side by side in one mcpServers block.
KEYCLOAK_BASE_URL, KEYCLOAK_REALM, AUTH_MODE, KC_CLIENT_ID, KC_CLIENT_SECRET, KC_ADMIN_USERNAME, KC_ADMIN_PASSWORD, READ_ONLY.keycloak_user_search, keycloak_user_get, keycloak_user_sessions_list.VIRUSTOTAL_API_KEY, MCP_TRANSPORT, MCP_PORT, MCP_ENDPOINT.get_url_report, url, get_file_report.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Security | Security |
| Quality signal | 61/100 · Good | 64/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | other | API key required |
| Pricing | Free | BYOK (pay the provider) |
| Required env vars | KEYCLOAK_BASE_URLKEYCLOAK_REALMAUTH_MODEKC_CLIENT_IDKC_CLIENT_SECRETKC_ADMIN_USERNAMEKC_ADMIN_PASSWORDREAD_ONLY | VIRUSTOTAL_API_KEYMCP_TRANSPORTMCP_PORTMCP_ENDPOINT |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2 | 150 |
| Directory activity | 2 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 56 | 24 |
| Full listing | View MCP Keycloak Admin | View MCP Virustotal |
keycloak_user_searchSearch realm users by email, username or free text.keycloak_user_getFetch a single user by id.keycloak_user_sessions_listList a user's active sessions.keycloak_user_createCreate a realm user.keycloak_user_updateUpdate a user's email, name or enabled flag.keycloak_user_set_enabledEnable or disable a user.keycloak_user_send_action_emailSend a required-actions email.keycloak_user_reset_passwordSet a new password for a user.keycloak_user_logoutRevoke all of a user's sessions.keycloak_user_deletePermanently delete a user (id + username must match).keycloak_role_listList realm roles.keycloak_user_roles_getList a user's realm roles.get_url_reporturlget_file_reporthashget_ip_reportipget_domain_reportdomainrelationshipsget_url_relationshiprelationshiplimitPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"mrz1880-mcp-keycloak-admin": {
"command": "npx",
"args": [
"-y",
"mcp-keycloak-admin"
],
"env": {
"KEYCLOAK_BASE_URL": "YOUR_KEYCLOAK_BASE_URL_HERE",
"KEYCLOAK_REALM": "YOUR_KEYCLOAK_REALM_HERE",
"AUTH_MODE": "YOUR_AUTH_MODE_HERE",
"KC_CLIENT_ID": "YOUR_KC_CLIENT_ID_HERE",
"KC_CLIENT_SECRET": "YOUR_KC_CLIENT_SECRET_HERE",
"KC_ADMIN_USERNAME": "YOUR_KC_ADMIN_USERNAME_HERE",
"KC_ADMIN_PASSWORD": "YOUR_KC_ADMIN_PASSWORD_HERE",
"READ_ONLY": "YOUR_READ_ONLY_HERE"
}
}
}
}
{
"mcpServers": {
"burtthecoder-mcp-virustotal": {
"command": "npx",
"args": [
"-y",
"@burtthecoder/mcp-virustotal"
],
"env": {
"VIRUSTOTAL_API_KEY": "YOUR_VIRUSTOTAL_API_KEY_HERE",
"MCP_TRANSPORT": "YOUR_MCP_TRANSPORT_HERE",
"MCP_PORT": "YOUR_MCP_PORT_HERE",
"MCP_ENDPOINT": "YOUR_MCP_ENDPOINT_HERE"
}
}
}
}