True MCP server for Kafka Schema Registry with 50+ tools, OAuth authentication, remote deployment support, context management, elicitation capability, resource linking, smart defaults, and Claude Desktop integration
This Kafka Schema Registry MCP server has moderate definition quality with significant gaps in schema documentation, parameter descriptions, and error handling. 12 tools are defined with varying quality. Tool names follow verb_noun patterns (register_schema, get_schema, export_context) which is good, but many descriptions lack context about WHEN to use each tool versus similar alternatives. Input schemas are present for all tools examined, but several lack depth in parameter constraints and relationships. Most critically, output schemas are not documented in the provided source, and error handling guidance is absent. The server implements interactive/elicitation variants of core tools (register_schema_interactive, migrate_context_interactive, check_compatibility_interactive), which is a forward-thinking pattern, but these add complexity without clear differentiation from non-interactive versions. The Dockerfile and build infrastructure are well-structured with security hardening, suggesting operational maturity, but this does not compensate for definition gaps.
Interactive compatibility checking with elicitation for resolution options when incompatibilities are detected.
Compare two Schema Registry instances and show differences. Only available in multi-registry mode.
Interactive context creation with elicitation for context metadata.
Export all subjects within a context.
Interactive global export with elicitation for export format preferences.
Export a single schema in the specified format.
Output schemas not documented. For all 12 tools, the response structure is not visible in the provided source code. LLMs cannot plan downstream tool calls or extract required fields without knowing what data will be returned.
No error handling or recovery guidance. Tools provide no documentation on what errors can occur (invalid schema, subject not found, permission denied, network timeout) or what the LLM should do next (retry? call a discovery tool? ask the user?). Bare error codes or stack traces will confuse agents.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 62 | 2025-11-25+ | v1 |
Export all versions of a subject.
Get a specific version of a schema.
Get all versions of a schema for a subject.
Interactive context migration with elicitation for migration preferences.
Register a new schema version under the specified subject.
Interactive schema registration with elicitation for missing field definitions. When schema_definition is incomplete or missing fields, this tool will elicit the required information from the user interactively.
Interactive tools lack clear differentiation from non-interactive counterparts. register_schema and register_schema_interactive have identical input schemas, so the LLM cannot infer from the schema alone which to use and why. The '_interactive' suffix is vague and may be confused across all interactive variants. No description explains when elicitation is triggered or what interaction model is expected.
Missing parameter constraints and enums. Several parameters accept controlled values (schema_type: AVRO/JSON/PROTOBUF; include_versions: all/latest) but these are not enforced as JSON Schema enums. LLMs will hallucinate invalid values (e.g. 'YAML' for schema_type). Additionally, format parameters (export_schema.format) lack enum constraints.
Missing pagination guidance. Tools like get_schema_versions, export_subject, export_context that return multiple items do not document pagination support (limit, offset, cursor) or result size caps. Agents cannot reason about whether to expect 2 results or 2000, risking context window overflow.
Descriptions are too generic and lack WHEN-to-use guidance. For example, get_schema says 'Get a specific version of a schema' without explaining when to call this instead of get_schema_versions, whether it resolves semantic versioning, or what happens if the version does not exist. Many descriptions lack the LLM-optimized format (WHAT, WHEN, HOW) that enables optimal tool selection.
export_global_interactive has an empty input schema (no parameters). This is concerning: how does the LLM specify what to export (all registries? all subjects? filter by name)? The description mentions 'elicitation for export format preferences' but does not explain whether the LLM provides scope parameters or whether the tool always exports everything.
Ambiguous parameter meanings. The context parameter appears in many tools as optional and is marked as 'Optional schema context' but never explains what a schema context is, whether it is a namespace or a property, or when it is required vs optional. Similarly, registry parameter is noted '(ignored in single-registry mode)' without explaining how to know if the server is in single vs multi-registry mode or how to switch.