The vchart-mcp-server enables AI assistants to generate interactive charts and visualizations through the Model Context Protocol (MCP) using the VChart library.
Chart Types:
Cartesian Charts: line, area, bar, waterfall, funnel, and animated ranking bar charts
Polar Charts: radar, rose, and pie charts
Hierarchical Charts: sunburst, treemap, and circle packing charts
Progress Charts: linear, circular, gauge, and liquid charts for normalized values (0-1)
Specialized Charts: word clouds, Venn diagrams, range column charts, dual-axis charts, scatter/bubble charts, Sankey diagrams, and heatmaps
Output Formats:
Image (PNG/JPG) for embedding in documents
Interactive HTML for web display
VChart spec objects for programmatic use
Customization Features:
Chart dimensions (width/height), titles, and subtitles
Theme selection (light/dark) and custom color palettes
Background colors and detailed axis configuration (labels, grids, ticks, titles, orientation)
Stacking and percentage modes for relevant chart types
Deployment & Integration:
Multiple transport options (stdio for desktop apps, SSE/streamable for web)
Works with Claude, Cursor, VSCode, and other MCP-compatible applications
Private deployment support via custom image generation servers
Natural language chart creation through AI assistant integration
Allows running the VChart MCP server as a standalone Node.js application with SSE or Streamable transport, enabling integration with web-based AI applications beyond desktop clients.
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., "@vchart-mcp-servergenerate a bar chart showing monthly sales data for 2024"
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.
A Model Context Protocol (MCP) server for the @visactor/vchart that enables AI assistants to generate interactive charts and visualizations.
English | 简体中文
Table of Contents
Related MCP server: MCP Server Chart
Features
Chart Output Formats
Each chart can be generated in multiple formats:
Image - PNG/JPG image format for embedding (default)
Spec - VChart spec object for programmatic use
HTML - Interactive HTML chart for web display
Common Parameters Supported by All Charts
Parameter | Description | Type/Options | Default |
| Output format |
|
|
| Chart width | Number |
|
| Chart height | Number |
|
| Chart title | String | Optional |
| Chart subtitle | String | Optional |
| Title position | String | Optional |
| Chart theme | String | Optional |
| Background color | String | Optional |
| Color palette | Array/String | Optional |
Supported Chart Types and Tools
generate_cartesian_chart
Generates Cartesian coordinate system charts, including area, bar, line, waterfall, funnel, and animated ranking bar charts.
Parameter | Description | Type | Required |
| Data object array | Array | Yes |
| Chart type |
| Yes |
| X axis field name |
| Yes |
| Y axis field name |
| Yes |
| Color mapping field |
| Optional |
| Time field for animated ranking bar chart |
| Optional |
| Stack or percent mode |
| Optional |
| Display bar chart horizontally (as bar chart) |
| Optional |
| X axis type |
| Optional |
| X axis position |
| Optional |
| X axis title |
| Optional |
| Show X axis grid lines |
| Optional |
| Show X axis labels |
| Optional |
| Show X axis ticks |
| Optional |
| Y axis type |
| Optional |
| Y axis position |
| Optional |
| Y axis title |
| Optional |
| Show Y axis grid lines |
| Optional |
| Show Y axis labels |
| Optional |
| Show Y axis ticks |
| Optional |
generate_polar_chart
Generates polar coordinate system charts, including radar, rose, and pie charts.
Parameter | Description | Type/Options | Required |
| Data object array | Array | Yes |
| Chart type |
| Yes |
| Category field name |
| Yes |
| Value field name |
| Yes |
| Color mapping field |
| Optional |
| Angle axis title |
| Optional |
| Show angle axis grid lines |
| Optional |
| Show angle axis labels |
| Optional |
| Show angle axis ticks |
| Optional |
| Angle axis type |
| Optional |
| Radius axis title |
| Optional |
| Show radius axis grid lines |
| Optional |
| Show radius axis labels |
| Optional |
| Show radius axis ticks |
| Optional |
| Radius axis type |
| Optional |
generate_hierarchical_chart
Generates hierarchical charts, including treemap, circle packing, and sunburst charts.
Parameter | Description | Type/Options | Required |
| Data object array | Array | Yes |
| Chart type |
| Yes |
| Color mapping field |
| Yes |
| Value mapping field |
| Yes |
generate_progress_chart
Generates progress charts, including circular, linear, gauge, and liquid charts.
Parameter | Description | Type/Options | Required |
| Data object array | Array | Yes |
| Chart type |
| Yes |
| Progress value field name |
| Yes |
| Color mapping field (optional for liquid, required otherwise) |
| Optional |
generate_wordcloud_venn
Generates word cloud or Venn diagrams, suitable for displaying keywords and frequencies in text data.
Parameters:
Parameter | Description | Type/Options | Required |
| Data object array | Array | Yes |
| Chart type |
| Yes |
| Text field or Venn set field name |
| Yes |
| Value field name (required for Venn) |
| Optional |
generate_range_column_chart
Generates horizontal range bar charts, suitable for displaying data ranges and comparisons.
Parameter | Description | Type/Options | Required |
| Data object array |
| Yes |
| Category field name |
| Yes |
| Value field names |
| Yes |
| Color mapping field |
| Optional |
| X axis type |
| Optional |
| X axis position |
| Optional |
| X axis title |
| Optional |
| Show X axis grid lines |
| Optional |
| Show X axis labels |
| Optional |
| Show X axis ticks |
| Optional |
| Y axis type |
| Optional |
| Y axis position |
| Optional |
| Y axis title |
| Optional |
| Show Y axis grid lines |
| Optional |
| Show Y axis labels |
| Optional |
| Show Y axis ticks |
| Optional |
generate_dual_axis_chart
Combination chart with two Y axes, for comparing two metrics with different units.
Parameter | Description | Type/Options | Required |
| Data object array |
| Yes |
| X axis field name |
| Yes |
| Two Y axis field names |
| Yes |
| Color mapping field |
| Optional |
| Stack or percent mode |
| Optional |
| X axis position |
| Optional |
| X axis title |
| Optional |
| Show X axis grid lines |
| Optional |
| Show X axis labels |
| Optional |
| Show X axis ticks |
| Optional |
| Left Y axis title |
| Optional |
| Left Y axis grid lines |
| Optional |
| Left Y axis labels |
| Optional |
| Left Y axis ticks |
| Optional |
| Right Y axis title |
| Optional |
| Right Y axis grid lines |
| Optional |
| Right Y axis labels |
| Optional |
| Right Y axis ticks |
| Optional |
generate_scatter_chart
Displays the relationship between two variables, suitable for discovering patterns and outliers.
Parameter | Description | Type/Options | Required |
| Data object array |
| Yes |
| X axis field name |
| Yes |
| Y axis field name |
| Yes |
| Color mapping field |
| Optional |
| Size mapping field |
| Optional |
| X axis type |
| Optional |
| X axis position |
| Optional |
| X axis title |
| Optional |
| Show X axis grid lines |
| Optional |
| Show X axis labels |
| Optional |
| Show X axis ticks |
| Optional |
| Y axis type |
| Optional |
| Y axis position |
| Optional |
| Y axis title |
| Optional |
| Show Y axis grid lines |
| Optional |
| Show Y axis labels |
| Optional |
| Show Y axis ticks |
| Optional |
generate_sankey_chart
Generates Sankey diagrams.
Parameter | Description | Type | Required |
| Data object array |
| Yes |
| Source node field |
| Yes |
| Target node field |
| Yes |
| Value field |
| Yes |
generate_heatmap_chart
Generates heatmaps, suitable for displaying data density and distribution.
Parameter | Description | Type/Options | Required |
| Data object array |
| Yes |
| X axis field name |
| Yes |
| Y axis field name |
| Yes |
| Value field name |
| Yes |
| X axis type |
| Optional |
| X axis position |
| Optional |
| X axis title |
| Optional |
| Show X axis grid lines |
| Optional |
| Show X axis labels |
| Optional |
| Show X axis ticks |
| Optional |
| Y axis type |
| Optional |
| Y axis position |
| Optional |
| Y axis title |
| Optional |
| Show Y axis grid lines |
| Optional |
| Show Y axis labels |
| Optional |
| Show Y axis ticks |
| Optional |
Usage
To use in desktop applications (such as Trae, Claude, VSCode, Cline, Cherry Studio, Cursor, etc.), add the following MCP server configuration:
MacOS
{
"mcpServers": {
"vchart-mcp-server": {
"command": "npx",
"args": ["-y", "@visactor/vchart-mcp-server"]
}
}
}Windows
{
"mcpServers": {
"vchart-mcp-server": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@visactor/vchart-mcp-server"]
}
}
}Installing via Smithery
To install vchart-mcp-server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @VisActor/vchart-mcp-server --client claudeRunning with SSE or Streamable Transport
Install and Start
Install @visactor/vchart-mcp-server globally:
npm install -g @visactor/vchart-mcp-serverStart the server:
# For SSE transport (default endpoint: /sse)
mcp-server-chart --transport sse
# For Streamable transport (default endpoint: /streamable)
mcp-server-chart --transport streamableThen you can access the server at:
SSE transport:
http://localhost:3001/sseStreamable transport:
http://localhost:3001/streamable
Other CLI Options
Options:
-t, --transport <type> Transport type (stdio, sse, streamable) [default: stdio]
-p, --port <port> Port number for HTTP-based transports [default: 3000]
-e, --endpoint <path> Endpoint path for HTTP-based transports [default: /message]
-h, --help Show this help message
Examples:
node index.js # Start with stdio transport
node index.js -t sse -p 3000 # Start with SSE transport on port 3000
node index.js -t sse -p 3000 -e /api/sse # Start with SSE transport on custom endpoint
node index.js -t streamable -p 3001 -e /stream # Start with streamable transport on custom endpointExample Usage in AI Conversations
Once configured, you can ask your AI assistant to create charts:
"Create an area chart showing monthly sales data"
The assistant will use the generate_cartesian_chart tool with parameters:
- chartType: "area"
- dataTable: your sales data
- xField: "month"
- yField: "sales""Generate a dual-axis chart comparing revenue and user growth"
The assistant will use the generate_dual_axis_chart tool with parameters:
- dataTable: your business data
- xField: "time"
- yField: ["revenue", "userGrowth"]"Show me an interactive HTML bar chart of quarterly performance"
The assistant will use the generate_cartesian_chart tool with parameters:
- chartType: "bar"
- dataTable: your quarterly data
- xField: "quarter"
- yField: "performance"
- output: "html""Create a pie chart of product sales share"
The assistant will use the generate_polar_chart tool with parameters:
- chartType: "pie"
- dataTable: your sales data
- categoryField: "product"
- valueField: "sales""Draw a scatter plot of height and weight"
The assistant will use the generate_scatter_chart tool with parameters:
- dataTable: your body data
- xField: "height"
- yField: "weight"
- colorField: "gender" (optional)"Create a radar chart for team skill assessment"
The assistant will use the generate_polar_chart tool with parameters:
- chartType: "radar"
- dataTable: your assessment data
- categoryField: "skill"
- valueField: "score""Generate a Sankey diagram showing data flow"
The assistant will use the generate_sankey_chart tool with parameters:
- dataTable: your flow data
- sourceField: "from"
- targetField: "to"
- valueField: "amount""Create a heatmap showing data distribution"
The assistant will use the generate_heatmap_chart tool with parameters:
- dataTable: your distribution data
- xField: "x_category"
- yField: "y_category"
- sizeField: "value"Development
Prerequisites
Node.js version >= 22.7.5
Build
npm run buildDevelopment Mode (Auto Rebuild)
npm run watchTesting
# Test chart generation
npm run test-tool
# Run MCP Inspector for debugging
npm run inspectorDebugging
Since the MCP server communicates via stdio, debugging can be challenging. Use MCP Inspector for development:
npm run inspectorTesting in AI Editors
To test the MCP server in an AI editor, use the following configuration:
{
"mcpServers": {
"vchart-mcp-server": {
"command": "node",
"args": ["/Users/path/to/your/project/vchart-mcp-server/build/index.js"]
}
}
}Environment Variables
VIMD_IMAGE_SERVER- Custom image generation server URL (default: https://vmind.visactor.com/export)
Private Deployment
Currently, images and HTML generated by vchart-mcp-server are produced via https://vmind.visactor.com/export. For private deployment, set the VIMD_IMAGE_SERVER environment variable to specify your own image generation server.
{
"mcpServers": {
"mcp-server-chart": {
"command": "npx",
"args": [
"-y",
"@visactor/vchart-mcp-server"
],
"env": {
"VIMD_IMAGE_SERVER": "<YOUR_VIS_REQUEST_SERVER>"
}
}
}
}Image generation service can be deployed privately refer to https://github.com/VisActor/vchart-mcp-server-export.
Star History
License
MIT License
Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.
Related Projects
VChart - Underlying visualization library
Model Context Protocol - Protocol specification