"""Handler for retrieving chart schemas.""" import json from mcp.types import TextContent from ..config import CHART_CLASSES async def get_chart_schema(arguments: dict) -> list[TextContent]: """Get the Pydantic schema for a chart type.""" chart_type = arguments["chart_type"] chart_class = CHART_CLASSES[chart_type] schema = chart_class.model_json_schema() # Remove examples that contain DataFrames (not JSON serializable) if "examples" in schema: del schema["examples"] result = { "chart_type": chart_type, "class_name": chart_class.__name__, "schema": schema, "usage": ( "Use this schema to construct a chart_config dict for create_chart_advanced. " "The schema shows all available properties, their types, and descriptions." ), } return [TextContent(type="text", text=json.dumps(result, indent=2))]