Skip to main content
Glama
markomitranic

Data Visualization MCP Server

README.md
# Data Visualization MCP Server
[![smithery badge](https://smithery.ai/badge/mcp-server-vegalite)](https://smithery.ai/server/mcp-server-vegalite)

## Overview
A Model Context Protocol (MCP) server implementation that provides the LLM an interface for visualizing data using Vega-Lite syntax.

## Components

### Tools
The server offers two core tools:

- `save_data`
   - Save a table of data agregations to the server for later visualization
   - Input:
     - `name` (string): Name of the data table to be saved
     - `data` (array): Array of objects representing the data table
   - Returns: success message
- `visualize_data`
   - Visualize a table of data using Vega-Lite syntax
   - Input:
     - `data_name` (string): Name of the data table to be visualized
     - `vegalite_specification` (string): JSON string representing the Vega-Lite specification
   - Returns: If the `--output_type` is set to `text`, returns a success message with an additional `artifact` key containing the complete Vega-Lite specification with data. If the `--output_type` is set to `png`, returns a base64 encoded PNG image of the visualization using the MPC `ImageContent` container.

## Usage with Claude Desktop

```python
# Add the server to your claude_desktop_config.json
{
  "mcpServers": {
    "datavis": {
        "command": "uv",
        "args": [
            "--directory",
            "/absolute/path/to/mcp-datavis-server",
            "run",
            "mcp_server_vegalite",
            "--output-type",
            "png" # or "text"
        ]
    }
  }
}
```

## Usage with uv

```bash
uv --directory /Users/markomitranic/Sites/mcp/mcp-vegalite-server run mcp_server_vegalite --output-type png
```

## Usage with Docker

```bash
docker build -t mcp-server-vegalite .
docker run -i --rm mcp-server-vegalite --output-type png
```

TDQS

A3.6/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes with no overlap. 'save_data' is for storing data in a table, while 'visualize_data' is for creating visualizations from saved data. The descriptions clearly differentiate their functions and usage contexts.

Naming Consistency5/5

Both tools follow a consistent verb_noun naming pattern ('save_data' and 'visualize_data'). The naming style is uniform throughout, using snake_case with clear action-object pairs that accurately reflect their functions.

Tool Count2/5

With only 2 tools, this server feels severely under-scoped for a data visualization domain. A complete visualization workflow would typically require tools for data manipulation, chart type selection, configuration adjustments, or exporting visualizations. The current set is too minimal for effective agent use.

Completeness2/5

The tool surface has significant gaps for a data visualization server. There are no tools for data transformation, filtering, or aggregation before visualization. Missing are tools for different visualization types, chart customization, or exporting results. The dependency on Vega-Lite specifications without helper tools creates a steep learning curve for agents.

Maintenance

ActivityInactive
ResponsivenessNo issues