About Data Visualization MCP Server
A Python MCP server for analytics prototypes and AI-assisted reporting workflows. It stores tabular data and generates Vega-Lite charts, returning them as text specifications or PNG images, with stdio and SSE/FastAPI integration paths.
Key features
- 01Save named tabular datasets
- 02Generate Vega-Lite charts from saved data
- 03Return text specifications or PNG images
- 04Support stdio transport
- 05Include an SSE/FastAPI integration path
- 06Store chart files locally during runs
Use cases
- 01Turn tabular data into charts
- 02Build AI-assisted reporting workflows
- 03Experiment with LLM and business-data integration
MCP support
The MCP server provides tools to save tabular data and generate visualizations from it. It supports stdio transport for local MCP clients and includes an SSE/FastAPI integration path.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMELLM-connected Data Visualization Workflow
What this project demonstrates
This project demonstrates a technical integration layer that lets an LLM-connected workflow store tabular data and render Vega-Lite visualizations. The repository implements a Model Context Protocol server, but the business-facing proof is broader: connecting language-model workflows to structured data and chart generation.
The project is useful as proof of work for AI-assisted reporting, data visualization workflows, analytics prototypes, and integration layers between LLMs and business data.
Use case
A user or AI workflow has tabular data and needs to turn it into a chart without manually moving between tools. The server exposes tools for saving table-like data and generating a Vega-Lite visualization from that saved data. Output can be returned as text/spec data or as a PNG image.
Features
- Save named tabular datasets for later visualization.
- Generate Vega-Lite visualizations from saved datasets.
- Return visualization output as text/spec artifacts or PNG images.
- Support stdio transport for local MCP clients.
- Include an SSE/FastAPI path for integration experiments.
- Store generated visualization files locally during runs.
Technical stack
- Runtime: Python 3.10+.
- Protocol layer: Model Context Protocol Python SDK.
- API/server experiments: FastAPI and uvicorn.
- Visualization: Vega-Lite through vl-convert-python.
- Packaging: pyproject.toml with a console script entrypoint.
Architecture
The server exposes two core tools. The first saves a named table of JSON-like rows. The second accepts a Vega-Lite specification, attaches the saved data, renders the chart, and returns either a visualization artifact or PNG image content. This keeps the data handoff explicit and makes the visualization step reproducible.
How to run locally
Prerequisites:
- Python 3.10 or newer.
- uv or another Python environment manager.
Install and run with uv:
uv sync
uv run mcp_server_vegalite --output-type png
Alternative output:
uv run mcp_server_vegalite --output-type text
Portfolio notes
This repository can mention MCP for technical readers, but acty.dev should not sell MCP as a standalone service line. The client-facing framing is LLM-connected data visualization and analytics workflow integration.
This repository is a portfolio/proof-of-work project. It does not include private client data, production credentials, internal datasets, or confidential business logic.
Related acty.dev proof page: /examples/llm-data-visualization/.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.