MCP server exposing Keycloak Admin REST API as MCP tools, generated from vendored OpenAPI spec.
Critical failure: tools are dynamically generated from OpenAPI spec at runtime. No explicit tool registration visible in source code, tool names, descriptions, schemas, and parameters cannot be statically verified. The generator.py file is referenced but not provided. Without seeing actual tool definitions, schema validation, parameter descriptions, or error handling logic, this server cannot be scored above the inference cap of 50. Additionally, the single 'dynamically_generated_from_openapi' entry is a placeholder description, not a real tool. The server exposes an unknown number of tools with unknown quality. This violates the core principle that tool definitions must be inspectable and documented.
Tools are dynamically generated at runtime from the vendored Keycloak OpenAPI specification. Each HTTP operation in the spec becomes one MCP tool with the operation_id as the tool name. The exact set of tools depends on the OpenAPI spec content and cannot be statically enumerated without parsing the spec file.
Tools are dynamically generated at runtime from OpenAPI spec; no static tool definitions visible in source code. Cannot verify naming, descriptions, schemas, or parameter documentation. Violates core requirement that tool definitions be inspectable.
No input schemas provided for any tool. Without JSON Schema definitions, LLMs cannot validate inputs or understand parameter types.
Tool description is a meta-explanation of dynamic generation, not a description of what the tool does. Actual tool descriptions (if any) are hidden in the OpenAPI spec and not visible in source code.
No parameter descriptions visible. Even if OpenAPI spec includes descriptions, they are not validated or transformed for LLM consumption. LLMs cannot infer parameter meaning from names alone.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 21 | <=2025-11-25 | v2 |
No error handling or recovery guidance visible. If a generated tool fails, the LLM has no actionable error message or next steps.