Skip to main content
Glama
aywengo

MCP Kafka Schema Reg

get_registry_info

Retrieve detailed information about a specific Kafka Schema Registry. Use this tool to access registry data efficiently, maintained for backward compatibility with the MCP server.

Instructions

Get detailed information about a specific registry.

NOTE: This tool is maintained for backward compatibility. Consider using the 'registry://info/{name}' resource instead for better performance.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
registryNo

Implementation Reference

  • Handler function for the get_registry_info tool, decorated with @structured_output to enable structured responses and schema validation.
    @structured_output("get_registry_info", fallback_on_error=True)
    def get_registry_info_tool(registry_manager, registry_mode: str, registry: Optional[str] = None) -> Dict[str, Any]:
        """
        Get detailed information about a specific registry with structured validation and resource links.
    
        Args:
            registry_manager: The registry manager instance
            registry_mode: Current registry mode (single/multi)
            registry: Optional registry name
    
        Returns:
            Dictionary containing detailed registry information with structured validation and navigation links
        """
        try:
            if registry_mode == "single" and not registry:
                registry = registry_manager.get_default_registry()
    
            info = registry_manager.get_registry_info(registry)
            if info is None:
                return create_error_response(
                    f"Registry '{registry}' not found",
                    error_code="REGISTRY_NOT_FOUND",
                    registry_mode=registry_mode,
                )
    
            # Add structured output metadata
            info["registry_mode"] = registry_mode
            info["mcp_protocol_version"] = "2025-06-18"
    
            # Add additional metadata for better context
            info["_metadata"] = {
                "queried_registry": registry,
                "is_default": registry == registry_manager.get_default_registry(),
                "query_timestamp": __import__("datetime").datetime.now().isoformat(),
            }
    
            # Add resource links
            registry_name_for_linking = _get_registry_name_for_linking(registry_mode, registry)
            info = add_links_to_response(info, "registry", registry_name_for_linking)
    
            return info
        except Exception as e:
            return create_error_response(str(e), error_code="REGISTRY_INFO_FAILED", registry_mode=registry_mode)
  • JSON Schema definition for the output of the get_registry_info tool (REGISTRY_INFO_SCHEMA). Mapped in TOOL_OUTPUT_SCHEMAS at line 924.
    REGISTRY_INFO_SCHEMA = {
        "type": "object",
        "properties": {
            "name": {"type": "string", "description": "Registry name"},
            "url": {"type": "string", "format": "uri", "description": "Registry URL"},
            "status": {
                "type": "string",
                "enum": ["connected", "disconnected", "error", "unknown"],
                "description": "Connection status",
            },
            "auth_type": {
                "type": "string",
                "enum": ["none", "basic", "oauth", "ssl"],
                "description": "Authentication type",
            },
            "viewonly": {
                "type": "boolean",
                "description": "Whether registry is in viewonly mode",
            },
            "version": {"type": "string", "description": "Schema Registry server version"},
            "capabilities": {
                "type": "array",
                "items": {"type": "string"},
                "description": "Server capabilities",
            },
            **METADATA_FIELDS,
        },
        "required": ["name", "url"],
        "additionalProperties": True,
    }
  • TOOL_OUTPUT_SCHEMAS dictionary mapping "get_registry_info" to its output schema (line 924). Used for MCP tool schema validation.
    # Schema Operations
    "register_schema": REGISTER_SCHEMA_SCHEMA,
    "get_schema": GET_SCHEMA_SCHEMA,
    "get_schema_versions": GET_SCHEMA_VERSIONS_SCHEMA,
    "get_schema_by_id": GET_SCHEMA_BY_ID_SCHEMA,
    "get_subjects_by_schema_id": GET_SUBJECTS_BY_SCHEMA_ID_SCHEMA,
    "check_compatibility": CHECK_COMPATIBILITY_SCHEMA,
    "list_subjects": LIST_SUBJECTS_SCHEMA,
    # Registry Management
    "list_registries": LIST_REGISTRIES_SCHEMA,
    "get_registry_info": REGISTRY_INFO_SCHEMA,
    "test_registry_connection": TEST_CONNECTION_SCHEMA,
    "test_all_registries": TEST_ALL_REGISTRIES_SCHEMA,
    # Configuration Management
    "get_global_config": CONFIG_SCHEMA,
    "update_global_config": CONFIG_SCHEMA,
    "get_subject_config": CONFIG_SCHEMA,
    "update_subject_config": CONFIG_SCHEMA,
    "delete_subject_alias": {
        "oneOf": [
            {
                "type": "object",
                "properties": {
                    "alias": {"type": "string", "description": "Alias subject name"},
                    "deleted": {"type": "boolean", "description": "Whether alias was deleted"},
                    "registry": {"type": "string", "description": "Registry name (multi-registry mode)"},
                    **METADATA_FIELDS,
                },
                "required": ["alias", "deleted"],
                "additionalProperties": True,
            },
            ERROR_RESPONSE_SCHEMA,
        ],
    },
    "add_subject_alias": {
        "oneOf": [
            {
                "type": "object",
                "properties": {
                    "alias": {"type": "string", "description": "New alias subject name"},
                    "target": {"type": "string", "description": "Existing subject target"},
                    "registry": {"type": "string", "description": "Registry name (multi-registry mode)"},
                    **METADATA_FIELDS,
                },
                "required": ["alias", "target"],
                "additionalProperties": True,
  • Decorator @structured_output("get_registry_info") registers the tool name and enables structured output with schema validation per MCP spec.
    )
    
    
    def _get_registry_name_for_linking(registry_mode: str, registry_name: Optional[str] = None) -> str:
        """Helper function to get registry name for linking."""
        if registry_mode == "single":
            return "default"
        elif registry_name:
            return registry_name
        else:
            return "unknown"
    
    
    @structured_output("list_registries", fallback_on_error=True)
    def list_registries_tool(registry_manager, registry_mode: str) -> Dict[str, Any]:
        """
        List all configured Schema Registry instances with structured validation and resource links.
    
        Args:
            registry_manager: The registry manager instance
            registry_mode: Current registry mode (single/multi)
    
        Returns:
            Dictionary containing registry information with structured validation and navigation links
        """
        try:
            registries_list = []
            for name in registry_manager.list_registries():
                info = registry_manager.get_registry_info(name)
                if info:
                    # Add structured output metadata
                    info["registry_mode"] = registry_mode
                    info["mcp_protocol_version"] = "2025-06-18"
    
                    # Add resource links for each registry
                    info = add_links_to_response(info, "registry", name)
    
                    registries_list.append(info)
    
            # Convert to enhanced response format
            result = {
                "registries": registries_list,
                "total_count": len(registries_list),
                "registry_mode": registry_mode,
                "mcp_protocol_version": "2025-06-18",
            }
    
            # If no registries found, add helpful message
            if not registries_list:
                result["message"] = "No registries configured"
                result["help"] = {
                    "single_mode": "Set SCHEMA_REGISTRY_URL environment variable",
                    "multi_mode": "Set SCHEMA_REGISTRY_NAME_1, SCHEMA_REGISTRY_URL_1 environment variables",
                }
    
            # Add default registry information
            default_registry = registry_manager.get_default_registry()
            if default_registry:
                result["default_registry"] = default_registry
    
            return result
        except Exception as e:
            return create_error_response(str(e), error_code="REGISTRY_LIST_FAILED", registry_mode=registry_mode)
    
    
    @structured_output("get_registry_info", fallback_on_error=True)
Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aywengo/kafka-schema-reg-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server