Datawrapper
A Model Context Protocol (MCP) server and app for creating Datawrapper charts using AI assistants
Versions
0.0.16latestTools 9
list_chart_types ⚠️ DATAWRAPPER MCP TOOL ⚠️ This is part of the Datawrapper MCP server integration. --- List all available Datawrapper chart types with brief descriptions. Use this tool to discover which chart types you can create. After choosing a type, use get_chart_schema(chart_type) to explore detailed configuration options. Returns: List of available chart types with descriptions
get_chart_schema ⚠️ DATAWRAPPER MCP TOOL ⚠️ This is part of the Datawrapper MCP server integration. --- Get the Pydantic JSON schema for a specific chart type. This is your primary tool for discovering styling and configuration options. The schema shows: - All available properties and their types - Enum values (e.g., line widths, interpolation methods) - Default values - Detailed descriptions for each property WORKFLOW: Use this tool first to explore options, then refer to https://datawrapper.readthedocs.io/en/latest/ for detailed examples and patterns showing how to use these properties in practice. Args: chart_type: Chart type to get schema for Returns: JSON schema for the chart type
check_datawrapper_connection ⚠️ DATAWRAPPER MCP TOOL ⚠️ This is part of the Datawrapper MCP server integration. --- Check which Datawrapper account is currently authenticated, without creating, modifying, or deleting anything. Use this to troubleshoot access issues - especially when connected through a personal Claude connector using a per-user Authorization header, where a misconfigured header silently falls back to a different account instead of raising an error. If the reported email isn't the one you expected, the header isn't reaching the server correctly. Args: access_token: Optional Datawrapper API token. When provided, checks that token specifically. When omitted, checks whichever credential this call would otherwise use (the BYOK header, or the server's DATAWRAPPER_ACCESS_TOKEN env var). Returns: The authenticated account's email, name, and ID as JSON, or a troubleshooting-oriented error if the token was rejected.
create_chart ⚠️ THIS IS THE DATAWRAPPER INTEGRATION ⚠️ Use this MCP tool for ALL Datawrapper chart creation. DO NOT: ❌ Install the 'datawrapper' Python package ❌ Use the Datawrapper API directly ❌ Import 'from datawrapper import ...' ❌ Run pip install datawrapper This MCP server IS the complete Datawrapper integration. All Datawrapper operations should use the MCP tools provided by this server. --- Create a Datawrapper chart with full control using Pydantic models. This allows you to specify all chart properties including title, description, visualization settings, axes, colors, and more. The chart_config should be a complete Pydantic model dict matching the schema for the chosen chart type. BEST PRACTICES: - Start simple, then add customization based on user feedback - Only apply styling when requested or when it significantly improves readability - Let Datawrapper handle axis scaling automatically unless there's a specific reason to override QUICK EXAMPLES: 1. Basic chart with title: chart_config = { "title": "Monthly Sales", "intro": "Sales data for Q1 2024" } 2. Chart with custom colors: chart_config = { "title": "Product Comparison", "color_category": { "Product A": "#1f77b4", "Product B": "#ff7f0e" } } 3. Styled line chart: chart_config = { "title": "Sales Trends", "lines": [ {"column": "sales", "width": "style2", "interpolation": "curved"} ], "custom_range_y": [0, 1000] } STYLING WORKFLOW: 1. Use list_chart_types to see available chart types 2. Use get_chart_schema to explore all options for your chosen type 3. Refer to https://datawrapper.readthedocs.io/en/latest/ for detailed examples 4. Build your chart_config with the desired styling properties Common styling patterns: - Colors: {"color_category": {"sales": "#1d81a2", "profit": "#15607a"}} - Line styling: {"lines": [{"column": "sales", "width": "style1", "interpolation": "curved"}]} - Axis ranges: {"custom_range_y": [0, 100], "custom_range_x": [2020, 2024]} NOTE: Datawrapper's automatic axis scaling is excellent. Only set custom ranges when you need specific customization (e.g., comparing multiple charts, forcing zero baseline for specific analytical reasons, or matching a house style guide). - Grid formatting: {"y_grid_format": "0", "x_grid": "on", "y_grid": "on"} - Tooltips: {"tooltip_number_format": "00.00", "tooltip_x_format": "YYYY"} - Annotations: {"text_annotations": [{"x": "2023", "y": 50, "text": "Peak"}]} See the documentation for chart-type specific examples and advanced patterns. Args: data: Chart data. RECOMMENDED: Pass data inline as a list or dict. PREFERRED FORMATS (use these first): 1. List of records (RECOMMENDED): [{"year": 2020, "sales": 100}, {"year": 2021, "sales": 150}] 2. Dict of arrays: {"year": [2020, 2021], "sales": [100, 150]} 3. JSON string of format 1 or 2: '[{"year": 2020, "sales": 100}]' ALTERNATIVE (only for extremely large datasets where inline data is impractical): 4. File path to CSV or JSON: "/path/to/data.csv" or "/path/to/data.json" chart_type: Type of chart to create. Use list_chart_types to see all available types. Common types: bar, line, area, arrow, column, multiple_column, scatter, stacked_bar chart_config: Complete chart configuration as a Pydantic model dict access_token: Optional Datawrapper API token. When provided, charts are created in the caller's account (recommended). When omitted, falls back to the server's DATAWRAPPER_ACCESS_TOKEN env var. Returns: Chart ID, editor URL, and an inline PNG preview image (if export succeeds)
publish_chart ⚠️ DATAWRAPPER MCP TOOL ⚠️ This is part of the Datawrapper MCP server integration. --- Publish a Datawrapper chart to make it publicly accessible and render a preview in chat. IMPORTANT: Only use this tool when the user explicitly requests to publish the chart. Do not automatically publish charts after creation unless specifically asked. Args: chart_id: ID of the chart to publish access_token: Optional Datawrapper API token. When provided, uses the caller's account. When omitted, falls back to the server's DATAWRAPPER_ACCESS_TOKEN env var. Returns: Public URL plus an inline preview when available
get_chart ⚠️ DATAWRAPPER MCP TOOL ⚠️ This is part of the Datawrapper MCP server integration. --- Get information about an existing Datawrapper chart, including its complete configuration, metadata, and URLs. The returned configuration can be used to: - Understand how a chart is styled and configured - Adapt the configuration to a new dataset - Clone a chart's styling to create similar visualizations Returns: - chart_id: The chart's unique identifier - title: Chart title - type: Simplified chart type name (bar, line, stacked_bar, etc.) - same format as used in list_chart_types and create_chart - config: Complete Pydantic model configuration including all styling, colors, axes, tooltips, annotations, and other properties - public_url: Public URL if published - edit_url: Editor URL Args: chart_id: ID of the chart to retrieve access_token: Optional Datawrapper API token. When provided, uses the caller's account. When omitted, falls back to the server's DATAWRAPPER_ACCESS_TOKEN env var. Returns: Chart information including complete configuration and URLs
update_chart ⚠️ DATAWRAPPER MCP TOOL ⚠️ This is part of the Datawrapper MCP server integration. --- Update an existing Datawrapper chart's data or configuration using Pydantic models. ⚠️ IMPORTANT LIMITATION: You CANNOT change the chart type with this tool. Chart types are immutable once created. To change from one chart type to another (e.g., column → stacked_bar, or line → area), you must create a new chart instead. WHAT YOU CAN UPDATE: • Chart data (add/modify/replace data points) • Title, intro, byline, source information • Colors, styling, axes configuration • Tooltips, annotations, labels • Any other configuration options for the existing chart type WHAT YOU CANNOT UPDATE: ✗ Chart type (bar, line, column, etc.) - this is permanent The chart_config must use high-level Pydantic fields only (title, intro, byline, source_name, source_url, etc.). Do NOT use low-level serialized structures like 'metadata', 'visualize', or other internal API fields. STYLING UPDATES: Use get_chart_schema to see available fields, then apply styling changes: - Colors: {"color_category": {"sales": "#ff0000"}} - Line properties: {"lines": [{"column": "sales", "width": "style2"}]} - Axis settings: {"custom_range_y": [0, 200], "y_grid_format": "0,0"} - Tooltips: {"tooltip_number_format": "0.0"} See https://datawrapper.readthedocs.io/en/latest/ for detailed examples. The provided config will be validated through Pydantic and merged with the existing chart configuration. Args: chart_id: ID of the chart to update data: New chart data (optional). Same formats as create_chart. chart_config: Updated chart configuration using high-level Pydantic fields (optional) access_token: Optional Datawrapper API token. When provided, uses the caller's account. When omitted, falls back to the server's DATAWRAPPER_ACCESS_TOKEN env var. Returns: Confirmation message, editor URL, and an inline PNG preview image (if export succeeds)
delete_chart ⚠️ DATAWRAPPER MCP TOOL ⚠️ This is part of the Datawrapper MCP server integration. --- Delete a Datawrapper chart permanently. Args: chart_id: ID of the chart to delete access_token: Optional Datawrapper API token. When provided, uses the caller's account. When omitted, falls back to the server's DATAWRAPPER_ACCESS_TOKEN env var. Returns: Confirmation message
export_chart_png ⚠️ DATAWRAPPER MCP TOOL ⚠️ This is part of the Datawrapper MCP server integration. --- Export a Datawrapper chart as PNG and display it inline. The chart must be created first using create_chart. Supports high-resolution output via the zoom parameter. IMPORTANT: Only use this tool when the user explicitly requests to see the chart image or export it as PNG. Do not automatically export charts after creation unless specifically asked. Args: chart_id: ID of the chart to export width: Width of the image in pixels (optional) height: Height of the image in pixels (optional) plain: If true, exports only the visualization without header/footer zoom: Scale multiplier for resolution, e.g., 2 = 2x resolution transparent: If true, exports with transparent background border_width: Margin around visualization in pixels border_color: Color of the border, e.g., '#FFFFFF' (optional) access_token: Optional Datawrapper API token. When provided, uses the caller's account. When omitted, falls back to the server's DATAWRAPPER_ACCESS_TOKEN env var. timeout: Seconds to wait for the export before giving up (optional). Defaults to 30s. Large or complex charts (e.g. high zoom values) may need a longer timeout to finish rendering server-side. Returns: PNG image content
Permissions 4
network medium filesystem low shell high env_vars low