Generate Dynamic Visualizations with ECharts
Generate Apache ECharts visualizations from an AI conversation - 15+ chart types, local rendering, optional S3-compatible storage.
Maintainer of this project? Claim this page to edit the listing.
0.7.1Add to Favorites
Why it matters
Dynamically generate visual diagrams and charts using Apache ECharts and AI MCP. Supports multiple export formats and integrates with MinIO for secure storage and URL generation.
Outcomes
What it gets done
Generate charts and diagrams from data using ECharts.
Export visualizations to PNG, SVG, and option formats.
Integrate with MinIO for cloud storage of generated assets.
Ensure secure, local generation without remote services.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/vb-echarts-mcp-server | bash Capabilities
Tools your agent gets
Generate visual diagrams dynamically using Apache ECharts with support for data, styles, and themes.
Export generated charts to png, svg, or option formats with validation.
Save diagrams to MinIO storage and return URLs instead of Base64 encoded data.
Overview
ECharts MCP Server
An MCP server that generates real Apache ECharts visualizations (15+ chart types) locally from an AI conversation, with optional MinIO/S3 image storage. Use it when an AI assistant needs to produce real, renderable charts rather than describe them - runs fully locally for security-sensitive environments.
What it does
MCP ECharts generates Apache ECharts visualizations dynamically from an AI conversation, supporting the full ECharts feature set - data, styling, themes - across 15+ chart types. It exports to PNG, SVG, or raw ECharts option JSON, with built-in validation so the model can iteratively correct chart syntax across multiple turns. Everything is generated locally with zero remote dependencies, and it can optionally store rendered chart images in MinIO or another S3-compatible object store (Amazon S3, Alibaba Cloud OSS, Google Cloud Storage, Microsoft Azure Blob Storage, or Tencent Cloud COS all work via their respective compatible SDKs) and return a URL instead of Base64 data for better performance and easier sharing.
When to use - and when NOT to
Use this when you want an AI assistant to produce real, renderable data visualizations - bar charts, line charts, maps, and more - rather than describing what a chart would look like. It runs entirely locally with no external service dependency, which matters for security-sensitive environments. If MinIO/S3 isn't configured, it automatically falls back to Base64 output, so image storage is optional rather than required - MinIO itself can be run locally for free (e.g. via brew install minio/stable/minio then minio server ~/minio-data --console-address :9001 on macOS) for testing before committing to a hosted provider. For chart types outside ECharts' coverage, or when you specifically want AntV-based rendering instead, the related mcp-server-chart project is a complementary option mentioned by the same author.
Capabilities
Full ECharts chart generation and styling, with outputType support across all chart tools (png, svg, option). MinIO/S3-compatible storage integration for URL-based image delivery instead of Base64. Runs over stdio, SSE (/sse), or Streamable HTTP (/mcp) transport.
How to install
For desktop apps (Claude, VS Code, Cline, Cherry Studio) via stdio on macOS:
{
"mcpServers": {
"mcp-echarts": {
"command": "npx",
"args": ["-y", "mcp-echarts"]
}
}
}
On Windows, the command wraps through cmd:
{
"mcpServers": {
"mcp-echarts": {
"command": "cmd",
"args": ["/c", "npx", "-y", "mcp-echarts"]
}
}
}
For SSE or Streamable HTTP transport:
npm install -g mcp-echarts
mcp-echarts -t sse # http://localhost:3033/sse
mcp-echarts -t streamable # http://localhost:3033/mcp
CLI options: --transport/-t (stdio/sse/streamable), --port/-p (default 3033), --endpoint/-e. Requires Node.js 18+. Optional MinIO config via .env: MINIO_ENDPOINT, MINIO_PORT, MINIO_ACCESS_KEY, MINIO_SECRET_KEY, MINIO_BUCKET_NAME.
Who it's for
Developers and analysts who want an AI assistant to generate real Apache ECharts visualizations locally and securely, with optional object-storage integration for sharing chart images as URLs rather than inline Base64. Licensed MIT.
Source README
MCP ECharts

Generate
Apache ECharts with AI MCP dynamically for chart generation and data analysis. Also you can use mcp-server-chart to generate chart, graph, map.
โจ Features
- Fully support all features and syntax of
ECharts, include data, style, theme and so on. - Support exporting to
png,svg, andoptionformats, with validation forEChartsto facilitate the model's multi-round output of correct syntax and graphics. - MinIO Integration, store charts in
MinIOobject storage and return URLs instead of Base64 data for better performance and sharing capabilities. - Lightweight, we can install it easily with
zero dependence. - Extremely
secure, fully generated locally, without relying on any remote services.
๐ค Usage
Prerequisites
- Node.js 18 or higher is required.
Desktop Applications (stdio transport)
To use with Desktop APP, such as Claude, VSCode, Cline, Cherry Studio, and so on, add the MCP server config below. On Mac system:
{
"mcpServers": {
"mcp-echarts": {
"command": "npx",
"args": [
"-y",
"mcp-echarts"
]
}
}
}
On Window system:
{
"mcpServers": {
"mcp-echarts": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"mcp-echarts"
]
}
}
}
Also, you can use it on modelscope, glama.ai, smithery.ai or others with HTTP, SSE Protocol.
๐ฐ Run with SSE or Streamable transport
Install the package globally.
npm install -g mcp-echarts
Run the server with your preferred transport option:
# For SSE transport (default endpoint: /sse)
mcp-echarts -t sse
# For Streamable transport with custom endpoint
mcp-echarts -t streamable
Then you can access the server at:
- SSE transport:
http://localhost:3033/sse - Streamable transport:
http://localhost:3033/mcp
๐ฎ CLI Options
You can also use the following CLI options when running the MCP server. Command options by run cli with -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 Configuration (Optional)
For better performance and sharing capabilities, you can configure MinIO object storage to store chart images as URLs instead of Base64 data.
We can Integrate with MinIO object storage providers below.
- MinIO: High-performance, S3-compatible object storage. Use MinIO JavaScript Client for direct integration.
- Amazon S3: Use AWS SDK with compatible API endpoint.
- Alibaba Cloud OSS: Use the Alibaba Cloud SDK for OSS services.
- Google Cloud Storage: Integrate using Google Cloud SDK or compatible API.
- Microsoft Azure Blob Storage: Use Azure SDK for Blob storage access.
- Tencent Cloud COS: Use the Tencent Cloud SDK for COS integration.
Also, we can setup MinIO locally for free.
Install and start MinIO locally:
# Download MinIO (macOS example) brew install minio/stable/minio # Start MinIO server minio server ~/minio-data --console-address :9001Configure environment variables:
# 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
๐จ Development
Install dependencies:
npm install
Build the server:
npm run build
Start the MCP server:
npm run start
๐ง๐ปโ๐ป Contributors
- lyw405: Supports
15+charting MCP tool. #2 - 2niuhe: Support MCP with SSE and Streaming HTTP. #17
- susuperli: Use
MinIOto save the chart image base64 and return the url. #10 - BQXBQX: Use
@napi-rs/canvasinstead node-canvas. #3 - Meet-student: Add
outputTypeschema for all chart tools. #24 - hustcc: Initial the repo.
๐ License
MIT@hustcc.
FAQ
Common questions
Discussion
Questions & comments ยท 0
Sign In Sign in to leave a comment.