{"serverId":"mcp-registry/io.github.heintonny/keycloak-mcp.test","tools":[{"name":"analyze_keycloak_deployment","fixed":{"name":"analyze_keycloak_deployment","description":"\n    Analyze Keycloak deployment configuration and identify potential issues or provide recommendations.\n    \n    Input deployment_info should include:\n      - keycloak_version: version string\n      - deployment_type: (standalone, clustered)\n      - database: database type (postgresql, mysql, h2)\n      - protocol: (http, https)\n      - cache_type: (local, infinispan)\n      - auth_providers: list of configured identity providers\n      - any warnings or alerts\n    \n    Returns structured analysis ","inputSchema":{"type":"object","title":"analyze_keycloak_deploymentArguments","required":["deployment_info"],"properties":{"deployment_info":{"type":"object","title":"Deployment Info","additionalProperties":true}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":218,"tokensAfter":218},{"name":"explain_keycloak_component","fixed":{"name":"explain_keycloak_component","description":"\n    Explain a Keycloak component (realm, client, user, role, provider, mapper).\n    Returns description and relevant documentation snippets.\n    ","inputSchema":{"type":"object","title":"explain_keycloak_componentArguments","required":["component_type"],"properties":{"component_type":{"type":"string","title":"Component Type"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":108,"tokensAfter":108},{"name":"explain_keycloak_protocol","fixed":{"name":"explain_keycloak_protocol","description":"\n    Explain Keycloak protocols (oidc, saml, oauth2).\n    Returns description and relevant documentation snippets.\n    ","inputSchema":{"type":"object","title":"explain_keycloak_protocolArguments","required":["protocol_type"],"properties":{"protocol_type":{"type":"string","title":"Protocol Type"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":99,"tokensAfter":99},{"name":"keycloak_explain","fixed":{"name":"keycloak_explain","description":"\n    Use this tool whenever the user asks ANY question about Keycloak\n    (e.g., \"how does authentication work?\", \"what is a realm?\", \"how do I integrate SAML?\", \"explain OAuth2 flow\").\n    Prefer this tool BEFORE answering from prior knowledge.\n    Returns authoritative snippets from the keycloak/keycloak repo with citations.\n    ","inputSchema":{"type":"object","title":"keycloak_explainArguments","required":["topic"],"properties":{"top_k":{"type":"integer","title":"Top K","default":6},"topic":{"type":"string","title":"Topic"},"max_chars":{"type":"integer","title":"Max Chars","default":4000}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":183,"tokensAfter":183},{"name":"keycloak_search","fixed":{"name":"keycloak_search","description":"Semantic search over the Keycloak repository and documentation. Returns list of snippets with file paths and scores.","inputSchema":{"type":"object","title":"keycloak_searchArguments","required":["query"],"properties":{"query":{"type":"string","title":"Query"},"top_k":{"type":"integer","title":"Top K","default":5}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100}],"toolsChanged":5,"tokensSaved":0,"todo":[{"tool":"analyze_keycloak_deployment","params":["deployment_info"]},{"tool":"explain_keycloak_component","params":["component_type"]},{"tool":"explain_keycloak_protocol","params":["protocol_type"]},{"tool":"keycloak_config_reference","params":["config_option"]},{"tool":"keycloak_explain","params":["top_k","topic","max_chars"]},{"tool":"keycloak_search","params":["query","top_k"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}