Superset MCP Integration
MCP server for interacting with Apache Superset, enabling AI agents to connect to and control a Superset instance programmatically.
Setup Instructions
- 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 valid
- superset_auth_refresh_token- Refresh the access token
- superset_auth_authenticate_user- Authenticate with Superset
Dashboards
- superset_dashboard_list- List all dashboards
- superset_dashboard_get_by_id- Get a specific dashboard
- superset_dashboard_create- Create a new dashboard
- superset_dashboard_update- Update an existing dashboard
- superset_dashboard_delete- Delete a dashboard
Charts
- superset_chart_list- List all charts
- superset_chart_get_by_id- Get a specific chart
- superset_chart_create- Create a new chart
- superset_chart_update- Update an existing chart
- superset_chart_delete- Delete a chart
Databases
- superset_database_list- List all databases
- superset_database_get_by_id- Get a specific database
- superset_database_create- Create a new database connection
- superset_database_get_tables- List tables in a database
- superset_database_schemas- Get schemas for a database
- superset_database_test_connection- Test a database connection
- superset_database_update- Update an existing database connection
- superset_database_delete- Delete a database connection
- superset_database_get_catalogs- Get catalogs for a database
- superset_database_get_connection- Get database connection information
- superset_database_get_function_names- Get function names supported by a database
- superset_database_get_related_objects- Get charts and dashboards associated with a database
- superset_database_validate_sql- Validate arbitrary SQL against a database
- superset_database_validate_parameters- Validate database connection parameters
Datasets
- superset_dataset_list- List all datasets
- superset_dataset_get_by_id- Get a specific dataset
- superset_dataset_create- Create a new dataset
SQL Lab
- superset_sqllab_execute_query- Execute a SQL query
- superset_sqllab_get_saved_queries- List saved SQL queries
- superset_sqllab_format_sql- Format a SQL query
- superset_sqllab_get_results- Get query results
- superset_sqllab_estimate_query_cost- Estimate query cost
- superset_sqllab_export_query_results- Export query results to CSV
- superset_sqllab_get_bootstrap_data- Get SQL Lab bootstrap data
Queries
- superset_query_list- List all queries
- superset_query_get_by_id- Get a specific query
- superset_query_stop- Stop a running query
Saved Queries
- superset_saved_query_get_by_id- Get a specific saved query
- superset_saved_query_create- Create a new saved query
User Information
- superset_user_get_current- Get current user info
- superset_user_get_roles- Get user roles
Activity
- superset_activity_get_recent- Get recent activity data
System
- superset_menu_get- Get menu data
- superset_config_get_base_url- Get the base URL of the Superset instance
Tags
- superset_tag_list- List all tags
- superset_tag_create- Create a new tag
- superset_tag_get_by_id- Get a specific tag
- superset_tag_objects- Get objects associated with tags
- superset_tag_delete- Delete a tag
- superset_tag_object_add- Add a tag to an object
- superset_tag_object_remove- Remove a tag from an object
Exploration Tools
- superset_explore_form_data_create- Create form data for chart exploration
- superset_explore_form_data_get- Get form data for chart exploration
- superset_explore_permalink_create- Create a permalink for chart exploration
- superset_explore_permalink_get- Get a permalink for chart exploration
Advanced Data Types
- superset_advanced_data_type_convert- Convert a value to an advanced data type
- superset_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 .envfile
- Make sure Superset is running and accessible at the URL specified in your .envfile
- 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 .envfile
- The access token is stored in .superset_tokenfile 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