返回 MCP 目录
public公开dns本地运行

datawrapper-mcp

一个基于Datawrapper Python库的MCP服务器,允许AI助手创建、发布、更新和展示Datawrapper图表,支持通过聊天交互完成图表操作。

article

README

🚀 数据可视化模型上下文协议(MCP)服务器

这是一个模型上下文协议(MCP)服务器,它允许AI助手创建Datawrapper图表。该服务器基于 datawrapper Python库 构建,并使用Pydantic进行验证。

🚀 快速开始

获取API令牌

  1. 访问 https://app.datawrapper.de/account/api-tokens
  2. 创建一个新的API令牌
  3. 如上述所示,将其添加到您的MCP配置中

安装指南

使用uvx(推荐)

claude_desktop_config.json 中配置您的MCP客户端,使用 uvx 运行服务器:

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

使用pip

pip install datawrapper-mcp

然后配置您的MCP客户端:

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

Kubernetes部署

对于企业级部署,此服务器可以使用HTTP传输部署到Kubernetes:

构建Docker镜像

docker build -t datawrapper-mcp:latest .

使用Docker运行

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

环境变量

  • DATAWRAPPER_ACCESS_TOKEN:您的Datawrapper API令牌(必需)
  • MCP_SERVER_HOST:服务器主机(默认:0.0.0.0
  • MCP_SERVER_PORT:服务器端口(默认:8501
  • MCP_SERVER_NAME:服务器名称(默认:datawrapper-mcp

健康检查端点

HTTP服务器包含一个 /healthz 端点,用于Kubernetes的存活和就绪探针:

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

Kubernetes配置示例

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

💻 使用示例

以下是一个完整的示例,展示了如何通过与助手聊天来创建、发布、更新和显示图表:

"使用以下数据创建一个Datawrapper折线图,展示温度趋势:
2020, 15.5
2021, 16.0
2022, 16.5
2023, 17.0"
# 助手创建图表并返回图表ID,例如 "abc123"

"发布它。"
# 助手发布图表并返回公共URL

"用2024年的新数据更新图表:17.2°C"
# 助手用新数据点更新图表

"将线条颜色设置为道奇蓝。"
# 助手更新图表配置以设置线条颜色

"显示编辑器URL。"
# 助手返回Datawrapper编辑器URL,您可以在其中查看/编辑图表

"显示PNG图像。"
# 助手在其响应中嵌入图表的PNG图像。

"建议五种改进图表的方法。"
# 看看会发生什么!
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端