这是一个非常明智的决定。通过本地部署 @antv/mcp-server-chart,你不仅摆脱了对 AntV 官方公网服务的依赖,更重要的是实现了数据私有化——你的原始数据(如财务报表、业务数据)不会离开你的本地环境,彻底解决了企业级应用中的隐私顾虑。

以下是实现完全本地化、安全可控部署的完整实操指南。

🏗️ 核心架构:如何实现“数据不出本地”?

默认的 @antv/mcp-server-chart 安装后,虽然服务运行在本地,但默认配置下它可能会尝试调用 AntV 的云端渲染 API。为了实现彻底的数据安全,我们需要引入一个本地渲染引擎

推荐架构方案:

  1. MCP Server (@antv/mcp-server-chart):作为“指挥官”,接收 AI 的指令。
  2. 本地渲染服务 (gpt-vis-api):作为“绘图员”,在本地 Docker 容器中运行,负责画图。
  3. 本地对象存储 (MinIO):作为“画室”,在本地存储生成的图片,不上传公网云。

🛠️ 第一步:环境准备

在开始之前,请确保你的电脑安装了以下基础环境:

  • Node.js (建议 v18 或更高版本)
  • Docker & Docker Compose (用于运行本地渲染服务和存储)

🚀 第二步:部署本地渲染后端 (The Worker)

我们需要先启动一个本地的“绘图服务”,让 MCP Server 有地方发送绘图请求。

1. 启动 MinIO (本地图片存储)

打开终端,运行以下命令启动 MinIO 容器,用于存储生成的图表图片:

bash

docker run -d \
  --name minio \
  -p 19000:9000 \
  -p 19001:9001 \
  -v "$(pwd)/minio-data:/data" \
  -e MINIO_ROOT_USER=admin \
  -e MINIO_ROOT_PASSWORD=12345678 \
  minio/minio:RELEASE.2025-04-22T22-12-26Z \
  server /data --console-address ":9001"

注意:启动后,访问 http://localhost:19001,登录并创建一个名为 chart-images 的存储桶(Bucket),并将其权限设置为 public

2. 启动 GPT-VIS-API (本地绘图引擎)

这是一个轻量级的图表渲染服务,专门配合 MCP Server 使用。

bash

docker run -d \
  --name gpt-vis-api \
  -p 3100:3000 \
  -e MINIO_ENDPOINT=host.docker.internal \
  -e MINIO_PORT=19000 \
  -e MINIO_USE_SSL=false \
  -e MINIO_ACCESS_KEY=admin \
  -e MINIO_SECRET_KEY=12345678 \
  -e MINIO_BUCKET=chart-images \
  -e MINIO_PUBLIC_DOMAIN="http://localhost:19000" \
  crpi-7xkxsdc0iki61l0q.cn-hangzhou.personal.cr.aliyuncs.com/apconw/gpt-vis-api:0.0.1

⚙️ 第三步:安装并配置本地 MCP Server

现在后端准备好了,我们来安装并配置 MCP Server,告诉它不要去连公网,而是连接刚才启动的本地服务。

1. 安装工具

bash

npm install -g @antv/mcp-server-chart
2. 配置环境变量 (关键步骤)

你需要设置一个环境变量 VIS_REQUEST_SERVER,将其指向你本地的绘图服务地址。

  • macOS / Linux:bash

    编辑

    export VIS_REQUEST_SERVER="http://localhost:3100/generate"
  • Windows (PowerShell):powershell

    编辑

    $env:VIS_REQUEST_SERVER="http://localhost:3100/generate"
3. 启动服务

bash

mcp-server-chart --transport sse --port 1122

此时,服务已在本地 1122 端口启动,且所有绘图请求都会转发到本地的 3100 端口,完全在局域网内闭环。


🔌 第四步:在 AI 工具中连接

最后,在你的 AI 客户端(如 Cursor、Claude Desktop 或 Trae)中配置连接这个本地服务。

以 Claude Desktop 配置 (claude_desktop_config.json) 为例:

json

{
  "mcpServers": {
    "local-safe-chart": {
      "command": "npx",
      "args": ["-y", "@antv/mcp-server-chart"],
      "env": {
        "VIS_REQUEST_SERVER": "http://localhost:3100/generate"
      }
    }
  }
}

🛡️ 部署效果验证

配置完成后,你可以进行以下测试来验证数据安全链路:

  1. 断网测试:拔掉网线,向 AI 发送指令:“根据这组数据画一个柱状图”。
  2. 结果观察
    • 如果配置正确,AI 依然能生成图表。
    • 生成的图片链接通常是 http://localhost:19000/... 开头的本地地址。
    • 打开 MinIO 控制台,你会看到图片文件实实在在地存储在你的硬盘里。

📌 总结

通过这套方案,你实现了一个完全闭环的私有化数据可视化系统

  • 数据流向:AI -> 本地 MCP Server -> 本地渲染容器 -> 本地 MinIO 存储。
  • 安全等级极高。没有任何业务数据会经过公网。
  • 性能:由于都在本地,生成速度通常比调用云端 API 更快(通常 < 500ms)。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐