关于 MCP ECharts
MCP ECharts 是基于 Apache ECharts 的 MCP 服务,可根据 AI 生成的配置动态创建图表与数据可视化,适用于图表生成和数据分析场景。项目支持 png、svg 与 option 输出,并可选择将图片存入 MinIO 等对象存储。
主要功能
- 01支持 ECharts 的完整语法与配置
- 02导出 png、svg 与 option 格式
- 03提供 ECharts 配置校验
- 04可选接入 MinIO 对象存储返回 URL
- 05未配置存储时回退为 Base64 输出
适用场景
- 01由 AI 根据数据生成柱状图、折线图等图表
- 02在对话中生成可导出的图表图片
- 03将生成的图表保存至对象存储并分享链接
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露图表生成工具,客户端可传入 ECharts 配置并获取图表结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
18收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| echartsOption | string | 是 | 用于生成图表的 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 字符串,且不能为空。 |
| width | number | 否 | ECharts 的宽度,单位为像素。默认值为 800。 |
| height | number | 否 | ECharts 的高度,单位为像素。默认值为 600。 |
| theme | enum | 否 | ECharts 主题,可选。默认值为 'default'。default | dark |
| outputType | enum | 否 | 图表的输出类型。可选值为 'png'、'svg' 或 'option'。默认值为 'png';'png' 将返回渲染后的 PNG 图像,'svg' 将返回渲染后的 SVG 字符串,'option' 将返回有效的 ECharts option。png | svg | option |
详细介绍
MCP ECharts

借助 AI MCP 动态生成
Apache ECharts,用于图表生成和数据分析。你也可以使用 mcp-server-chart 生成图表、关系图和地图。
✨ 功能
- 全面支持
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:高性能、兼容 S3 的对象存储。使用 MinIO JavaScript Client 直接集成。
- Amazon S3:使用 AWS SDK 和兼容的 API 端点。
- Alibaba Cloud OSS:使用 Alibaba Cloud SDK 提供的 OSS 服务。
- Google Cloud Storage:使用 Google Cloud SDK 或兼容的 API 进行集成。
- Microsoft Azure Blob Storage:使用 Azure SDK 访问 Blob 存储。
- Tencent Cloud COS:使用 Tencent Cloud SDK 集成 COS。
此外,我们还可以免费在本地设置 MinIO。
-
在本地安装并启动 MinIO:
# Download MinIO (macOS example) brew install minio/stable/minio # Start MinIO server minio server ~/minio-data --console-address :9001 -
配置环境变量:
# 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:为所有图表工具添加
outputTypeschema。#24 - hustcc:初始化仓库。
📄 许可证
MIT@hustcc。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。