Datawrapper

Provides a Datawrapper MCP server to create, publish, update, and display charts via MCP clients.
  • python

12

GitHub Stars

python

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "palewire-datawrapper-mcp": {
      "command": "uvx",
      "args": [
        "datawrapper-mcp"
      ],
      "env": {
        "DATAWRAPPER_ACCESS_TOKEN": "your-token-here"
      }
    }
  }
}

A Datawrapper MCP Server lets you create, publish, and manage Datawrapper charts through natural conversation with your AI assistant. It integrates the Datawrapper Python library with strict input validation so you can build visualizations quickly, refine data, and share live charts via editor URLs or PNGs.

How to use

You interact with the MCP server through your preferred MCP client. Start by creating a chart with your data, then publish it to obtain a public URL. You can update the data or chart configuration, request the editor URL to view or edit the chart, and fetch the PNG image for embedding. You can also ask the assistant for ideas to improve the chart. All actions are executed by issuing natural language prompts that map to chart operations.

Typical workflows you can perform include creating a line chart from your dataset, publishing the chart to make it publicly accessible, updating data for new years or values, customizing visuals such as colors, and retrieving the editor URL or a PNG version for inclusion in reports.

How to install

Prerequisites: ensure you have a runtime capable of executing MCP servers and access to the Datawrapper API. You will configure the MCP client to run the server and provide your API token.

Option A — using uvx (recommended) to run the MCP server locally or in your environment:

{
  "mcpServers": {
    "datawrapper": {
      "command": "uvx",
      "args": ["datawrapper-mcp"],
      "env": {
        "DATAWRAPPER_ACCESS_TOKEN": "your-token-here"
      }
    }
  }
}

Using pip

Install the MCP package via Python’s package manager and configure your client to point at it.

pip install datawrapper-mcp
{
  "mcpServers": {
    "datawrapper": {
      "command": "datawrapper-mcp",
      "env": {
        "DATAWRAPPER_ACCESS_TOKEN": "your-token-here"
      }
    }
  }
}

Kubernetes Deployment and HTTP transport

For enterprise deployments, you can deploy the server to Kubernetes using HTTP transport. You build a Docker image, run it with the required environment variable, and expose it on a port. The following examples show the steps to build the image and run the container.

Build the Docker image

docker build -t datawrapper-mcp:latest .

Run the Docker container

docker run -p 8501:8501 \
  -e DATAWRAPPER_ACCESS_TOKEN=your-token-here \
  -e MCP_SERVER_HOST=0.0.0.0 \
  -e MCP_SERVER_PORT=8501 \
  datawrapper-mcp:latest

Environment variables

DATAWRAPPER_ACCESS_TOKEN: Your Datawrapper API token (required)
MCP_SERVER_HOST: Server host (default: 0.0.0.0)
MCP_SERVER_PORT: Server port (default: 8501)
MCP_SERVER_NAME: Server name (default: datawrapper-mcp)

Health check and Kubernetes configuration

The HTTP server provides a health endpoint for Kubernetes readiness and liveness checks.

curl http://localhost:8501/healthz
# Returns: {"status": "healthy", "service": "datawrapper-mcp"}

Kubernetes deployment example

apiVersion: apps/v1
kind: Deployment
metadata:
  name: datawrapper-mcp
spec:
  replicas: 1
  selector:
    matchLabels:
      app: datawrapper-mcp
  template:
    metadata:
      labels:
        app: datawrapper-mcp
    spec:
      containers:
      - name: datawrapper-mcp
        image: datawrapper-mcp:latest
        ports:
        - containerPort: 8501
        env:
        - name: DATAWRAPPER_ACCESS_TOKEN
          valueFrom:
            secretKeyRef:
              name: datawrapper-secrets
              key: access-token
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8501
          initialDelaySeconds: 5
          periodSeconds: 30
        readinessProbe:
          httpGet:
            path: /healthz
            port: 8501
          initialDelaySeconds: 5
          periodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
  name: datawrapper-mcp
spec:
  selector:
    app: datawrapper-mcp
  ports:
  - protocol: TCP
    port: 8501
    targetPort: 8501

Available tools

create_chart

Create a new Datawrapper chart from provided data and chart type.

publish_chart

Publish a chart to generate a public URL for sharing.

update_chart

Update chart data or configuration with new values.

get_editor_url

Return the Datawrapper editor URL to view or edit the chart.

get_png

Provide a PNG image of the chart for embedding.

suggest_improvements

Offer ideas to improve the chart's clarity, layout, or aesthetics.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational