Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Datawrapper

PYPI · DATAWRAPPER-MCP

A Model Context Protocol (MCP) server and app for creating Datawrapper charts using AI assistants

Available components

−19 this week 68 Trust /100

Last scanned (16 hours ago)

Scores higher than 64% of PyPI servers

Category Data and Analytics

Recent critical change

CVE-2026-32871 affects this package (3 Aug 2026). See the changelog before you install this server.

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security40
  • Malware scan not yet available for this package.Unverified
  • CVE check failed: a known medium-severity CVE affects fastmcp 4.0.3, a direct dependency. A fixed version is available. View diagnostics → Fail
  • Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 6 of 68 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to palewire/datawrapper-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 51 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability49
  • 25% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2597 tokens (~199/item across 13 items; 9 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management67
  • Stability observed for 20 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (44% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
  • Supports UI / widget rendering.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 −14
    • Malware scan: pass → unverified ▼ security
  • 3 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 2 Nov 26 −20
    • Malware scan: pass → unverified ▼ security
    • Stability: pass → 0.60 functional
  • 27 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
    • Stability: 0.97 → pass security
  • 26 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Stability: pass → 0.97 functional
  • 24 Oct 26 −3
    • GHSA-vqqp-x5qm-5qp4 affects this package: medium ▼ security
    • GHSA-7xgj-8392-5q4r affects this package: medium ▼ security
    • Known CVEs: pass → fail ▼ security
  • 20 Oct 26 0
    • Stability: 0.97 → pass security
  • 19 Oct 26 0
    • Stability: pass → 0.97 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed pypi/datawrapper-mcp@0.4.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo palewire/datawrapper-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/palewire/datawrapper-mcp/.github/workflows/continuous-deployment.yaml@refs/tags/0.4.0
Rekor log index 2819430903
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:e57dd3d47f69bf1374c81a6a198975b0ac4d8b32af81f44f8198f425dc7fc518

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted setuptools.build_meta

Background: Why install scripts are a supply-chain risk →

Vulnerabilities 2 findings
ID CVE Severity Vector Fix available
GHSA-7xgj-8392-5q4r medium CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N yes
GHSA-vqqp-x5qm-5qp4 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 68 packages
Packages resolved 68
Stale 5
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 9 exposed · ~2,550 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
check_datawrapper_connection ~169

⚠️ 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.

NameTypeReqDescription
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,…
NameTypeReqDescription
resultstringyes–

No examples provided.

create_chart ~916

⚠️ 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 rang…

NameTypeReqDescription
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.
chart_config–yesComplete chart configuration as a Pydantic model dict
chart_typestringyesType 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
data–yesChart 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. Dic…

No output schema declared.

No examples provided.

delete_chart ~94

⚠️ DATAWRAPPER MCP TOOL ⚠️ This is part of the Datawrapper MCP server integration. --- Delete a Datawrapper chart permanently.

NameTypeReqDescription
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.
chart_idstringyesID of the chart to delete
NameTypeReqDescription
resultstringyes–

No examples provided.

export_chart_png ~311

⚠️ 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.

NameTypeReqDescription
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.
border_color––Color of the border, e.g., '#FFFFFF' (optional)
border_widthinteger–Margin around visualization in pixels
chart_idstringyesID of the chart to export
height––Height of the image in pixels (optional)
plainboolean–If true, exports only the visualization without header/footer
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.
transparentboolean–If true, exports with transparent background
width––Width of the image in pixels (optional)
zoominteger–Scale multiplier for resolution, e.g., 2 = 2x resolution

No output schema declared.

No examples provided.

get_chart ~239

⚠️ 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

NameTypeReqDescription
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.
chart_idstringyesID of the chart to retrieve
NameTypeReqDescription
resultstringyes–

No examples provided.

get_chart_schema ~152

⚠️ 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.

NameTypeReqDescription
chart_typestringyesChart type to get schema for
NameTypeReqDescription
resultstringyes–

No examples provided.

list_chart_types ~85

⚠️ 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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

publish_chart ~131

⚠️ 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.

NameTypeReqDescription
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.
chart_idstringyesID of the chart to publish

No output schema declared.

No examples provided.

update_chart ~453

⚠️ 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.

NameTypeReqDescription
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.
chart_config––Updated chart configuration using high-level Pydantic fields (optional)
chart_idstringyesID of the chart to update
data––New chart data (optional). Same formats as create_chart.

No output schema declared.

No examples provided.

Install

How do I install the Datawrapper MCP server?

Datawrapper runs locally as a PyPI package, launched with uvx datawrapper-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · datawrapper-mcp

# add to Claude Code
claude mcp add palewire-datawrapper-mcp -- uvx datawrapper-mcp
Common questions

What is the Datawrapper MCP server?

Datawrapper is an MCP server listed in the public MCP registry as io.github.palewire/datawrapper-mcp. A Model Context Protocol (MCP) server and app for creating Datawrapper charts using AI assistants. This page covers its PyPI package (datawrapper-mcp).

Is the Datawrapper MCP server safe to use?

Datawrapper scores 68 out of 100 on VerifyMCP. We recorded 2 known advisories against it as of 4 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Datawrapper MCP server expose?

Datawrapper exposes 9 tools: list_chart_types, get_chart_schema, check_datawrapper_connection, create_chart, publish_chart, and 4 more. Their descriptions and schemas cost roughly 2,550 tokens of context every time the server is loaded.

Is the Datawrapper MCP server still maintained?

Datawrapper is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Datawrapper MCP server under?

Datawrapper declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.