Viz MCP Server
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., "@Viz MCP Server create a bar chart of monthly revenue"
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.
Viz MCP Server 📊
A Model Context Protocol (MCP) server for data visualization — generate bar charts, line charts, pie charts, scatter plots, and histograms. Returns SVG (inline) or PNG (file).
Built for AI agents. Works with Hermes Agent, Claude Code, Cursor, and any MCP-compatible client.
✨ Features
Tool | Description |
| Bar chart (vertical/horizontal) with value labels |
| Line chart with area fill, markers, trend |
| Pie/donut chart with percentage labels |
| Scatter plot with optional regression line |
| Histogram with mean line, optional cumulative |
All tools support:
4 color palettes:
default,vibrant,pastel,monochromeSVG output (inline for MCP response) or PNG output (saved to file)
Custom titles, axis labels
Clean matplotlib styling (no chartjunk)
Related MCP server: UNHCR Chart Generation MCP Server
🚀 Quick Start
# Install from GitHub
pip install git+https://github.com/ceeyang-ai/viz-mcp-server.git
# Run as MCP server
viz-mcp-server🔌 Usage with Hermes Agent
Add to ~/.hermes/config.yaml:
mcp_servers:
viz:
command: "viz-mcp-server"Restart Hermes → tools available as mcp_viz_create_bar_chart, etc.
📖 Examples
Bar Chart
# Via MCP tool call
result = create_bar_chart(
values=[10, 25, 15, 30, 20],
labels=["Q1", "Q2", "Q3", "Q4", "Q5"],
title="Quarterly Revenue",
ylabel="Revenue ($K)",
palette="vibrant"
)Scatter with Trend Line
result = create_scatter_plot(
x_values=[1, 2, 3, 4, 5, 6, 7, 8],
y_values=[2, 3, 5, 7, 11, 13, 17, 19],
title="Growth Analysis",
regression_line=True
)Histogram
result = create_histogram(
values=[12, 15, 13, 20, 19, 18, 14, 16, 22, 25, 21, 17],
bins=8,
title="Score Distribution",
xlabel="Score"
)🛠 Requirements
Python 3.10+
matplotlib ≥ 3.7
numpy ≥ 1.24
mcp ≥ 1.0
👨💻 Development
git clone https://github.com/ceeyang-ai/viz-mcp-server.git
cd viz-mcp-server
pip install -e .
viz-mcp-server # Start MCP server📄 License
MIT
Available Tools
5 toolscreate_bar_chartA
Create a bar chart.
Args: values: Numeric values for each bar labels: Category labels (optional, auto-generated if omitted) title: Chart title xlabel: X-axis label ylabel: Y-axis label palette: Color palette: default, vibrant, pastel, monochrome horizontal: If True, render horizontal bars output: 'svg' for inline SVG string, 'png' for file path
Inputs: values (required), labels, title, xlabel, +4 more. Returns: result
create_histogramA
Create a histogram.
Args: values: Numeric data points bins: Number of bins (default: 10) title: Chart title xlabel: X-axis label ylabel: Y-axis label palette: Color palette: default, vibrant, pastel, monochrome cumulative: Show cumulative distribution output: 'svg' for inline SVG, 'png' for file path
Inputs: values (required), bins, title, xlabel, +4 more. Returns: result
create_line_chartA
Create a line chart.
Args: x_values: X-axis data points y_values: Y-axis data points title: Chart title xlabel: X-axis label ylabel: Y-axis label palette: Color palette: default, vibrant, pastel, monochrome show_points: Show data point markers output: 'svg' for inline SVG, 'png' for file path
Inputs: x_values (required), y_values (required), title, xlabel, +4 more. Returns: result
create_pie_chartB
Create a pie / donut chart.
Args: values: Numeric values (proportions) labels: Slice labels (optional) title: Chart title palette: Color palette: default, vibrant, pastel, monochrome show_percent: Show percentage labels on slices output: 'svg' for inline SVG, 'png' for file path
Inputs: values (required), labels, title, palette, +2 more. Returns: result
create_scatter_plotB
Create a scatter plot.
Args: x_values: X data points y_values: Y data points labels: Optional point labels (for hover) title: Chart title xlabel: X-axis label ylabel: Y-axis label palette: Color palette: default, vibrant, pastel, monochrome regression_line: Show trend line output: 'svg' for inline SVG, 'png' for file path
Inputs: x_values (required), y_values (required), labels, title, +5 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool targets a distinct chart type (bar, histogram, line, pie, scatter) with no functional overlap. Descriptions and parameter differences make selection unambiguous.
All tools follow a uniform `create_<chart_type>` snake_case pattern. The verb `create` is consistent across all tools, and each ends with a specific noun for the chart type.
Five tools cover the essential set of basic chart types. This is well-scoped for a dedicated charting server, neither too few nor excessive.
The tool set covers the most common visualization types (bar, histogram, line, pie, scatter). Missing advanced chart types like area or box plots, but the set is complete for typical use cases and includes customization options (palette, labels, output format).
Maintenance
Related MCP Connectors
Create, inspect, manage, and render charts and data visualizations as SVG/PNG or interactive embeds.
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.
Clean messy tabular data and render publication-ready PNG charts from your AI assistant.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI agents to generate chart visualizations by interacting with QuickChart API, allowing users to create and retrieve chart image links through natural language requests.131 npm4Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to generate UNHCR-styled data visualizations including bar, line, pie, and scatter charts with refugee and population data, returning charts as base64-encoded images.-
- 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.322 npm1MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI agents to generate beautiful, presentation-ready charts (SVG + PNG) with zero setup, supporting various chart types and styling options.25 npmMIT