Tom
Add Datawrapper chart generation mode with clean iframe display
7114af0
raw
history blame
919 Bytes
"""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))]