Skip to main content
Glama
Viz MCP Server

Viz MCP Server

by ceeyang-ai

Viz MCP Server 📊

Python License Stars MCP GitHub

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

create_bar_chart

Bar chart (vertical/horizontal) with value labels

create_line_chart

Line chart with area fill, markers, trend

create_pie_chart

Pie/donut chart with percentage labels

create_scatter_plot

Scatter plot with optional regression line

create_histogram

Histogram with mean line, optional cumulative

All tools support:

  • 4 color palettes: default, vibrant, pastel, monochrome

  • SVG 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 tools
create_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

    A4/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool targets a distinct chart type (bar, histogram, line, pie, scatter) with no functional overlap. Descriptions and parameter differences make selection unambiguous.

    Naming Consistency5/5

    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.

    Tool Count5/5

    Five tools cover the essential set of basic chart types. This is well-scoped for a dedicated charting server, neither too few nor excessive.

    Completeness5/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers