Releases: ryuk3nd0/echarts-mcp
Releases · ryuk3nd0/echarts-mcp
Release list
v1.0.0 — Multi-format rendering + enterprise security hardening
v1.0.0 — Multi-format rendering + enterprise security hardening
New features
- Multi-format output —
render_echartnow emits SVG, PNG, and/or self-contained interactive HTML in a single call, selected via theformatsargument (default["svg"]).svg— raw vector text (zero native dependencies).png— base64 image block via the optional@napi-rs/canvasdependency.html— a self-contained interactive page (pinnedecharts@6.1.0CDN).
- URL export seam —
exportToUrlpersists a rendered artifact and returns a public URL (configure viaMCP_EXPORT_DIR+MCP_EXPORT_BASE_URL), for chat-platform targets.
Security hardening
- SSRF deny-by-default — remote
image://fetches are rejected unless hostlisted viaMCP_IMAGE_ALLOW_HOSTS/security.imageAllowHosts. - Bounded inputs — option/theme depth (≤ 64) and node count (≤ 100k) guards; pixel budget and
maxImageBytescaps. - Render timeout — per-image-load
AbortSignaltimeout. - Constant-time auth — SHA-256 +
timingSafeEqualbearer-token compare. - HTML script-breakout fix —
safeJsonescaping prevents</script>injection via the embedded option. - Non-root container —
USER nodejsin the Dockerfile.
Testing & docs
- New
test:security,test:stress,test:leak,test:enterprisesuites (42 tests). - New
SECURITY.mdthreat model with implemented controls and residual risks. - Refreshed
README.md,SKILL.md, andVERIFICATION.md.
Full changelog: v0.1.2...v1.0.0
v0.1.2 — Agent Skills support
v0.1.2 — Agent Skills support (.agents/skills standard)
Ship one skill that every major AI tool auto-discovers.
What's new
- Canonical Agent Skills file at
.agents/skills/echarts/SKILL.md— the cross-tool standard location (agentskills.io) scanned by Claude Code, OpenCode, Codex, Antigravity, Cursor, and others. install-skillscommand —npx @ryuk3nd0/echarts-mcp install-skillscopies the skill into each tool's personal discovery directory:- Claude Code:
~/.claude/skills/echarts/ - OpenCode:
~/.config/opencode/skills/echarts/ - Codex / Antigravity / Cursor:
~/.agents/skills/echarts/(shared standard)
- Claude Code:
- Skill arrives inside the npm package (
.agents/skills/in the tarball) and is committed to the repo for project-level discovery. SKILL.mdfrontmatter fixed (name: echarts, proper 'use when' description) and documents the portable-option workflow: the returnedoptionJSON can be dropped directly into a browserecharts.init(dom)build for live charts.
Research-backed
Cross-tool discovery conventions were verified against primary sources (code.claude.com, opencode.ai, developers.openai.com, antigravity.google, cursor.com, agentskills.io). Full reference: agent-skills-discovery-reference.md.
Verification
- 23 tests pass (5 suites), typecheck/lint/build clean.
- Skills auto-discovery proven live: the harness itself picked up
.agents/skills/echarts/SKILL.mdas a loadableechartsskill.
Note
- npm publish is 2FA-gated and handled by the maintainer manually, not automation.
- After
npm i -g @ryuk3nd0/echarts-mcp, runecharts-mcp install-skillsto install the skill into your tools.
npm: @ryuk3nd0/echarts-mcp@0.1.2
v0.1.1
v0.1.1
Fixes and verification hardening for the first public release.
Fixed
- Integration snippets now point at the correct scoped package
@ryuk3nd0/echarts-mcp(previouslynpx echarts-mcpwould have resolved to an unrelated project). - HTTP integration test flake: replaced a blind startup sleep with a proper port-readiness probe.
- Empty-catch-block lint error in the HTTP integration test.
Added
- Real-client integration tests using the official
@modelcontextprotocol/clientSDK over stdio and Streamable HTTP. VERIFICATION.md— a pass/fail checklist for verifying in real apps (Claude Desktop, Claude Code, Cursor, HTTP gateway).- README install section for the published package.
Verification
- 23 tests pass (5 suites), typecheck clean, lint clean, build clean.
npm: @ryuk3nd0/echarts-mcp@0.1.1
v0.1.0 — Initial release
v0.1.0 — Initial release
Apache ECharts MCP server: type-safe tools, SVG-first rendering, stdio + Streamable HTTP transports.
Highlights
- SVG-first rendering via
echarts.init(null, theme, { renderer: "svg", ssr: true })+renderToSVGString()— zero native dependencies. - Fully stateless — self-contained results (raw SVG + echoed option).
- Type-safe JSON Schema derived from Zod v4 (Standard Schema).
- Tools:
render_echart,validate_echart_option,list_chart_types. - Built on MCP SDK v2 (
@modelcontextprotocol/server@2+@modelcontextprotocol/node@2).
Stack
- Node 20+, TypeScript NodeNext ESM, pnpm, Vitest.
echarts@6.1.0(pinned).
npm: @ryuk3nd0/echarts-mcp@0.1.0