mcp-highcharts
Enables rendering interactive Highcharts charts inline within GitHub Copilot chat interfaces, allowing AI assistants to visualize data through various chart types directly in the conversation.
Click on "Deploy 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., "@mcp-highcharts Create a line chart showing our monthly revenue growth for the past year"
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.
mcp-highcharts
Render interactive Highcharts charts inline in AI chat — VS Code, GitHub Copilot, Claude Desktop, or any MCP client with MCP Apps support.
Setup
Click a badge above, or add to your MCP config:
{
"mcp": {
"servers": {
"highcharts": {
"command": "npx",
"args": ["-y", "mcp-highcharts@latest"]
}
}
}
}Add to claude_desktop_config.json:
{
"mcpServers": {
"highcharts": {
"command": "npx",
"args": ["-y", "mcp-highcharts@latest"]
}
}
}npx mcp-highcharts@latest --http # http://localhost:3001/mcp
PORT=8080 npx mcp-highcharts@latest --http # custom portRelated MCP server: Chart-Output MCP Server
Tools
Tool | Description |
| Any chart type — line, bar, pie, scatter, heatmap, sankey, gauge, treemap, wordcloud, and 60+ more |
| Financial charts with navigator, range selector, and 40+ technical indicators |
| Multi-component layouts with charts, KPIs, and data grids |
| Choropleth maps, map bubbles, map points (auto-fetches map data from CDN) |
| Project timelines with tasks, dependencies, and milestones |
| Standalone data tables with sorting, pagination, and formatting |
All tools accept the full Highcharts Options API.
Prompts
Prompt | What it does |
| Paste data → get the best chart |
| Scaffold a dashboard |
| Candlestick + volume + indicators |
| Side-by-side comparison patterns |
| Gantt with dependencies |
| Live-updating chart from a data URL |
Configuration
Theming
Charts auto-adapt to host light/dark mode. Override with environment variables:
{
"env": {
"HIGHCHARTS_THEME": "dark-unica",
"HIGHCHARTS_OPTIONS": "./my-theme.json"
}
}HIGHCHARTS_OPTIONS accepts .json, .js, .mjs, .ts, or inline JSON.
Built-in themes: adaptive (default), avocado, brand-dark, brand-light, dark-blue, dark-green, dark-unica, gray, grid, grid-light, high-contrast-dark, high-contrast-light, sand-signika, skies, sunset
Schema depth
Controls how much type information is sent to the LLM:
{ "env": { "SCHEMA_DEPTH": "1" } }Depth | Description |
| Property names only — zero context overhead |
| Top-level types + descriptions + examples |
| One level of typed children |
| Two levels deep — complete recursive Highcharts type tree |
Data sources
For live-updating charts, use the Highcharts data module with data.csvURL and data.enablePolling: true.
Image export (non-app fallback)
For MCP clients that don't support MCP Apps, enable server-side image export to include a PNG screenshot of each chart in the tool response:
{
"env": {
"IMAGE_EXPORT": "true"
}
}Charts are rendered as PNG and returned as base64 image content blocks. The interactive MCP app is still included for capable clients.
Rendering strategy (automatic):
Local (Puppeteer) — if
highcharts-export-serveris installed, charts render locally via a headless browser. No network calls, fastest option.Remote fallback — if local isn't available, chart config is POSTed to the Highcharts Export Server.
To enable local rendering, install the optional peer dependency:
npm install highcharts-export-serverTo use a custom remote export server:
{
"env": {
"IMAGE_EXPORT": "true",
"EXPORT_SERVER_URL": "https://your-export-server.example.com/"
}
}You can also enable it programmatically: createServer({ imageExport: true }).
Note: Image export works for standard charts, stock charts, and Gantt charts. Dashboards, data grids, and maps with string-based map keys (e.g.
"custom/world") are not exportable and will return text-only results.
Development
npm install
node scripts/generate-from-tree.mjs --multi # generate Zod schemas at depths 0, 1, 2
npm run build
npm testProject structure
main.ts Entry point (stdio + HTTP transports)
server.ts MCP server — tool registrations and handlers
src/
export-image.ts Server-side PNG export (local Puppeteer + remote fallback)
input-schema.ts Depth-based schema selection + LLM-friendly overrides
mcp-app.ts Client-side Highcharts rendering
module-loader.ts Dynamic Highcharts module loading
generated/ Auto-generated from Highcharts API (do not edit)
highcharts-depth-{0,1,2}.gen.ts Zod schemas at each depth
module-map.json Chart type → Highcharts module mapping
scripts/
generate-from-tree.mjs Generate Zod schemas from Highcharts tree.json
generate-module-map.mjs Generate module-map.json from Highcharts
example-providers.mjs Example extraction for schema generation
measure-schema.ts Measure tool context size at each depthChart types, module mappings, and schemas are auto-generated from the installed Highcharts version — just npm update highcharts and regenerate.
License
MIT
Available Tools
6 toolsrender_chartRender ChartBRead-only
Render an interactive Highcharts chart inline. Input is a Highcharts Options object (https://api.highcharts.com/highcharts/).
Inputs: accessibility, annotations, boost, caption, +26 more.
render_dashboardRender DashboardBRead-only
Render a Highcharts Dashboard with multiple components (charts, KPIs, data grids) in a synced layout. Uses @highcharts/dashboards.
Inputs: components (required), gui, dataPool, editMode.
render_ganttRender Gantt ChartBRead-only
Render a Highcharts Gantt chart for project timelines and task scheduling. Uses Highcharts.ganttChart() (https://api.highcharts.com/gantt/).
Inputs: series (required), accessibility, annotations, boost, +27 more.
render_gridRender Data GridARead-only
Render a Highcharts Grid Lite data table for tabular data display. Standalone component — no chart required.
Inputs: columns, data, dataTable, header, +7 more.
render_mapRender MapBRead-only
Render an interactive Highcharts Map for geographic data visualization. Uses Highcharts.mapChart(). Input is a Highcharts Maps Options object (https://api.highcharts.com/highmaps/).
Inputs: series (required), accessibility, annotations, boost, +28 more.
render_stock_chartRender Stock ChartBRead-only
Render a Highcharts Stock chart for financial/time-series data. Input is a Highcharts Stock Options object (https://api.highcharts.com/highstock/).
Inputs: accessibility, annotations, boost, caption, +30 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose targeting specific Highcharts chart types or components (e.g., standard chart, dashboard, Gantt, grid, map, stock chart). There is no overlap in functionality, and the descriptions clearly differentiate each tool's use case, preventing misselection.
All tool names follow a consistent verb_noun pattern with 'render_' as the prefix, followed by the specific chart or component type (e.g., render_chart, render_dashboard). This predictable naming scheme enhances readability and usability across the tool set.
With 6 tools, the server is well-scoped for rendering various Highcharts visualizations, covering key chart types and components. Each tool earns its place by addressing distinct visualization needs, making the count appropriate for the domain without being overwhelming or insufficient.
The tool set provides complete coverage for rendering Highcharts visualizations, including standard charts, dashboards, Gantt charts, data grids, maps, and stock charts. This covers the core Highcharts library and major extensions, leaving no obvious gaps for the server's purpose of chart rendering.
Maintenance
Related MCP Connectors
Renders interactive Chart.js charts and dashboards inline in AI conversations.
Renders interactive Chart.js charts and dashboards inline in AI conversations. Supports bar, line, area, pie, doughnut, scatter, and radar charts with multi-chart dashboard grids.
Generate production-ready chart code (Recharts, Chart.js, ECharts, Plotly) from a prompt.
Charts and dashboards as images for AI agents. No browser, same data same bytes. Local and free.
Related MCP Servers
- AlicenseAqualityBmaintenanceRenders 45+ interactive chart types, dashboards, and KPI widgets directly inside AI conversations. Supports drill-down, live API polling, 20 themes, and one-click export to PNG, PowerPoint, and A4 documents.40144 npm53Functional Source , Version 1.1, MIT Future
- AlicenseAqualityDmaintenanceEnables AI agents to generate and render charts as PNG, SVG, or WebP images directly in chat interfaces. Supports Chart.js specifications and natural language descriptions for creating visualizations from data.315 npm1MIT
- AlicenseNot gradedqualityBmaintenanceLet AI agents create interactive visualizations that render live inside your chat — no code required.22 PyPI3BSD 3-Clause
- AlicenseAqualityBmaintenanceEnables AI assistants and clients to generate Highcharts-based charts with schema validation, export to PNG/SVG/PDF, and natural language to chart conversion.212 npm1ISC