mcpField
M
MCP ECharts

MCP ECharts

本地服务
github.com/hustcc数据与分析2709 周前更新

关于 MCP ECharts

MCP ECharts 是基于 Apache ECharts 的 MCP 服务,可根据 AI 生成的配置动态创建图表与数据可视化,适用于图表生成和数据分析场景。项目支持 png、svg 与 option 输出,并可选择将图片存入 MinIO 等对象存储。

主要功能

  1. 01支持 ECharts 的完整语法与配置
  2. 02导出 png、svg 与 option 格式
  3. 03提供 ECharts 配置校验
  4. 04可选接入 MinIO 对象存储返回 URL
  5. 05未配置存储时回退为 Base64 输出

适用场景

  1. 01由 AI 根据数据生成柱状图、折线图等图表
  2. 02在对话中生成可导出的图表图片
  3. 03将生成的图表保存至对象存储并分享链接

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露图表生成工具,客户端可传入 ECharts 配置并获取图表结果。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"echarts": {
"command": "npx",
"args": [
"-y",
"mcp-echarts"
]
}
}
}
启动命令npx -y mcp-echarts

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-echarts

工具

18

收录的工具列表 · 更新于 3 周前

参数类型必填说明
echartsOptionstring是用于生成图表的 ECharts 选项和配置。例如: { "title": { "text": "ECharts Entry Example", "left": "center", "top": "2%" }, "tooltip": {}, "xAxis": { "data": ["shirt", "cardigan", "chiffon", "pants", "heels", "socks"] }, "yAxis": {}, "series": [{ "name": "Sales", "type": "bar", "data": [5, 20, 36, 10, 10, 20] }] } 注意:有效的 ECharts 选项必须是有效的 JSON 字符串,且不能为空。
widthnumber否ECharts 的宽度,单位为像素。默认值为 800。
heightnumber否ECharts 的高度,单位为像素。默认值为 600。
themeenum否ECharts 主题,可选。默认值为 'default'。default | dark
outputTypeenum否图表的输出类型。可选值为 'png'、'svg' 或 'option'。默认值为 'png';'png' 将返回渲染后的 PNG 图像,'svg' 将返回渲染后的 SVG 字符串,'option' 将返回有效的 ECharts option。png | svg | option

详细介绍

README 配图 MCP ECharts MCP Server 构建 npm 版本 已在 Skillselion 上列出 npm 许可证 信任评分

借助 AI MCP 动态生成 README 配图 Apache ECharts,用于图表生成和数据分析。你也可以使用 README 配图 mcp-server-chart 生成图表、关系图和地图。

mcp-echarts
奖项

✨ 功能

  • 全面支持 ECharts 的所有功能和语法,包括数据、样式、主题等。
  • 支持导出为 png、svg 和 option 格式,并对 ECharts 进行验证,便于模型通过多轮输出生成正确的语法和图表。
  • 集成 MinIO,将图表存储在 MinIO 对象存储中,并返回 URL,而非 Base64 数据,从而提升性能和分享能力。
  • 轻量,可轻松通过 zero dependence 安装。
  • 极其安全,完全在本地生成,不依赖任何远程服务。

🤖 使用方法

前置条件
  • 需要 Node.js 18 或更高版本。
桌面应用(stdio 传输)

要在 Claude、VSCode、Cline、Cherry Studio 等桌面应用中使用,请添加以下 MCP 服务配置。在 Mac 系统上:

{
  "mcpServers": {
    "mcp-echarts": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-echarts"
      ]
    }
  }
}

在 Window 系统上:

{
  "mcpServers": {
    "mcp-echarts": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "mcp-echarts"
      ]
    }
  }
}

你也可以通过 HTTP、SSE 协议,在 modelscope、glama.ai、skillselion.com 等平台使用。

🚰 使用 SSE 或 Streamable 传输运行

全局安装软件包。

npm install -g mcp-echarts

使用你偏好的传输选项运行服务:

# For SSE transport (default endpoint: /sse)
mcp-echarts -t sse

# For Streamable transport with custom endpoint
mcp-echarts -t streamable

随后即可通过以下地址访问服务:

  • SSE 传输:http://localhost:3033/sse
  • Streamable 传输:http://localhost:3033/mcp

🎮 CLI 选项

运行 MCP 服务时,也可以使用以下 CLI 选项。运行 CLI 时使用 -h 查看命令选项。

MCP ECharts CLI

Options:
  --transport, -t  Specify the transport protocol: "stdio", "sse", or "streamable" (default: "stdio")
  --port, -p       Specify the port for SSE or streamable transport (default: 3033)
  --endpoint, -e   Specify the endpoint for the transport:
                    - For SSE: default is "/sse"
                    - For streamable: default is "/mcp"
  --help, -h       Show this help message

🗂️ MinIO 配置(可选)

为了提升性能和共享能力,你可以配置 MinIO 对象存储,将图表图片以 URL 的形式存储,而不是使用 Base64 数据。

说明

如果未配置 MinIO 或 MinIO 不可用,系统会自动回退到 Base64 数据输出,以确保兼容性。

我们可以与以下 MinIO 对象存储服务提供商集成。

此外,我们还可以免费在本地设置 MinIO。

  1. 在本地安装并启动 MinIO:

    # Download MinIO (macOS example)
    brew install minio/stable/minio
    
    # Start MinIO server
    minio server ~/minio-data --console-address :9001
    
  2. 配置环境变量:

    # Copy the example environment file
    cp .env.example .env
    
    # Edit .env with your MinIO settings
    MINIO_ENDPOINT=localhost
    MINIO_PORT=9000
    MINIO_USE_SSL=false
    MINIO_ACCESS_KEY=minioadmin
    MINIO_SECRET_KEY=minioadmin
    MINIO_BUCKET_NAME=mcp-echarts
    

🔨 开发

安装依赖:

npm install

构建服务:

npm run build

启动 MCP 服务:

npm run start

🧑🏻‍💻 贡献者

  • lyw405:支持 15+ 个图表 MCP 工具。#2
  • 2niuhe:支持通过 SSE 和 Streaming HTTP 使用 MCP。#17
  • susuperli:使用 MinIO 保存图表图片的 base64 数据并返回 URL。#10
  • BQXBQX:使用 @napi-rs/canvas 替代 node-canvas。#3
  • Meet-student:为所有图表工具添加 outputType schema。#24
  • hustcc:初始化仓库。

📄 许可证

MIT@hustcc。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。