keycloak-mcp.test
Server Details
Keycloak identity management expert with semantic search, protocol guides, and config analysis
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
6 toolsanalyze_keycloak_deploymentAInspect
Analyze Keycloak deployment configuration and identify potential issues or provide recommendations.
Input deployment_info should include:
- keycloak_version: version string
- deployment_type: (standalone, clustered)
- database: database type (postgresql, mysql, h2)
- protocol: (http, https)
- cache_type: (local, infinispan)
- auth_providers: list of configured identity providers
- any warnings or alerts
Returns structured analysis and recommendations based on the deployment state.
| Name | Required | Description | Default |
|---|---|---|---|
| deployment_info | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It conveys that the tool analyzes and returns structured recommendations, implying a read-only analytical operation, but it does not explicitly disclose limitations, side effects, or whether any state is modified. This is adequate but not deeply transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description starts with a crisp purpose sentence, then presents a well-organized bulleted list of input fields, and ends with a brief return statement. It is succinct, front-loaded, and free of redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single nested-object parameter, the description thoroughly documents the expected input structure. It also indicates the output nature ('structured analysis and recommendations'). However, specifics about the output format or additional behavior are vague, but this is largely sufficient given the tool's simplicity and lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines 'deployment_info' as an object with additionalProperties: true, leaving all subfields undocumented. The description adds substantial meaning by enumerating expected fields (keycloak_version, deployment_type, database, protocol, cache_type, auth_providers) and even providing allowed values for some, far exceeding schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Analyze Keycloak deployment configuration') and outcome ('identify potential issues or provide recommendations'). It distinguishes this tool from siblings like 'explain_keycloak_protocol' or 'keycloak_search' by focusing on deployment analysis rather than explanation or search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides input context by listing expected fields, but it does not explicitly state when to use this tool versus alternatives, nor does it mention when not to use it. Sibling names imply distinct purposes, but the description lacks direct usage guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_keycloak_componentBInspect
Explain a Keycloak component (realm, client, user, role, provider, mapper). Returns description and relevant documentation snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| component_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions that the tool 'returns description and relevant documentation snippets,' but does not state whether the operation is read-only, requires authentication, or how invalid component types are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and every word is informative. It efficiently conveys both the core action and the output type without unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema, the description covers the main purpose and parameter semantics. The output schema presumably handles return structure details, so the description is reasonably complete, though it could mention potential limitations or edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter with no description, so the description's enumeration of valid component types (realm, client, user, role, provider, mapper) adds meaningful semantics. It does not specify whether the list is exhaustive or provide formatting details, but it significantly compensates for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Explain') and resource ('Keycloak component'), listing six concrete examples (realm, client, user, role, provider, mapper). This distinguishes it from protocol-focused siblings, though it does not explicitly differentiate from the similarly named 'keycloak_explain' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusion criteria, or contrast with sibling tools like 'explain_keycloak_protocol' or 'keycloak_explain'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_keycloak_protocolAInspect
Explain Keycloak protocols (oidc, saml, oauth2). Returns description and relevant documentation snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| protocol_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool returns descriptions and documentation snippets, and the verb 'explain' strongly implies a read-only operation. However, with no annotations, it does not explicitly state there are no side effects or permission requirements, though for an informational tool this is reasonably covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no unnecessary words. It front-loads the action and resource, then adds the return type, making it both efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single parameter and an output schema, and the description covers the purpose, protocol list, and return format. For a simple explain operation, this is complete and no additional context is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines protocol_type as a bare string with no description, but the tool description directly lists the valid values (oidc, saml, oauth2). This fully compensates for the 0% schema description coverage and gives the agent precise input choices.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (explain) and resource (Keycloak protocols), and enumerates the specific protocol types (oidc, saml, oauth2). This distinguishes it from sibling tools like explain_keycloak_component, which likely handles different resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when the user needs an explanation of Keycloak protocol details, but it does not explicitly differentiate from sibling tools such as keycloak_explain or provide when-not-to-use guidance. No alternative tools are mentioned, so the usage guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keycloak_config_referenceAInspect
Search for information about a specific Keycloak configuration option. Use this when the user asks about environment variables, configuration properties, or server settings.
| Name | Required | Description | Default |
|---|---|---|---|
| config_option | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only says 'Search for information' without detailing whether the search is exact or fuzzy, whether it accesses live server data or static documentation, or any side effects. It doesn't address read-only or output behavior, leaving the agent to guess.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the action and object, and the second sentence adds practical usage context. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and has an output schema, so return values are covered elsewhere. The description gives purpose and usage context, but lacks behavioral transparency as noted, preventing a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implies that config_option is a Keycloak configuration option (like an env var or property), but provides no examples, format, or allowed values beyond the schema's generic string type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Search' and clearly identifies the resource as 'a specific Keycloak configuration option'. It distinguishes itself from sibling tools like keycloak_search by narrowing to configuration options, environment variables, properties, and server settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool: 'when the user asks about environment variables, configuration properties, or server settings'. This gives clear context, though it doesn't mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keycloak_explainAInspect
Use this tool whenever the user asks ANY question about Keycloak (e.g., "how does authentication work?", "what is a realm?", "how do I integrate SAML?", "explain OAuth2 flow"). Prefer this tool BEFORE answering from prior knowledge. Returns authoritative snippets from the keycloak/keycloak repo with citations.
| Name | Required | Description | Default |
|---|---|---|---|
| top_k | No | ||
| topic | Yes | ||
| max_chars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description discloses that the tool 'Returns authoritative snippets from the keycloak/keycloak repo with citations', which is a clear behavioral trait. It does not detail limitations, citation formatting, or how snippets should be presented, but enough is added for a read/explain tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the instruction to use it appears immediately, examples are brief, and the return type is stated in a single final sentence. Every sentence earns its place without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward explain/retrieval tool, the description provides enough context: when to use it, what it returns, and the source. It lacks detail on output formatting or how to handle missing snippets, but given no annotations and no output schema, it covers the essentials for selection and basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not directly explain the parameters. It only implies that the required 'topic' parameter should be the user's Keycloak question, but top_k and max_chars are entirely unaddressed. The description does not compensate for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this tool is for answering any Keycloak question, with concrete examples like 'how does authentication work?' and 'explain OAuth2 flow'. It positions itself as the general-purpose explain tool but does not explicitly distinguish itself from siblings like keycloak_search or explain_keycloak_protocol, so it misses full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: 'Use this tool whenever the user asks ANY question about Keycloak' and even instructs to prefer it before answering from prior knowledge. However, it does not mention when not to use it or point to specific alternatives among the sibling tools, so exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keycloak_searchAInspect
Semantic search over the Keycloak repository and documentation. Returns list of snippets with file paths and scores.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It describes the non-destructive search behavior and the return format (snippets with file paths and scores), which is transparent about what the tool does. It does not mention rate limits or authentication, but for a read-only search tool this is reasonably adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the action and resource. Every word earns its place: 'Semantic search' tells the mode, 'Keycloak repository and documentation' identifies scope, and the second sentence describes the output. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low-complexity with an output schema present, so the description doesn't need to explain return values in detail. However, it lacks usage guidance (when to choose this over siblings) and parameter semantics, making it only partially complete for an agent. It adequately states what it does but not enough surrounding context for confident invocation in all scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and the description adds no parameter semantics. It does not explain what 'query' should contain or how 'top_k' behaves beyond the schema's default value. The parameter names are self-explanatory, but the description fails to compensate for the lack of schema descriptions, leaving the agent to guess at expected input formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'semantic search' over a specific resource ('Keycloak repository and documentation') and describes the output (snippets with file paths and scores). This distinguishes it from sibling tools like explain_keycloak_component or analyze_keycloak_deployment, which focus on explanation and analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when searching for relevant code or documentation snippets), but it does not explicitly state when not to use it or compare to alternatives. For example, it doesn't mention that explain or reference tools should be used for explanations rather than raw search. This is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
- First observed
analyze_keycloak_deployment - First observed
explain_keycloak_component - First observed
explain_keycloak_protocol - First observed
keycloak_config_reference - First observed
keycloak_explain - First observed
keycloak_search
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
- SkycloakOAuthio.skycloak
Managed Keycloak from any MCP client: clusters, realms, apps, SSO, users, domains, audit events.
MCP server teaching AI agents to implement TideCloak: auth, E2EE, IGA, security analysis
Get authoritative answers about Redpanda documentation and search API references.
Knowledge base MCP for AI agents on iknow.dev. Search, read, and maintain via OAuth.
Related MCP Servers
- MIT
- AlicenseCqualityCmaintenanceA comprehensive MCP server for Keycloak administration, offering 80+ tools to manage users, realms, clients, roles, groups, sessions, events, organizations, and more directly from AI assistants.8637MIT
- AlicenseNot gradedqualityCmaintenanceExposes Keycloak admin operations as tools via the Model Context Protocol, allowing management of users, clients, groups, roles, and more through natural language.48MIT
- AlicenseCqualityCmaintenanceEnables management of Keycloak identity and access management through the Keycloak Admin REST API, providing 299 tools for operations like user management, client configuration, and realm administration via natural language.1003MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Several tools overlap: keycloak_explain claims to answer any Keycloak question, which subsumes explain_keycloak_component and explain_keycloak_protocol. keycloak_search and keycloak_config_reference also overlap with explanation capabilities, creating ambiguity about which tool to select.
The naming is inconsistent: the first three tools use verb_keycloak_noun (analyze_keycloak_deployment, explain_keycloak_component, explain_keycloak_protocol), while the last three use keycloak_verb or keycloak_noun (keycloak_explain, keycloak_search, keycloak_config_reference). This mixing of conventions is confusing.
With 6 tools, the count is within the ideal range for a specialized server, each covering an aspect of Keycloak knowledge. The count feels appropriate for the purpose.
The toolset covers deployment analysis, component/protocol explanations, configuration lookup, and semantic search—sufficient for a knowledge assistant. Minor gaps like version comparison or troubleshooting aren't critical, so completeness is solid.