superset-mcp
Provides full access to Apache Superset instances, enabling AI assistants to manage dashboards, charts, datasets, databases, and execute SQL queries through Superset's API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@superset-mcp show me the top 5 dashboards by view count"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
superset-mcp
MCP (Model Context Protocol) server for Apache Superset. Gives AI assistants full access to your Superset instance — dashboards, charts, datasets, databases, and SQL execution.
Prerequisites
uv — Python package manager
Access to a running Apache Superset instance
Related MCP server: Zaturn
Setup (takes ~1 minute)
1. Clone the repo
git clone <repo-url>
cd superset-mcp2. Configure credentials
cp .env.example .envEdit .env:
SUPERSET_URL=http://your-superset-host:8088
SUPERSET_USERNAME=your-username
SUPERSET_PASSWORD=your-password3. Test it works
uv run superset-mcpYou should see the MCP server start without errors. Press Ctrl+C to stop.
Connect to your AI client
Replace /ABSOLUTE/PATH/TO/superset-mcp with the actual path where you cloned the repo.
Claude Code
Add to ~/.claude/settings.json (or project-level .claude/settings.json):
{
"mcpServers": {
"superset": {
"command": "uv",
"args": ["--directory", "/ABSOLUTE/PATH/TO/superset-mcp", "run", "superset-mcp"],
"env": {
"SUPERSET_URL": "http://your-superset-host:8088",
"SUPERSET_USERNAME": "your-username",
"SUPERSET_PASSWORD": "your-password"
}
}
}
}Or run in terminal:
claude mcp add superset -- uv --directory /ABSOLUTE/PATH/TO/superset-mcp run superset-mcpClaude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"superset": {
"command": "uv",
"args": ["--directory", "/ABSOLUTE/PATH/TO/superset-mcp", "run", "superset-mcp"],
"env": {
"SUPERSET_URL": "http://your-superset-host:8088",
"SUPERSET_USERNAME": "your-username",
"SUPERSET_PASSWORD": "your-password"
}
}
}
}Cursor
Add to .cursor/mcp.json in your project or ~/.cursor/mcp.json globally:
{
"mcpServers": {
"superset": {
"command": "uv",
"args": ["--directory", "/ABSOLUTE/PATH/TO/superset-mcp", "run", "superset-mcp"],
"env": {
"SUPERSET_URL": "http://your-superset-host:8088",
"SUPERSET_USERNAME": "your-username",
"SUPERSET_PASSWORD": "your-password"
}
}
}
}Available Tools
Dashboards
Tool | Description |
| List all dashboards (with optional search) |
| Get a dashboard by ID or slug |
| Get all charts in a dashboard |
| Get all datasets used by a dashboard |
| Create a new dashboard |
| Update title, layout, metadata |
| Publish a draft dashboard |
| Duplicate a dashboard |
| Delete a dashboard |
Charts
Tool | Description |
| List all charts (with optional search) |
| Get a chart by ID or UUID |
| Fetch the latest data for a chart |
| Create a new chart |
| Update chart properties |
| Delete a chart |
Datasets
Tool | Description |
| List all datasets |
| Get a dataset by ID or UUID |
| Create from a table or SQL query |
| Get existing or create new |
| Sync columns from source table |
| Update dataset properties |
| See which charts/dashboards use it |
| Delete a dataset |
Databases
Tool | Description |
| List all database connections |
| Get a database connection by ID |
| List schemas in a database |
| List tables in a schema |
| Get column info for a table |
| Get a SELECT * template for a table |
SQL
Tool | Description |
| Run a SQL query and get results |
| Pretty-print a SQL query |
| Estimate query cost (if supported) |
| List saved SQL queries |
| Save a SQL query |
Example prompts
Once connected to your AI assistant:
"List all published dashboards"
"Create a new dashboard called 'Sales Overview'"
"Show me all charts in dashboard 11"
"Run a SQL query on database 2: SELECT count() FROM orders"*
"What datasets are used by the 'Revenue' dashboard?"
"Create a bar chart using dataset 5 showing sales by region"
Available Tools
34 toolscopy_dashboardC
Create a copy of a dashboard.
Inputs: id_or_slug (required). Returns: object
create_chartC
Create a new chart.
Inputs: slice_name (required), viz_type (required), datasource_id (required), datasource_type, +3 more. Returns: object
create_dashboardC
Create a new dashboard.
Inputs: title (required), slug, published, json_metadata, +1 more. Returns: object
create_datasetB
Create a dataset from a table or SQL query.
Inputs: database_id (required), table_name (required), schema, sql, +1 more. Returns: object
delete_chartC
Delete a chart by ID.
Inputs: pk (required). Returns: object
delete_dashboardC
Delete a dashboard by ID.
Inputs: pk (required). Returns: object
delete_datasetB
Delete a dataset by ID.
Inputs: pk (required). Returns: object
estimate_query_costC
Estimate the cost of running a SQL query (supported databases only).
Inputs: database_id (required), sql (required), schema. Returns: object
execute_sqlB
Execute a SQL query and return results.
Inputs: database_id (required), sql (required), schema, limit. Returns: object
format_sqlB
Format/pretty-print a SQL query.
Inputs: sql (required). Returns: object
get_chartC
Get a chart by ID or UUID.
Inputs: id_or_uuid (required). Returns: object
get_chart_dataC
Fetch the latest data for a chart.
Inputs: pk (required). Returns: object
get_dashboardB
Get a single dashboard by ID or slug.
Inputs: id_or_slug (required). Returns: object
get_dashboard_chartsB
Get all charts in a dashboard.
Inputs: id_or_slug (required). Returns: object
get_dashboard_datasetsB
Get all datasets used by a dashboard.
Inputs: id_or_slug (required). Returns: object
get_databaseB
Get a database connection by ID.
Inputs: pk (required). Returns: object
get_datasetB
Get a dataset by ID or UUID.
Inputs: id_or_uuid (required). Returns: object
get_or_create_datasetB
Get an existing dataset or create it if it doesn't exist.
Inputs: database_id (required), table_name (required), schema. Returns: object
get_select_starC
Get a SELECT * query for a table (with schema).
Inputs: database_id (required), table_name (required), schema. Returns: object
get_table_metadataC
Get column metadata for a table.
Inputs: database_id (required), table_name (required), schema. Returns: object
list_chartsC
List charts. Optionally filter by name.
Inputs: page, page_size, search. Returns: object
list_dashboardsB
List dashboards. Optionally filter by title with search.
Inputs: page, page_size, search. Returns: object
list_databasesB
List all database connections configured in Superset.
Inputs: page, page_size. Returns: object
list_datasetsC
List datasets (virtual or physical tables).
Inputs: page, page_size, search. Returns: object
list_saved_queriesB
List saved SQL queries.
Inputs: page, page_size. Returns: object
list_schemasB
List all schemas in a database.
Inputs: database_id (required). Returns: object
list_tablesB
List tables in a database schema.
Inputs: database_id (required), schema. Returns: object
publish_dashboardC
Set a dashboard as published.
Inputs: pk (required). Returns: object
refresh_datasetC
Refresh the dataset's columns and metrics from the source.
Inputs: pk (required). Returns: object
save_queryC
Save a SQL query.
Inputs: label (required), sql (required), database_id (required), schema, +1 more. Returns: object
update_chartC
Update a chart's properties.
Inputs: pk (required), slice_name, description, viz_type, +2 more. Returns: object
update_dashboardC
Update an existing dashboard.
Inputs: pk (required), title, published, json_metadata, +1 more. Returns: object
update_datasetC
Update a dataset's properties.
Inputs: pk (required), table_name, description, sql, +3 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 34 tools
Every tool has a clearly distinct purpose targeting specific resources (charts, dashboards, datasets, databases, queries) and actions (create, get, list, update, delete, execute, format, etc.), with no apparent overlap or ambiguity. For example, get_chart, get_chart_data, and list_charts serve different functions without confusion.
Tool names follow a highly consistent verb_noun pattern throughout, such as create_chart, delete_dashboard, list_datasets, and update_dataset, with no deviations in style or convention. This predictability makes the tool set easy to navigate and understand.
With 34 tools, the count is borderline high for typical MCP server scopes, which often range from 3-15 tools. While it covers a comprehensive Superset domain, it may feel heavy and potentially overwhelming for agents, though not extreme like 50+ tools.
The tool surface provides complete CRUD/lifecycle coverage for charts, dashboards, datasets, and queries, along with execution, formatting, and metadata operations. There are no obvious gaps; agents can perform all core workflows from creation to deletion and analysis without dead ends.
Maintenance
Related MCP Connectors
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server that lets your AI assistant build and deploy apps, hosting each one at a live URL.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server enabling AI agents to programmatically connect to and control Apache Superset instances, allowing users to manage dashboards, charts, databases, datasets, and run SQL queries through natural language interactions.60195MIT
- AlicenseAqualityCmaintenanceAn open-source MCP server that connects to various data sources (SQL databases, CSV, Parquet files), allowing AI models to execute SQL queries and generate data visualizations for analytics and business intelligence.1276MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for Apache Superset that enables AI models to manage dashboards, create charts with auto-detection, and execute SQL queries programmatically. It utilizes stateless HTTP transport to ensure compatibility with integration tools like Open WebUI.136 npmMIT
- AlicenseAqualityDmaintenanceAn MCP server that enables AI assistants to query databases, execute SQL, and manage Metabase resources like dashboards, cards, and collections through natural language.22MIT