
Vizro-MCP
OfficialMCP server that works alongside an LLM to build validated Vizro charts and dashboards.
Add to your client
Copy the config for your MCP client and paste it into its config file.
uvx vizro-mcpPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"vizro-mcp": {
"command": "uvx",
"args": [
"vizro-mcp"
]
}
}
}Requires `uv` (the Python package runner). Install it from https://docs.astral.sh/uv/ if `uvx` is not found.
Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- An MCP-enabled LLM client (Claude Desktop, Cursor, or VS Code)
- uv (for the uvx install) OR Docker (for the containerized install)
- For local-data dashboards with the Docker setup, mounting your data directory/file into the container
About Vizro-MCP
Vizro-MCP is an official McKinsey MCP server that turns an LLM into an assistant for building Vizro data-visualization apps. Rather than letting a model 'vibe-code' a dashboard that may not run, it exposes tools that supply Vizro model JSON schemas, load and profile datasets, and strictly validate the generated configuration — returning readable, maintainable Python code plus an optional live PyCafe preview. It also ships prompt templates for common starting points (starter dashboard, EDA dashboard from one dataset, and a single Vizro chart). It works with MCP-enabled hosts including Claude Desktop, Cursor and VS Code, and can be installed via uv/uvx or Docker.
Tools & capabilities (6)
get_vizro_chart_or_dashboard_planReturns instructions for creating a Vizro chart or dashboard. Should be called FIRST when asked to create Vizro things; call again with advanced_mode=True if plain JSON config is no longer sufficient (e.g. custom CSS, components or actions).
get_model_json_schemaReturns the JSON schema for a specified Vizro model (e.g. Card, Dashboard, Page, Graph, Grid), so the model knows the exact valid configuration shape. Flags deprecated models and points to replacements.
get_sample_data_infoWhen the user provides no data, returns metadata for a built-in sample dataset (iris, tips, stocks, or gapminder) suited to different chart types.
load_and_analyze_dataLoads a local file (absolute path) or remote URL into a pandas DataFrame and returns detailed structure/metadata. Supports CSV, JSON, HTML, Excel (.xls/.xlsx), ODS and Parquet. Read-only (uses pd.read_*).
validate_dashboard_configValidates a complete Vizro dashboard model configuration against the Pydantic models. On success returns runnable Python code and, for remote data, a PyCafe live-preview link (opened in the browser when auto_open is true). Should be run after every iteration.
validate_chart_codeValidates a user-created Vizro chart (a ChartPlan plus dataset metadata) and optionally opens the PyCafe preview link in a browser.
What this server can do
Vizro-MCP provides tools for these capabilities — tap one to see every MCP server that does the same:
When to use it
- Generating a multi-page Vizro dashboard from a local or remote dataset by describing it in plain language
- Creating and validating individual Plotly/Vizro charts with runnable, maintainable Python output
- Getting a live PyCafe preview link to iterate on a dashboard's design until it is right
- Exploring data with built-in sample datasets when you have none of your own
- Producing validated, consistent dashboard config that is easy to alter, maintain and deploy
Security notes
The server only reads data and never writes, deletes or modifies data on your machine; data loading uses pandas read functions. There is currently no authentication to manage access, so run Vizro-MCP locally only and not as a hosted server. The load_and_analyze_data tool reads local files/URLs, and validate_dashboard_config / validate_chart_code can open a PyCafe live-preview link in your browser (disable via auto_open=false). Data is sent to your model vendor through your host LLM application; users are responsible for use of any third-party generative AI tools and their outputs.
Vizro-MCP FAQ
Which LLM clients are supported?
Vizro-MCP is best used with Claude Desktop, Cursor or VS Code, but it works with most LLM products that support MCP server configuration. For best results the docs recommend a high-performing model (e.g. claude-4-sonnet) rather than an 'auto' setting.
How do I install it?
Add a standard mcpServers block to your client. The uv option uses command 'uvx' with args ['vizro-mcp'] (install uv first). Alternatively, use Docker with command 'docker' and args ['run','-i','--rm','mcp/vizro']; mount your data directory with --mount to access local files.
Is my data safe?
The server only reads data and never writes, deletes or modifies anything on your machine; data loading uses pandas read functions. Note that there is currently no authentication, so it should be run locally rather than as a hosted server, and your prompts/data are sent to your model vendor via your host LLM application.
What is the PyCafe link about?
The validate_dashboard_config and validate_chart_code tools can open a live preview of your dashboard/chart on PyCafe (py.cafe). If you don't want the link opened automatically, set auto_open to false or tell the LLM not to open it.
Can it use my own data?
Yes. The load_and_analyze_data tool accepts an absolute local path or a URL and supports CSV, JSON, HTML, Excel, ODS and Parquet files. With the Docker setup you must mount the data directory or file into the container.
Alternatives to Vizro-MCP
Compare all alternatives →Official MCP server providing persistent, file-backed knowledge-graph memory across sessions.
Structured step-by-step reasoning tool for breaking problems into revisable thought sequences.
Fully managed remote server for AWS docs, blogs, What's-New and Well-Architected guidance — no key.
Compare Vizro-MCP with: