返回市场
数据包装器-mcp

数据包装器-mcp

作者:palewire10 星标更新:2025-11-18

项目介绍

一个基于Model Context Protocol (MCP)的服务器,使AI助手能够创建Datawrapper图表。该服务器基于datawrapper Python库,并使用Pydantic进行验证。

示例用法

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

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

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

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

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

"给我编辑器的URL。"
# 助手返回Datawrapper编辑器的URL,在那里你可以查看或编辑图表

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

"提出五种改进图表的方法。"
# 看会发生什么!

快速开始

获取您的API令牌

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

安装

使用uvx(推荐)

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

{
  "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服务器包括一个用于Kubernetes存活和就绪探测的/healthz端点:

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