echarts-mcp
Provides tools for rendering Apache ECharts options to SVG, validating ECharts options, and listing available chart types.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@echarts-mcpCreate an SVG bar chart showing 2024 monthly sales."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
echarts-mcp
A modern, open-source Apache ECharts MCP server. It exposes type-safe tools that let AI agents and chat UIs render rich, deterministic charts server-side — no browser, no native canvas dependency.
Built against the Model Context Protocol v2 SDK (@modelcontextprotocol/server@2) and
Apache ECharts 6.1.0 (pinned), supporting both stdio and Streamable HTTP transports.
Highlights
SVG-first rendering —
echarts.init(null, theme, { renderer: "svg", ssr: true })+renderToSVGString()produces clean, scalable vector output with zero native dependencies and no DOM. Deterministic by default (animation: false).Fully stateless — every tool result is self-contained (raw SVG + echoed option). No files, no session state, horizontally scalable over HTTP.
Type-safe tool surface — JSON Schema derived from Zod v4 (
Standard Schema), so agents get precise, machine-readable input/output contracts.Passthrough fidelity —
render_echartaccepts any ECharts v6 option; it does not restrict chart types (seelist_chart_typesfor discoverability only).
Related MCP server: ECharts MCP Server
Tools
Tool | Purpose |
| Renders an ECharts option to SVG. Returns the raw SVG + echoed option. |
| Dry-run structural + semantic validation (pinned to echarts@6.1.0) without rendering. |
| Lists common series types for agent discoverability (not an allowlist). |
render_echart inputs
Param | Type | Default | Notes |
| object | required | Full ECharts v6 option (passthrough). |
|
|
|
|
| int | 800 / 500 | Render dimensions in pixels. |
| number | 2 | Raster only (deferred). |
| string | object |
| Built-in name or inline theme JSON object. |
| string |
| e.g. |
| boolean |
| Emit an animated SVG when |
The result carries an MCP text content block (the raw SVG) plus structuredContent
with svg, width, height, renderer, theme, background, and version.
Quick start
Requires Node.js 20+ (developed on Node 24) and pnpm.
pnpm install
pnpm build # compiles src/ -> dist/
pnpm dev # run via tsx (stdio)
pnpm start # run the compiled dist (stdio)Run the server over stdio (the default) from an MCP client by pointing it at dist/index.js.
Install from npm
npm install -g @ryuk3nd0/echarts-mcp
# then use it from any MCP client:
echarts-mcp
# or ad-hoc without a global install:
npx -y @ryuk3nd0/echarts-mcpStreamable HTTP
MCP_TRANSPORT=streamable-http MCP_HTTP_PORT=3030 node dist/index.jsThe MCP endpoint is then available at http://localhost:3030/mcp.
Configuration
Configuration is resolved in this precedence order (highest first):
Environment variables
A JSON config file (
MCP_CONFIGpath, or./config.jsonwhen present)Built-in defaults
Env var | Config key | Default |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
See config.example.json for the full shape.
Authentication (Streamable HTTP only)
By default the HTTP endpoint is open (intended for trusted localhost). To protect it,
set MCP_API_TOKEN (or http.authToken in config.json). Clients must then send
Authorization: Bearer <token>; requests without a matching token receive 401.
Development
pnpm typecheck # tsc --noEmit
pnpm lint # eslint
pnpm test # vitest run
pnpm format # prettierDocker
docker build -t echarts-mcp .
# stdio
docker run -i --rm echarts-mcp
# streamable HTTP
docker run -p 3030:3030 -e MCP_TRANSPORT=streamable-http echarts-mcpRoadmap / deferred
Canvas/PNG raster engine (v1.1): requires a DOM shim +
@napi-rs/canvas+echarts.setPlatformAPI({ createCanvas, loadImage, measureText })+ font registration.Full OAuth 2.1 resource-server auth (optional bearer token today).
License
Apache-2.0. See LICENSE.
Integrations
Ready-to-paste client config snippets live in integrations/:
integrations/claude-desktop.json— Claude Desktop stdio entry.integrations/mcp.json— generic stdio entry (Claude Code, Cursor, and others).integrations/streamable-http.json— remote Streamable HTTP endpoint for gateways and hosted LLM tool integrations.
A machine-readable SKILL.md at the repo root describes the server for Agent Skills systems.
The same guidance is exposed to MCP clients via the server's instructions field.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- TypeScriptMIT
- Alicense-qualityDmaintenanceA Model Context Protocol server that generates beautiful chart images from ECharts configurations, supporting various chart types with customizable dimensions.107MIT

vchart-mcp-serverofficial
AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server for the @visactor/vchart that enables AI assistants to generate interactive charts and visualizations.101552MIT- Alicense-qualityCmaintenanceAn MCP (Model Context Protocol) server that enables LLMs to generate ECharts visualizations by accepting chart type, data and parameters and returning cloud image URLs of the generated charts.1078Apache 2.0
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
MCP (Model Context Protocol) server for Appwrite
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ryuk3nd0/echarts-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server