Skip to main content

✨ dataviz-mcp

CI conda-forge pypi-version python-version

DataViz MCP is a local Panel web server and MCP server that executes Python code snippets and renders the resulting visualizations as live, interactive web pages — enabling humans and AI assistants to display and inspect Python outputs in real time.

dataviz-mcp showcase

dataviz-mcp MCP showcase

Features

  • Two interfaces — pls serve (standalone browser UI) and pls mcp (MCP server for AI assistants)
  • Any visualization library — hvplot · plotly · altair · matplotlib · seaborn · holoviews · bokeh · and more
  • Validate before render — show runs syntax, security, package, and extension checks before any rendering happens
  • Visual validation — screenshot MCP tool lets the AI inspect the rendered output visually before presenting it
  • Adaptive data loading — load_data detects remote, large, multidimensional, and simple tabular data, then selects hvPlot, HoloViews, or Datashader automatically
  • Persistent storage — SQLite database with full-text search; every snippet gets its own permanent URL
  • Auto-restart — Panel subprocess is health-monitored and automatically restarted on failure
  • Works everywhere — local, JupyterHub, GitHub Codespaces; URLs externalized automatically

Installation

Install via uv, pip, or pixi — see the Installation guide for full instructions including how to find your pls path.

uv tool install "dataviz-mcp[pydata]"

Pin your version — this project is in its early stages. Pin to a specific version to avoid unexpected changes: uv tool install "dataviz-mcp[pydata]==0.3.0"

Connect to your AI assistant

Use the absolute path printed by which pls above — not just pls. Full setup instructions for each client: docs → Connect to your MCP client

For the supported desktop and editor clients, let DataViz MCP add just its own configuration entry while preserving any other configured servers:

pls install cursor
# also: vscode, claude-desktop, windsurf, cline, gemini, kiro, copilot

You can tailor the AI guidance without forking the project. Put optional "instructions" and "screenshot" additions in a JSON file, then start the MCP server with pls mcp --prompts rules.json.

Client Config location
VS Code .vscode/mcp.json
Cursor ~/.cursor/mcp.json
Claude Desktop claude_desktop_config.json
Claude Code claude mcp add dataviz-mcp -- /path/to/pls mcp
claude.ai HTTP transport + tunnel — see docs

Usage

For a safe visual iteration loop, use screenshot(code=...) to review a private draft, use edit(...) for small source changes, then call show(draft_id=...) to publish exactly the reviewed result. Use evaluate(code=...) for text-only Python checks that do not need a rendered visualization.

To load and visualize tabular data automatically, ask the assistant to call load_data(source=...) with a local CSV, JSON, JSONL, NDJSON, or Parquet path, or an HTTP(S) URL. The tool profiles the data and selects hvPlot for simple or remote data, HoloViews for multidimensional data, and Datashader for large data. Set visualize=False when the request is only to inspect or understand the data; the same tool returns schema, quality statistics, a preview, and recommended chart types without creating a visualization or feed entry.

The packaged dataviz-plot-selection skill guides chart choice for trends, comparisons, distributions, relationships, composition, maps, multidimensional exploration, and dashboards. Its guidance is loaded into the MCP server instructions automatically whenever plots are created.

$ pls

 Usage: pls [OPTIONS] COMMAND [ARGS]...

 DataViz MCP - Execute and visualize Python code snippets.

╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────╮
│ --version  -V        Show version and exit.                                                          │
│ --help               Show this message and exit.                                                     │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────╮
│ serve   Start the DataViz MCP directly.                                                        │
│ mcp     Start as an MCP server for AI assistants.                                                    │
│ status  Check whether the Panel server is running.                                                   │
│ list    List resources (packages, etc.).                                                             │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯

You can also use dataviz-mcp but pls is shorter and easier to remember.

Development

See the Contributing guide for the full setup (fork, install, connect to MCP client, run tests).

❤️ Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch: git checkout -b feature/YourFeature.
  3. Make your changes and commit them: git commit -m 'Add some feature'.
  4. Push to the branch: git push origin feature/YourFeature.
  5. Open a pull request.

Please ensure your code passes all tests and linting before submitting.

Metadata

Release files for dataviz-mcp 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dataviz-mcp 0.3.0
File Size Uploaded
dataviz_mcp-0.3.0.tar.gz 19.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dataviz-mcp 0.3.0
File Interpreter ABI Platform
dataviz_mcp-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.9 MB

Release files / dataviz_mcp-0.3.0.tar.gz

Download URL dataviz_mcp-0.3.0.tar.gz
Size 19.8 MB
Tags Source
SHA-256 checksum
How to use checksums
c2d47e10dd66b0433e6ddd158fed2ed393a1260ae439aaf2ddf8197b8fa962ea
BLAKE2b-256 checksum
How to use checksums
d55a24cb6d055a548787be68d7c660f5f53039240ebe9896cb5150936b0c638b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release files / dataviz_mcp-0.3.0-py3-none-any.whl

Download URL dataviz_mcp-0.3.0-py3-none-any.whl
Size 88.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bac11ec949c8a60f2e59ce8e2c712872a371d3c2c06300b5b04ef9d9b0188a2e
BLAKE2b-256 checksum
How to use checksums
6e9830c4dadefd66f785aaf5e87370d17de5516b119e402e6e71e23b493cfaac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.1

2 release files

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page