MCP Connector

Generate Dynamic Visualizations with ECharts

Generate Apache ECharts visualizations from an AI conversation - 15+ chart types, local rendering, optional S3-compatible storage.

Works with minioechartsgithub

Maintainer of this project? Claim this page to edit the listing.


91
Spark score
out of 100
Updated 5 months ago
Version 0.7.1
Models
universal

Add 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

01

Generate charts and diagrams from data using ECharts.

02

Export visualizations to PNG, SVG, and option formats.

03

Integrate with MinIO for cloud storage of generated assets.

04

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_chart

Generate visual diagrams dynamically using Apache ECharts with support for data, styles, and themes.

export_chart

Export generated charts to png, svg, or option formats with validation.

save_to_minio

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 build npm Version smithery badge npm License Trust Score

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.

mcp-echarts
award

โœจ Features

  • Fully support all features and syntax of ECharts, include data, style, theme and so on.
  • Support exporting to png, svg, and option formats, with validation for ECharts to facilitate the model's multi-round output of correct syntax and graphics.
  • MinIO Integration, store charts in MinIO object 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.

Also, we can setup MinIO locally for free.

  1. Install and start MinIO locally:

    # Download MinIO (macOS example)
    brew install minio/stable/minio
    
    # Start MinIO server
    minio server ~/minio-data --console-address :9001
    
  2. Configure 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 MinIO to save the chart image base64 and return the url. #10
  • BQXBQX: Use @napi-rs/canvas instead node-canvas. #3
  • Meet-student: Add outputType schema 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.