Superset MCP Integration
by aptro
MCP server for interacting with Apache Superset, enabling AI agents to connect to and control a Superset instance programmatically. It allows users to manage dashboards, charts, databases, and more using natural language requests.
Last updated: N/A
Superset MCP Integration
MCP server for interacting with Apache Superset, enabling AI agents to connect to and control a Superset instance programmatically.
Setup Instructions
Installing via Smithery
To install Superset Integration for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @aptro/superset-mcp --client claude
Manual Installation
-
Set Up Superset Locally
Run this script to start Superset locally:
git clone --branch 4.1.1 --depth 1 https://github.com/apache/superset && \ cd superset && \ docker compose -f docker-compose-image-tag.yml up
Once Superset is running, you should be able to access it at http://localhost:8088 with default credentials:
- Username: admin
- Password: admin
-
Clone This Repository
Clone this repository to your local machine.
-
Configure Environment Variables
Create a
.env
file in the root directory with your Superset credentials:SUPERSET_BASE_URL=http://localhost:8088 # Change to your Superset URL SUPERSET_USERNAME=your_username SUPERSET_PASSWORD=your_password
-
Install Dependencies
uv pip install .
-
Install MCP Config for Claude
To use with Claude Desktop app:
mcp install main.py
Usage with Claude
After setup, you can interact with your Superset instance via Claude using natural language requests. Here are some examples:
Dashboard Management
- View dashboards: "Show me all my Superset dashboards"
- Get dashboard details: "Show me the details of dashboard with ID 5"
- Create dashboard: "Create a new dashboard titled 'Sales Overview'"
- Update dashboard: "Update dashboard 3 to have the title 'Updated Sales Report'"
- Delete dashboard: "Delete dashboard with ID 7"
Chart Management
- List all charts: "What charts do I have in my Superset instance?"
- View chart details: "Show me the details of chart with ID 10"
- Create chart: "Create a new bar chart using dataset 3"
- Update chart: "Update chart 5 to use a line visualization instead of bar"
- Delete chart: "Delete chart with ID 12"
Database and Dataset Operations
- List databases: "Show me all databases connected to Superset"
- List datasets: "What datasets are available in my Superset instance?"
- Get database tables: "What tables are available in database with ID 1?"
- Execute SQL: "Run this SQL query on database 1: SELECT * FROM users LIMIT 10"
- Create dataset: "Create a new dataset from table 'customers' in database 2"
- Update database: "Update the connection settings for database 3"
- Delete database: "Delete database connection with ID 4"
- Validate SQL: "Is this SQL valid for database 2: SELECT * FROM customers JOIN orders"
- Get database catalogs: "Show me the catalogs available in database 1"
- Get database functions: "What functions are available in database 2?"
- Check related objects: "What dashboards and charts use database 1?"
SQL Lab Features
- Execute queries: "Run this SQL query: SELECT COUNT(*) FROM orders"
- Format SQL: "Format this SQL query: SELECT id,name,age FROM users WHERE age>21"
- Estimate query cost: "Estimate the cost of this query: SELECT * FROM large_table"
- Get saved queries: "Show me all my saved SQL queries"
- Get query results: "Get the results of query with key 'abc123'"
User and System Information
- View user info: "Who am I logged in as?"
- Get user roles: "What roles do I have in Superset?"
- View recent activity: "Show me recent activity in my Superset instance"
- Get menu data: "What menu items do I have access to?"
- Get base URL: "What is the URL of the Superset instance I'm connected to?"
Tag Management
- List tags: "Show me all tags in my Superset instance"
- Create tag: "Create a new tag called 'Finance'"
- Delete tag: "Delete the tag with ID 5"
- Tag an object: "Add the tag 'Finance' to dashboard 3"
- Remove tag: "Remove the tag 'Finance' from chart 7"
Available MCP Tools
This plugin offers the following MCP tools that Claude can use:
Authentication
superset_auth_check_token_validity
- Check if the current access token is validsuperset_auth_refresh_token
- Refresh the access tokensuperset_auth_authenticate_user
- Authenticate with Superset
Dashboards
superset_dashboard_list
- List all dashboardssuperset_dashboard_get_by_id
- Get a specific dashboardsuperset_dashboard_create
- Create a new dashboardsuperset_dashboard_update
- Update an existing dashboardsuperset_dashboard_delete
- Delete a dashboard
Charts
superset_chart_list
- List all chartssuperset_chart_get_by_id
- Get a specific chartsuperset_chart_create
- Create a new chartsuperset_chart_update
- Update an existing chartsuperset_chart_delete
- Delete a chart
Databases
superset_database_list
- List all databasessuperset_database_get_by_id
- Get a specific databasesuperset_database_create
- Create a new database connectionsuperset_database_get_tables
- List tables in a databasesuperset_database_schemas
- Get schemas for a databasesuperset_database_test_connection
- Test a database connectionsuperset_database_update
- Update an existing database connectionsuperset_database_delete
- Delete a database connectionsuperset_database_get_catalogs
- Get catalogs for a databasesuperset_database_get_connection
- Get database connection informationsuperset_database_get_function_names
- Get function names supported by a databasesuperset_database_get_related_objects
- Get charts and dashboards associated with a databasesuperset_database_validate_sql
- Validate arbitrary SQL against a databasesuperset_database_validate_parameters
- Validate database connection parameters
Datasets
superset_dataset_list
- List all datasetssuperset_dataset_get_by_id
- Get a specific datasetsuperset_dataset_create
- Create a new dataset
SQL Lab
superset_sqllab_execute_query
- Execute a SQL querysuperset_sqllab_get_saved_queries
- List saved SQL queriessuperset_sqllab_format_sql
- Format a SQL querysuperset_sqllab_get_results
- Get query resultssuperset_sqllab_estimate_query_cost
- Estimate query costsuperset_sqllab_export_query_results
- Export query results to CSVsuperset_sqllab_get_bootstrap_data
- Get SQL Lab bootstrap data
Queries
superset_query_list
- List all queriessuperset_query_get_by_id
- Get a specific querysuperset_query_stop
- Stop a running query
Saved Queries
superset_saved_query_get_by_id
- Get a specific saved querysuperset_saved_query_create
- Create a new saved query
User Information
superset_user_get_current
- Get current user infosuperset_user_get_roles
- Get user roles
Activity
superset_activity_get_recent
- Get recent activity data
System
superset_menu_get
- Get menu datasuperset_config_get_base_url
- Get the base URL of the Superset instance
Tags
superset_tag_list
- List all tagssuperset_tag_create
- Create a new tagsuperset_tag_get_by_id
- Get a specific tagsuperset_tag_objects
- Get objects associated with tagssuperset_tag_delete
- Delete a tagsuperset_tag_object_add
- Add a tag to an objectsuperset_tag_object_remove
- Remove a tag from an object
Exploration Tools
superset_explore_form_data_create
- Create form data for chart explorationsuperset_explore_form_data_get
- Get form data for chart explorationsuperset_explore_permalink_create
- Create a permalink for chart explorationsuperset_explore_permalink_get
- Get a permalink for chart exploration
Advanced Data Types
superset_advanced_data_type_convert
- Convert a value to an advanced data typesuperset_advanced_data_type_list
- List available advanced data types
Environment Variables
| Variable | Description | Default | |----------|-------------|---------| | SUPERSET_BASE_URL | URL of your Superset instance | http://localhost:8088 | | SUPERSET_USERNAME | Username for Superset | None | | SUPERSET_PASSWORD | Password for Superset | None |
Troubleshooting
- If you encounter authentication issues, verify your credentials in the
.env
file - Make sure Superset is running and accessible at the URL specified in your
.env
file - Check that you're using a compatible version of Superset (tested with version 4.1.1)
- Ensure the port used by the MCP server is not being used by another application
Security Notes
- Your Superset credentials are stored only in your local
.env
file - The access token is stored in
.superset_token
file in the project directory - All authentication happens directly between the MCP server and your Superset instance
- No credentials are transmitted to Claude or any third parties
- For production use, consider using more secure authentication methods
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT