Home / MCP / Data Visualization MCP Server

Data Visualization MCP Server

Provides data loading and Vega-Lite visualization capabilities via MCP for quick data exploration.

python
Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
    "mcpServers": {
        "datavis": {
            "command": "uv",
            "args": [
                "--directory",
                "/absolute/path/to/mcp-datavis-server",
                "run",
                "mcp_server_vegalite",
                "--output-type",
                "png"
            ]
        }
    }
}

This MCP server lets you visualize data using Vega-Lite syntax. You load your data into the server, then request Vega-Lite visualizations so you can quickly explore patterns, trends, and insights without leaving your workflow.

How to use

You interact with the server through an MCP client to save data tables and generate Vega-Lite visualizations. First, save a data table you want to visualize, then request a Vega-Lite visualization that references that saved data.

How to install

Prerequisites you need before running the data visualization MCP server are a running MCP runtime and, if you choose to use Docker, a working Docker environment.

Option A — Run with the MCP runtime (uv) locally using the provided directory. You start the server with the following command structure.

uv --directory /absolute/path/to/mcp-datavis-server run mcp_server_vegalite --output-type png

Option B — Run via Docker using the published image. You start the server with this command.

docker run -i --rm mcp-server-vegalite --output-type png

Notes and tips

- The server supports two core tools: save_data and visualize_data. Use save_data to store a data table by name and data rows, then call visualize_data with the saved name and a Vega-Lite specification to render a visualization.

- When you request a visualization, you can receive either a text artifact containing the Vega-Lite spec with the embedded data or a base64 PNG image of the visualization, depending on the output type you specify.

Available tools

save_data

Save a table of data aggregations to the server for later visualization. Input: name (string) and data (array of objects). Returns a success message.

visualize_data

Visualize a saved data table using Vega-Lite. Input: data_name (string) and vegalite_specification (JSON string). Returns either a text artifact with the Vega-Lite spec and data or a base64 PNG image depending on output type.