← Discover MCPs and Agents
g
MCPAI & MLGitHub

gpt-vis-api

GPT-VIS-API 是一个轻量级图表生成服务,旨在解决 [antv/mcp-server-chart](https://github.com/antvis/mcp-server-chart) 在私有化部署方面的局限性。该服务接收数据请求,生成图表图像,上传到 MinIO 对象存储,并返回带有效期的预签名访问链接。

Links

README

From the repo.

GPT-VIS-API

基于 Node.js 和 Express 构建的图表生成服务,支持将生成的图表上传至 MinIO 并返回预签名 URL。

📌 项目概述

GPT-VIS API 是一个轻量级图表生成服务,旨在解决 antv/mcp-server-chart 在私有化部署方面的局限性。该服务接收数据请求,生成图表图像,上传到 MinIO 对象存储,并返回带有效期的预签名访问链接。

主要功能包括:

  • 接收 JSON 格式的数据请求
  • 使用 AntV/G 生成图表(如折线图、柱状图等)
  • 将图表图片上传至 MinIO 存储
  • 返回图片的预签名 URL 供前端访问

🎬 运行效果

https://github.com/user-attachments/assets/b2f440ba-6cc9-43bf-8af9-7e30d4a20702

💬👥 技术支持群

  • 想了解更多?欢迎关注并转发下面我的微信公众号文章(持续更新中)。
  • 感谢支持,您的赞助将帮助我们持续更新!入群方式请查看下面公众号文章末尾说明。
大模型如何读懂任何格式文件并自动生成报告?LangGraph + MCP 实战解析
用 AntV MCP Server Chart 赋能大模型 —— 从零构建可视化智能体,图表生成效率飙升!
Neo4j构建语义图谱,大模型秒懂表关系,Text2SQ准确率狂飙300%!告别瞎猜!
用 BM25 + 中文分词实现 Text2SQL 表过滤 —— 让大模型只看“相关表”,准确率飙升!![img.png](img.png)

🔧 环境准备

1. 安装依赖

确保已安装以下工具:

  • Docker
  • Docker Compose

🚀 快速启动

第一步 克隆仓库

git clone git@github.com:apconw/gpt-vis-api.git

# 启动服务
docker-compose up -d

第二步 minio配置

  • 登录minio控制台http://localhost:19201 admin/12345678
  • 1.手动创建minio 名字为chart-images的bucket 要求public类型的bucket
  • 2.创建accessKey和secretKey 修改docker-compose.yml中minio的配置重启即可
  • 3.执行docker-compose down 停止服务
  • 4.执行docker-compose up -d 重启服务
  • 5.docker-compose.yml中minio的配置可以根据实际情况配置对应服务器ip: MINIO_PUBLIC_DOMAIN: "http://localhost:19000"

image image

⚠️ 注意:请先根据实际环境修改 docker-compose.yml 中的 MinIO 配置(如 accessKey、secretKey),然后重启服务。

🐳 构建镜像

make build

🧪 接口测试

测试接口

访问地址:http://localhost:3100/generate

图表类型定义

图表类型说明
area区域
bar柱状
boxplot箱线
column直方
dual-axes双轴
fishbone-diagram鱼骨图
flow-diagram流程
funnel漏斗
histogram直方
line折线
liquid水波
mind-map思维导
network-graph网络图
organization-chart组织结构
pie饼
radar雷达
sankey桑基
scatter散点
treemap树
venn维恩图
violin小提琴图
word-cloud词云
curl -X POST http://localhost:3100/generate \
  -H "Content-Type: application/json" \
  -d '{
    "type": "line",
    "data": [
      {"time": "2025-05", "value": 512},
      {"time": "2025-06", "value": 1024}
    ]
  }'

响应示例:
{
  "url": "https://minio.example.com/gpt-vis/chart-123.png?Expires=XYZ"
}

curl -X POST http://localhost:3100/generate \
  -H "Content-Type: application/json" \
  -d '{
    "type": "sankey",
    "data": [
        {
            "source": "访问网站",
            "target": "浏览商品",
            "value": 1500
        },
        {
            "source": "浏览商品",
            "target": "加入购物车",
            "value": 900
        },
        {
            "source": "加入购物车",
            "target": "进入结算",
            "value": 600
        },
        {
            "source": "进入结算",
            "target": "完成支付",
            "value": 400
        },
        {
            "source": "进入结算",
            "target": "放弃结算",
            "value": 200
        },
        {
            "source": "加入购物车",
            "target": "离开网站",
            "value": 300
        },
        {
            "source": "浏览商品",
            "target": "离开网站",
            "value": 600
        },
        {
            "source": "访问网站",
            "target": "立即离开",
            "value": 500
        }
    ],
    "nodeAlign": "center",
    "style": {
        "backgroundColor": "#f8f9fa",
        "palette": [
            "#4e79a7",
            "#f28e2b",
            "#e15759",
            "#76b7b2",
            "#59a14f",
            "#edc948",
            "#b07aa1",
            "#9c755f"
        ],
        "texture": "default"
    },
    "theme": {
        "fontFamily": "WenQuanYi Zen Hei"
    },
    "width": 800,
    "height": 500,
    "title": "用户购买旅程桑基图",
    "source": "mcp-server-chart"
}'

curl -X POST http://localhost:3100/generate \
  -H "Content-Type: application/json" \
  -d '{
    "data": [
        {
            "category": "浏览网站",
            "value": 50000
        },
        {
            "category": "放入购物车",
            "value": 35000
        },
        {
            "category": "生成订单",
            "value": 25000
        },
        {
            "category": "支付订单",
            "value": 15000
        },
        {
            "category": "完成交易",
            "value": 8000
        }
    ],
    "style": {
        "backgroundColor": "#ffffff",
        "palette": [
            "#FF6B6B",
            "#4ECDC4",
            "#45B7D1",
            "#96CEB4",
            "#FFEAA7"
        ],
        "texture": "default"
    },
    "theme": "default",
    "width": 600,
    "height": 400,
    "title": "用户转化漏斗图",
    "type": "funnel"
}'


# 组织架构图
curl -X POST http://localhost:3100/generate \
  -H "Content-Type: application/json" \
  -d '{
  "data": {
    "name": "CEO",
    "description": "首席执行官",
    "children": [
      {
        "name": "CTO",
        "description": "首席技术官",
        "children": [
          {
            "name": "研发经理",
            "description": "负责研发团队管理",
            "children": [
              {
                "name": "高级工程师 张伟",
                "description": "5年经验"
              },
              {
                "name": "工程师 李娜",
                "description": "2年经验"
              }
            ]
          },
          {
            "name": "架构师 王强",
            "description": "系统架构设计"
          }
        ]
      },
      {
        "name": "CFO",
        "description": "首席财务官",
        "children": [
          {
            "name": "财务经理",
            "description": "负责财务团队管理"
          }
        ]
      },
      {
        "name": "COO",
        "description": "首席运营官",
        "children": [
          {
            "name": "市场总监",
            "description": "负责市场战略"
          },
          {
            "name": "运营经理",
            "description": "负责日常运营"
          }
        ]
      }
    ]
  },
  "orient": "vertical",
  "style": {
    "backgroundColor": "#f8f9fa",
    "texture": "default"
  },
  "theme": "default",
  "width": 800,
  "height": 600,
  "type":"organization-chart"
}'

Collected info

  • ★ 61 stars
  • ⎇ 17 forks
  • Language: JavaScript
  • Source updated: 7/8/2026

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.