MCP Superset
Apache Superset MCP server — 135+ tools for dashboards, charts, datasets, SQL Lab, and security
Connector by bintocher · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/bintocher-mcp-superset
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data-visualization, database-access
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 52 read · 53 write · 20 delete · 12 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Python package
Tools by what they do 137
Read from the source code; the running server may list different tools.
Read 52 · Look things up without changing anything.
superset_annotation_getsuperset_annotation_layer_getsuperset_annotation_layer_listsuperset_annotation_listsuperset_chart_getsuperset_chart_get_datasuperset_chart_listsuperset_dashboard_chartssuperset_dashboard_datasetssuperset_dashboard_embedded_getsuperset_dashboard_filter_listsuperset_dashboard_get
Show 40 more tools
superset_dashboard_listsuperset_database_available_enginessuperset_database_catalogssuperset_database_connection_infosuperset_database_function_namessuperset_database_getsuperset_database_listsuperset_database_related_objectssuperset_database_schemassuperset_database_table_metadatasuperset_database_tablessuperset_database_validate_parameterssuperset_database_validate_sqlsuperset_dataset_getsuperset_dataset_listsuperset_dataset_related_objectssuperset_get_base_urlsuperset_get_current_usersuperset_get_current_user_rolessuperset_get_menusuperset_group_getsuperset_group_listsuperset_log_listsuperset_permission_listsuperset_permissions_auditsuperset_query_getsuperset_query_listsuperset_recent_activitysuperset_report_getsuperset_report_listsuperset_rls_getsuperset_rls_listsuperset_role_getsuperset_role_listsuperset_role_permissions_getsuperset_sqllab_estimate_costsuperset_sqllab_format_sqlsuperset_sqllab_resultssuperset_user_getsuperset_user_list
Write 53 · Create, change, send or run things.
superset_annotation_createsuperset_annotation_layer_createsuperset_annotation_layer_updatesuperset_annotation_updatesuperset_assets_importsuperset_bulk_user_role_addsuperset_bulk_user_role_replacesuperset_chart_copysuperset_chart_createsuperset_chart_datasuperset_chart_importsuperset_chart_update
Show 41 more tools
superset_dashboard_copysuperset_dashboard_createsuperset_dashboard_embedded_setsuperset_dashboard_filter_addsuperset_dashboard_filter_updatesuperset_dashboard_grant_role_accesssuperset_dashboard_importsuperset_dashboard_publishsuperset_dashboard_updatesuperset_database_createsuperset_database_select_starsuperset_database_updatesuperset_dataset_createsuperset_dataset_duplicatesuperset_dataset_get_or_createsuperset_dataset_importsuperset_dataset_updatesuperset_group_add_rolessuperset_group_add_userssuperset_group_createsuperset_group_updatesuperset_report_createsuperset_report_updatesuperset_rls_createsuperset_rls_updatesuperset_role_createsuperset_role_permission_addsuperset_role_updatesuperset_saved_query_createsuperset_saved_query_getsuperset_saved_query_listsuperset_saved_query_updatesuperset_sqllab_executesuperset_tag_bulk_createsuperset_tag_createsuperset_tag_getsuperset_tag_get_objectssuperset_tag_listsuperset_tag_updatesuperset_user_createsuperset_user_update
Delete 20 · Delete, drop, revoke or wipe things.
superset_annotation_deletesuperset_annotation_layer_deletesuperset_bulk_user_role_removesuperset_chart_deletesuperset_dashboard_deletesuperset_dashboard_embedded_deletesuperset_dashboard_filter_deletesuperset_dashboard_filter_resetsuperset_dashboard_revoke_role_accesssuperset_database_deletesuperset_dataset_deletesuperset_group_delete
Show 8 more tools
superset_group_remove_rolessuperset_group_remove_userssuperset_report_deletesuperset_rls_deletesuperset_role_deletesuperset_saved_query_deletesuperset_tag_deletesuperset_user_delete
Not yet classified 12 · We could not tell from the name and description.
superset_assets_exportsuperset_chart_cache_warmupsuperset_chart_exportsuperset_dashboard_exportsuperset_dashboard_unpublishsuperset_database_exportsuperset_database_test_connectionsuperset_dataset_exportsuperset_dataset_refresh_schemasuperset_query_stopsuperset_role_copy_permissionssuperset_sqllab_export_csv
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
SUPERSET_PASSWORD
Other settings (environment variables or headers).
SUPERSET_BASE_URLSUPERSET_USERNAME
Files it touches
- Any path the agent passes to its tools
Tools (137)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
superset_annotation_createCreate an annotation (timeline event) in the specified layer. Annotations are displayed as vertical lines or areas on time-series charts. Args: annotation_layer_id: Annotation layer ID (from annotation_layer_list). short_descr: Brief event description (displayed on the chart). start_dttm: Start datetime in ISO format. Example: "2024-01-01T00:00:00" end_dttm: End datetime in ISO format. Example: "2024-01-01T23:59:59" For a point-in-time event, set start_dttm = end_dttm. long_descr: Detailed event description (optional). json_metadata: JSON string with additiona…
superset_annotation_deleteDelete an annotation from a layer. Args: annotation_layer_id: Annotation layer ID. annotation_id: Annotation ID to delete. confirm_delete: Deletion confirmation (REQUIRED).
superset_annotation_getGet an annotation by ID. Args: annotation_layer_id: Annotation layer ID. annotation_id: Annotation ID (from annotation_list).
superset_annotation_layer_createCreate a new annotation layer. A layer is a container for annotations that can be overlaid on time-series charts. Args: name: Layer name. descr: Layer description (optional).
superset_annotation_layer_deleteDelete an annotation layer along with all its annotations. CRITICAL: deletes the layer AND all annotations within it permanently. Args: annotation_layer_id: Layer ID to delete. confirm_delete: Deletion confirmation (REQUIRED).
superset_annotation_layer_getGet annotation layer information by ID. IMPORTANT: if the ID is unknown, call annotation_layer_list first. Args: annotation_layer_id: Layer ID (from annotation_layer_list).
superset_annotation_layer_listList annotation layers. An annotation layer is a container for annotations (timeline events) that can be overlaid on charts. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_annotation_layer_updateUpdate an annotation layer. Pass only the fields to change. Args: annotation_layer_id: Layer ID to update. name: New layer name. descr: New layer description.
superset_annotation_listList annotations in the specified layer. Args: annotation_layer_id: Annotation layer ID (from annotation_layer_list). page: Page number (starting from 0). page_size: Number of records per page (max 100). get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_annotation_updateUpdate an annotation. Pass only the fields to change. Args: annotation_layer_id: Annotation layer ID. annotation_id: Annotation ID to update. short_descr: New brief description. start_dttm: New start datetime (ISO format: "2024-01-01T00:00:00"). end_dttm: New end datetime (ISO format). long_descr: New detailed description.
superset_assets_exportExport ALL Superset assets into a single ZIP file. Includes: dashboards, charts, datasets, database connections (without passwords). Useful for backup or migration between instances. Returns: JSON: {"format": "zip", "encoding": "base64", "data": "...", "size_bytes": N}
superset_assets_importImport Superset assets from a ZIP file (created via assets_export). CRITICAL: overwrite=True overwrites ALL matching objects (dashboards, charts, datasets, databases). This is irreversible. Args: file_path: Absolute path to the ZIP file on disk. overwrite: Overwrite existing objects with matching UUIDs (default False). confirm_overwrite: Overwrite confirmation (REQUIRED when overwrite=True).
superset_bulk_user_role_addAdd a role to multiple users (without removing existing roles). Select users by explicit IDs or by current role filter. Args: role_id: Role ID to add. user_ids: Explicit list of user IDs. If None, uses filter_role_id. filter_role_id: Add to all users who have this role. Ignored if user_ids is set. exclude_admin: Skip Admin users (default True). confirm: True to apply. False for dry-run.
superset_bulk_user_role_removeRemove a role from multiple users. Args: role_id: Role ID to remove. user_ids: Explicit list of user IDs. If None, removes from ALL users who have it. exclude_admin: Skip Admin users (default True). confirm: True to apply. False for dry-run.
superset_bulk_user_role_replaceReplace one role with another for all users who have it. Adds new_role_id first, then removes old_role_id (safe two-step). Args: old_role_id: Role ID to replace. new_role_id: Role ID to set instead. exclude_admin: Skip Admin users (default True). confirm: True to apply. False for dry-run.
Show 122 more tools
superset_chart_cache_warmupWarm up the cache for a chart. Useful for speeding up loading of frequently used charts. Args: chart_id: ID of the chart to warm up. dashboard_id: Dashboard ID for filter context (optional).
superset_chart_copyCreate a copy of an existing chart with a new name. Copies all visualization parameters, type, dataset, and query_context. Dashboard bindings are NOT copied — specify new ones via the dashboards parameter. Args: chart_id: ID of the source chart to copy. slice_name: Name for the new copy. dashboards: List of dashboard IDs to bind the copy to (optional).
superset_chart_createCreate a new chart. Args: slice_name: Chart name (displayed in the UI). viz_type: Visualization type (Superset 6.x). Main types: ECharts (recommended): - echarts_timeseries_bar — bar/horizontal bar chart - echarts_timeseries_line — line chart - echarts_timeseries_smooth — smoothed line - echarts_timeseries_step — step line - echarts_timeseries_scatter — scatter plot - echarts_area — area chart - mixed_timeseries — multiple series with 2 Y-axes - pie — pie chart - funnel — funnel chart - gauge_chart…
superset_chart_dataExecute an arbitrary query against a dataset and retrieve data. Allows fetching data directly from a dataset without creating a chart. To get data from an existing chart, use chart_get_data instead. Args: query_context: JSON string with the query context. Format: { "datasource": {"id": <dataset_id>, "type": "table"}, "queries": [{ "columns": ["col1", "col2"], "metrics": [{"label": "count", "expressionType": "SIMPLE", "aggregate": "COUNT", "column": {"column_name": "id"}}], "filter…
superset_chart_deleteDelete a chart by ID. The chart will be removed from all dashboards. Args: chart_id: ID of the chart to delete. confirm_delete: Deletion confirmation (REQUIRED).
superset_chart_exportExport charts with all dependencies (datasets, databases) as a ZIP file. The result is a base64-encoded ZIP file. It can be imported back via superset_chart_import. Args: chart_ids: Chart IDs separated by commas (e.g. "1,2,3"). Returns: JSON: {"format": "zip", "encoding": "base64", "data": "...", "size_bytes": N}
superset_chart_getGet detailed information about a chart by ID. Returns all settings: viz_type, params, query_context, dashboard bindings. IMPORTANT: if the ID is unknown, call superset_chart_list first. Args: chart_id: Chart ID (integer from chart_list result).
superset_chart_get_dataGet data from a specific saved chart by its ID. IMPORTANT: works only if the chart was saved with query_context (usually after opening and saving via the Superset UI). If query_context is missing, use superset_chart_data with a manually constructed query. Args: chart_id: Chart ID.
superset_chart_importImport charts from a ZIP file (created via export). The ZIP must contain YAML files with chart configurations and dependencies. Args: file_path: Absolute path to the ZIP file on disk. overwrite: Overwrite existing objects with the same UUID (default False).
superset_chart_listList Superset charts with pagination. IMPORTANT: always call this tool before chart_get/chart_delete to look up actual chart IDs. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for searching. Examples: - By name: (filters:!((col:slice_name,opr:ct,value:search_term))) - By type: (filters:!((col:viz_type,opr:eq,value:table))) - By dataset: (filters:!((col:datasource_id,opr:eq,value:1))) get_all: Retrieve ALL records with automatic pagination (ignores page/page_size).
superset_chart_updateUpdate an existing chart. Pass only the fields to change. Args: chart_id: ID of the chart to update. slice_name: New name. viz_type: New visualization type (see chart_create for the list of types). params: New JSON visualization parameters (replaces entirely). See chart_create for reference on numeric/time formats. IMPORTANT: params replaces ALL parameters — first get current ones via chart_get, modify the needed fields, and pass the full JSON. CRITICAL: for dates use D3 strftime format ("%Y-%m-%d"), NOT moment.js ("YYYY-MM-DD") — otherw…
superset_dashboard_chartsGet the list of all charts placed on a dashboard. Returns chart IDs and names. Useful for analyzing dashboard contents. Args: dashboard_id: Dashboard ID.
superset_dashboard_copyCreate a copy of an existing dashboard with all its charts. Args: dashboard_id: ID of the source dashboard to copy. dashboard_title: Title for the new copy. json_metadata: JSON metadata for the copy. IMPORTANT: Superset requires this field. If not provided, "{}" will be used.
superset_dashboard_createCreate a new dashboard. IMPORTANT: when roles are specified, datasource_access is automatically synced for the given roles — each role will get access to all dashboard datasets. Args: dashboard_title: Dashboard title (displayed in the UI). slug: URL slug for a pretty link (e.g. "my-dashboard"). Must be unique. published: Publish immediately (default False — draft). json_metadata: JSON string with dashboard metadata. Contains filter settings, color palette, refresh interval. Use "{}" for empty metadata. css: Custom CSS for dashboard styling. position_json: JSON…
superset_dashboard_datasetsGet the list of all datasets used by a dashboard's charts. Useful for understanding the dashboard's dependencies on data sources. Args: dashboard_id: Dashboard ID.
superset_dashboard_deleteDelete a dashboard by ID. Charts and datasets are NOT deleted — only the dashboard itself. CRITICAL: the dashboard will be permanently deleted. Args: dashboard_id: ID of the dashboard to delete. confirm_delete: Deletion confirmation (REQUIRED).
superset_dashboard_embedded_deleteDisable dashboard embedding (embedded mode). After disabling, the dashboard can no longer be embedded via iframe. Args: dashboard_id: Dashboard ID.
superset_dashboard_embedded_getGet the embedding (embedded) settings of a dashboard. IMPORTANT: will return 404 if embedded mode has not been configured via embedded_set. Args: dashboard_id: Dashboard ID.
superset_dashboard_embedded_setEnable dashboard embedding (embedded mode) and configure allowed domains. Once enabled, the dashboard can be embedded via iframe on the specified domains. Args: dashboard_id: Dashboard ID. allowed_domains: List of domains where embedding is allowed (e.g. ["example.com", "app.example.com"]). Empty list = all domains.
superset_dashboard_exportExport dashboards with all dependencies (charts, datasets, databases) as a ZIP. The result is a base64-encoded ZIP file. It can be imported back via superset_dashboard_import. Args: dashboard_ids: Comma-separated dashboard IDs (e.g. "1,2,3"). Returns: JSON: {"format": "zip", "encoding": "base64", "data": "...", "size_bytes": N}
superset_dashboard_filter_addAdd a native filter to a dashboard with correct defaults. Automatically populates chartsInScope with all dashboard charts, builds correct scope, defaultDataMask, and cascadeParentIds. Filter ID is generated in NATIVE_FILTER-<uuid> format — this is REQUIRED for Superset 6.0.1 (custom IDs are silently ignored by the frontend). Args: dashboard_id: Dashboard ID. name: Display name of the filter (e.g. "Full Name"). column: Dataset column name for filtering (e.g. "full_name"). dataset_id: ID of the dataset providing filter values. filter_type: Filter type: "filter_select", "fil…
superset_dashboard_filter_deleteDelete a native filter from a dashboard by ID. Args: dashboard_id: Dashboard ID. filter_id: ID of the filter to delete (format "NATIVE_FILTER-<uuid>"). confirm_delete: Deletion confirmation (REQUIRED).
superset_dashboard_filter_listGet a list of native filters on a dashboard in a readable format. Parses json_metadata and returns configuration of each filter: ID, name, type, column, dataset, chartsInScope, controlValues. Args: dashboard_id: Dashboard ID.
superset_dashboard_filter_resetRecreate ALL native filters on a dashboard with correct defaults. Deletes all current filters and creates new ones from the provided list. Automatically populates chartsInScope, scope, defaultDataMask, cascadeParentIds. CRITICAL: all current filters will be DELETED and replaced with new ones. Args: dashboard_id: Dashboard ID. dataset_id: Dataset ID for all filters. filters_json: JSON array of filter definitions. Each element: confirm_reset: Filter reset confirmation (REQUIRED). { "name": "Full Name", "column": "full_name", "type": …
superset_dashboard_filter_updateUpdate a native filter on a dashboard by ID. Pass only the fields to change. Args: dashboard_id: Dashboard ID. filter_id: Filter ID (format "NATIVE_FILTER-<uuid>"). name: New filter name. column: New column for filtering. multi_select: Multiple selection. search_all_options: Search all values. enable_empty_filter: Empty filter = NULL. cascade_parent_id: Parent filter ID (None — remove cascading).
superset_dashboard_getGet detailed information about a dashboard by ID. IMPORTANT: if the ID is unknown, first call superset_dashboard_list to find the desired dashboard. A non-existent ID will return 404. Args: dashboard_id: Dashboard ID (integer from dashboard_list result).
superset_dashboard_grant_role_accessGrant a role access to a dashboard by automatically finding all dashboard datasets and adding datasource_access to the role's permissions. The tool automatically: 1. Finds all datasets used by the dashboard's charts 2. Finds permission_view_menu_id for datasource_access of each dataset 3. Checks which permissions the role already has 4. Adds missing datasource_access to the role's existing permissions 5. Checks for RLS rules on the datasets and warns if missing Without confirm_grant=True, shows the action plan (dry-run). Args: dashboard_id: Dashboard ID (from dashboard_list). role_i…
superset_dashboard_importImport dashboards from a ZIP file (created via export). The ZIP should contain YAML files with dashboard and dependency configurations. Args: file_path: Absolute path to the ZIP file on disk. overwrite: Overwrite existing objects with the same UUID (default False).
superset_dashboard_listList Superset dashboards with pagination. IMPORTANT: always call this tool before dashboard_get to find out the current dashboard IDs. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for search. Examples: - By title: (filters:!((col:dashboard_title,opr:ct,value:search))) - By owner: (filters:!((col:owners,opr:rel_m_m,value:1))) - Published only: (filters:!((col:published,opr:eq,value:!t))) get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_dashboard_publishPublish a dashboard (make it visible to users with appropriate permissions). Args: dashboard_id: Dashboard ID.
superset_dashboard_revoke_role_accessRevoke a role's access to a dashboard by removing datasource_access for the dashboard's datasets from the role's permissions. IMPORTANT: if a dataset is used by other dashboards that the role also has access to, revoking will break access to those dashboards as well. The tool will check and warn about this. Without confirm_revoke=True, shows the action plan (dry-run). Args: dashboard_id: Dashboard ID (from dashboard_list). role_id: ID of the role to revoke access from (from role_list). confirm_revoke: True to apply. False for dry-run only.
superset_dashboard_unpublishUnpublish a dashboard (convert to draft). The dashboard will remain accessible to owners and admins but will be hidden from the general list. Args: dashboard_id: Dashboard ID.
superset_dashboard_updateUpdate an existing dashboard. Pass only the fields to change. IMPORTANT: after the update, datasource_access is automatically synced — each role from dashboard.roles will get access to all dashboard datasets. Args: dashboard_id: ID of the dashboard to update. dashboard_title: New title. slug: New URL slug (must be unique). published: Change publication status (true — published, false — draft). json_metadata: Dashboard JSON metadata (string or object, fully replaced). css: New custom CSS for the dashboard. Injected as a <style> tag on the dashboard page. …
superset_database_available_enginesList supported database engine types for creating connections. Returns available engines: PostgreSQL, MySQL, SQLite, etc. Useful for selecting an engine when creating a new connection.
superset_database_catalogsList catalogs in a database (for engines that support catalogs). Not supported by all engines. PostgreSQL and MySQL typically do not use catalogs. Args: database_id: Database connection ID.
superset_database_connection_infoGet connection information (URI without password, parameters). Args: database_id: Database connection ID.
superset_database_createCreate a new database connection. IMPORTANT: Superset validates database availability on creation. The URI must be reachable from the Superset server (not the client's localhost). Args: database_name: Human-readable connection name. sqlalchemy_uri: SQLAlchemy connection URI string. Examples: - PostgreSQL: postgresql://user:pass@host:5432/dbname - MySQL: mysql://user:pass@host:3306/dbname - SQLite: sqlite:///path/to/db.sqlite expose_in_sqllab: Whether to show in SQL Lab (default True). allow_ctas: Allow CREATE TABLE AS SELECT. allow_cvas: Allow CREA…
superset_database_deleteDelete a database connection. All associated datasets will become broken. CRITICAL: deleting a connection breaks ALL datasets, charts, and dashboards using this DB. Args: database_id: Connection ID to delete. confirm_delete: Deletion confirmation (REQUIRED).
superset_database_exportExport database connection configurations as a ZIP file. IMPORTANT: passwords are NOT exported for security reasons. Args: database_ids: Comma-separated connection IDs (e.g. "1,2"). Returns: JSON: {"format": "zip", "encoding": "base64", "data": "...", "size_bytes": N}
superset_database_function_namesList available SQL functions in the database. Useful for building SQL queries with engine-specific functions. Args: database_id: Database connection ID.
superset_database_getGet detailed information about a database connection by ID. IMPORTANT: if the ID is unknown, call superset_database_list first. Args: database_id: Connection ID (integer from database_list result).
superset_database_listList database connections configured in Superset. Returns the ID, name, engine type, and status of each connection. IMPORTANT: always call before database_get to discover current IDs. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for searching. Examples: - By name: (filters:!((col:database_name,opr:ct,value:postgres))) - By type: (filters:!((col:backend,opr:eq,value:postgresql))) get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_database_related_objectsGet objects related to a database connection (datasets, charts). Useful before deleting a connection to understand what will break. Args: database_id: Database connection ID.
superset_database_schemasList schemas available in a database. Useful for selecting a schema before querying tables or creating a dataset. Args: database_id: Database connection ID (from database_list).
superset_database_select_starGenerate a SELECT * SQL query for a table (with LIMIT). Useful for quickly inspecting table structure and data. Args: database_id: Database connection ID. table_name: Table name. schema_name: Schema (e.g. "public"). If not specified, uses the default schema.
superset_database_table_metadataGet table metadata: columns, data types, indexes, and primary keys. Useful for understanding table structure before writing SQL queries. Args: database_id: Database connection ID. table_name: Table name. schema_name: Schema (e.g. "public"). If not specified, uses the default schema.
superset_database_tablesList tables and views in the specified database schema. Useful for selecting a table before creating a dataset. Args: database_id: Database connection ID (from database_list). schema_name: Schema name (from database_schemas). Examples: "public", "source". Passed in RISON format without quotes.
superset_database_test_connectionTest a database connection without creating it. IMPORTANT: the URI must be reachable from the Superset server. Args: database_name: Connection name (shown in error messages). sqlalchemy_uri: SQLAlchemy URI to test. extra: JSON string with additional settings.
superset_database_updateUpdate a database connection. Pass only the fields you want to change. Args: database_id: Connection ID to update. database_name: New connection name. sqlalchemy_uri: New SQLAlchemy URI. CRITICAL: changing the URI breaks all datasets and charts using this connection. expose_in_sqllab: Whether to show in SQL Lab. allow_ctas: Allow CREATE TABLE AS SELECT. allow_cvas: Allow CREATE VIEW AS SELECT. allow_dml: Allow INSERT/UPDATE/DELETE. extra: JSON string with additional settings. confirm_uri_change: Confirmation for URI change (REQUIRED when changing sq…
superset_database_validate_parametersValidate database connection parameters without creating a connection. Args: engine: Database engine type: "postgresql", "mysql", "sqlite", "mssql", etc. parameters: Connection parameters dictionary: {"host": "...", "port": 5432, "database": "...", "username": "...", "password": "..."} configuration_method: Configuration method: "sqlalchemy_form" (default) or "dynamic_form".
superset_database_validate_sqlValidate SQL query syntax without executing it (EXPLAIN-like check). IMPORTANT: not all database engines support SQL validation. PostgreSQL does. Args: database_id: Database connection ID. sql: SQL query to validate. schema: Schema for validation context (e.g. "public").
superset_dataset_createCreate a new dataset (physical or virtual). A physical dataset references an existing table/view in the database. A virtual dataset uses an arbitrary SQL query as the data source. Args: table_name: Table/view name (for physical) or dataset name (for virtual). database: Database connection ID (from superset_database_list). schema_name: Database schema (e.g. "public", "source"). If omitted, uses the DB default schema. sql: SQL query for a virtual dataset. If provided, creates a virtual dataset based on this query. Returns: JSON string with the created dataset details.
superset_dataset_deleteDelete a dataset. Charts using this dataset will stop working. CRITICAL: deleting a dataset breaks all linked charts and dashboards. Args: dataset_id: ID of the dataset to delete. confirm_delete: Deletion confirmation (REQUIRED). Returns: JSON string with the deletion result.
superset_dataset_duplicateCreate a copy of an existing dataset (with columns and metrics). Args: base_model_id: ID of the source dataset to copy. IMPORTANT: the field is called base_model_id, NOT base_id or dataset_id. table_name: Name for the new dataset (must be unique). Returns: JSON string with the duplicated dataset details.
superset_dataset_exportExport datasets with dependencies (databases) to a ZIP file. The result is a base64-encoded ZIP. Can be imported via dataset_import. Args: dataset_ids: Comma-separated dataset IDs (e.g. "1,2,3"). Returns: JSON: {"format": "zip", "encoding": "base64", "data": "...", "size_bytes": N}
superset_dataset_getGet detailed information about a dataset: columns, metrics, SQL. IMPORTANT: if the ID is unknown, call superset_dataset_list first. Args: dataset_id: Dataset ID (integer from dataset_list result). Returns: JSON string with dataset details.
superset_dataset_get_or_createGet an existing dataset or create a new one for a table. If a dataset for the specified table already exists, returns it. If not, creates a new physical dataset. Args: database_id: Database connection ID (from superset_database_list). table_name: Table name in the database. schema_name: Database schema (e.g. "public", "source"). If omitted, uses the DB default schema. Returns: JSON string with the dataset details.
superset_dataset_importImport datasets from a ZIP file (created via export). Args: file_path: Absolute path to the ZIP file on disk. overwrite: Overwrite existing objects with matching UUIDs (default False). Returns: JSON string with the import result.
superset_dataset_listList Superset datasets with pagination. A dataset is a reference to a table/view or a virtual SQL query in Superset. IMPORTANT: always call before dataset_get to discover current IDs. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for searching. Examples: - By name: (filters:!((col:table_name,opr:ct,value:search_term))) - By schema: (filters:!((col:schema,opr:eq,value:public))) - By database: (filters:!((col:database,opr:rel_o_m,value:1))) get_all: Fetch ALL records with automatic pagination …
superset_dataset_refresh_schemaRefresh the dataset schema from the source (rescan columns and types). Useful after ALTER TABLE or any structural change to the underlying table. Args: dataset_id: Dataset ID. Returns: JSON string with the refresh result.
superset_dataset_related_objectsGet objects related to a dataset (charts and dashboards). Useful before deleting a dataset to understand the impact. Args: dataset_id: Dataset ID. Returns: JSON string with related charts and dashboards.
superset_dataset_updateUpdate a dataset. Only pass the fields you want to change. Args: dataset_id: ID of the dataset to update. table_name: New table/dataset name. sql: New SQL query (only for virtual datasets). description: Dataset description (displayed in Superset UI). columns: JSON string describing columns. CRITICAL: passing columns REPLACES ALL dataset columns! To update a single column (e.g. verbose_name), pass ALL columns with their IDs. After an error, dataset_refresh_schema will restore columns from SQL. Format: [{"id": 123, "column_name": "id", "type":…
superset_get_base_urlGet the base URL of the configured Superset instance. Returns the URL used by the MCP server to connect to Superset.
superset_get_current_userGet information about the current authenticated user (mcp_service). Returns: JSON with username, name, email, roles, and active status.
superset_get_current_user_rolesGet the list of roles for the current user (mcp_service). Returns: JSON with IDs and names of all assigned roles.
superset_get_menuGet the Superset navigation menu structure. Useful for understanding available sections and the current user's permissions.
superset_group_add_rolesAdd roles to a group without removing existing ones. Args: group_id: Group ID. role_ids: List of role IDs to add.
superset_group_add_usersAdd users to a group without removing existing ones. Convenience tool: fetches current group users, merges in new ones, and updates the group. Args: group_id: Group ID. user_ids: List of user IDs to add.
superset_group_createCreate a new user group. A group combines users and roles. Users in a group automatically inherit all roles of the group. Args: name: Unique group name (e.g. "la_region_Moscow"). label: Display label (e.g. "Moscow region"). description: Group description. roles: List of role IDs to assign to the group. users: List of user IDs to add to the group.
superset_group_deleteDelete a user group. Users in the group are NOT deleted, but they lose the roles that were assigned through this group. Args: group_id: ID of the group to delete. confirm_delete: Deletion confirmation (REQUIRED).
superset_group_getGet detailed information about a group by ID. Returns: name, label, description, list of roles and users. Args: group_id: Group ID (from group_list).
superset_group_listList Superset user groups. A group combines users and roles. Users in a group inherit all roles assigned to the group. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for search. Examples: - By name: (filters:!((col:name,opr:ct,value:moscow))) get_all: Fetch ALL records with automatic pagination.
superset_group_remove_rolesRemove roles from a group without removing the rest. Args: group_id: Group ID. role_ids: List of role IDs to remove.
superset_group_remove_usersRemove users from a group without removing the rest. Args: group_id: Group ID. user_ids: List of user IDs to remove from the group.
superset_group_updateUpdate a group. Only pass the fields you want to change. IMPORTANT: roles REPLACES the entire role list of the group (does not append). IMPORTANT: users REPLACES the entire user list of the group (does not append). To add a single role/user: fetch current ones via group_get, add the ID to the list, pass the complete list. Args: group_id: ID of the group to update. name: New group name. label: New label. description: New description. roles: New COMPLETE list of role IDs (REPLACES all current ones). users: New COMPLETE list of user IDs (REPLACES all current ones). …
superset_log_listGet the audit log of all Superset user actions. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for search. Examples: - By user: (filters:!((col:user,opr:rel_o_m,value:1))) - By action: (filters:!((col:action,opr:ct,value:explore))) get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_permission_listGet the list of all available permissions (permission_view_menu) in Superset. Each permission is a combination of an action (can_read, can_write, can_explore) and a resource. Args: page: Page number (starting from 0). page_size: Number of records per page (defaults to 100). q: RISON filter for searching. get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_permissions_auditAudit access rights: user x dashboards/datasets/RLS permission matrix. For each user shows: - Groups they belong to - Effective roles (direct + inherited from groups) - Access to each dashboard (1/0/partial) — checks BOTH: * Dashboard visibility (user's role in dashboard.roles, or roles empty) * Data access (datasource_access to ALL datasets) Values: 1 = full access, 0 = no access, "visible_no_data" = can open but charts fail - Access to each dataset (1/0) - Available regions via RLS Args: page: Results page (starting from 0). page_size: Users per page (max 50). username_fi…
superset_query_getRetrieve detailed information about a query from the history by ID. Args: query_id: Query ID (integer from query_list result).
superset_query_listRetrieve the history of executed SQL queries. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for search. Examples: - By status: (filters:!((col:status,opr:eq,value:success))) - By database: (filters:!((col:database,opr:rel_o_m,value:1))) get_all: Retrieve ALL records with automatic pagination (ignores page/page_size).
superset_query_stopStop a running asynchronous query. Args: query_id: Query client_id to stop (string from sqllab_execute result).
superset_recent_activityGet recent activity of the current user (views, edits). Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_report_createCreate a report (periodic delivery) or alert (SQL-condition based). For Report: specify dashboard or chart — Superset will send a screenshot on schedule. For Alert: specify database and sql — Superset checks the condition and notifies on trigger. Args: name: Report/alert name. crontab: Cron schedule. Examples: - "0 9 * * *" — every day at 9:00 - "0 9 * * 1" — every Monday at 9:00 - "0 */6 * * *" — every 6 hours report_type: Type: "Report" (periodic delivery, default) or "Alert" (condition-based). dashboard: Dashboard ID for screenshot (for Report). …
superset_report_deleteDelete a report/alert. The delivery schedule will be stopped. Args: report_id: Report ID to delete. confirm_delete: Deletion confirmation (REQUIRED).
superset_report_getGet detailed information about a report/alert by ID. IMPORTANT: if the ID is unknown, call superset_report_list first. Args: report_id: Report ID (integer from report_list result).
superset_report_listList Superset reports and alerts. Reports send periodic screenshots of dashboards/charts. Alerts send notifications when a SQL condition is met. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for search. Examples: - By name: (filters:!((col:name,opr:ct,value:search_term))) - By type: (filters:!((col:type,opr:eq,value:Report))) - Active only: (filters:!((col:active,opr:eq,value:!t))) get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_report_updateUpdate a report/alert. Pass only the fields to change. Args: report_id: Report ID to update. name: New name. crontab: New cron schedule (e.g. "0 9 * * *"). active: Enable/disable the report. recipients: JSON string with new recipient list (REPLACES all current recipients).
superset_rls_createCreate a Row Level Security rule. RLS automatically adds a WHERE clause to queries for users with the specified roles accessing the specified datasets. Args: name: Rule name. clause: SQL WHERE condition without the WHERE keyword. Examples: - "region = 'Moscow'" - "user_id = {{ current_user_id() }}" - "status IN ('active', 'pending')" tables: List of dataset IDs the rule applies to (from dataset_list). roles: List of role IDs the rule applies to (from role_list). filter_type: Filter type: - "Regular" (default) — additional restriction for th…
superset_rls_deleteDelete an RLS rule. Restrictions for associated roles will be lifted. CRITICAL: deleting a deny-by-default rule (clause='1=0') will immediately expose ALL data to users with those roles. Args: rls_id: ID of the RLS rule to delete. confirm_delete: Deletion confirmation (REQUIRED).
superset_rls_getGet detailed information about an RLS rule by ID. Args: rls_id: RLS rule ID (from rls_list).
superset_rls_listGet the list of Row Level Security rules. RLS adds a WHERE clause to queries for specific roles. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for searching. get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_rls_updateUpdate an RLS rule. CRITICAL: Superset PUT API REPLACES the roles and tables fields entirely. If you pass only roles without tables, Superset will WIPE tables with an empty list (and vice versa). Therefore, this tool REQUIRES passing roles and tables simultaneously if either one is specified. For safe updates: 1. First get the current rule via rls_list 2. Pass BOTH roles AND tables (even if you only change one) Args: rls_id: ID of the RLS rule to update. name: New name. filter_type: New type: "Regular" or "Base". clause: New SQL WHERE condition (without the WHERE keyword). …
superset_role_copy_permissionsCopy all permissions from one role to another (full replacement). Args: source_role_id: Role to copy permissions FROM. target_role_id: Role to copy permissions TO (existing permissions will be REPLACED). confirm: True to apply. False for dry-run.
superset_role_createCreate a new role (without permissions). Permissions are added via role_permission_add. Args: name: Role name (must be unique).
superset_role_deleteDelete a role. Users with this role will lose the associated permissions. BLOCKED for system roles: Admin, Alpha, Gamma, Public, sql_lab, no_access, la_report_*, la_region_*, la_developer. Args: role_id: ID of the role to delete. confirm_delete: Deletion confirmation (REQUIRED).
superset_role_getGet role information by ID. IMPORTANT: if the ID is unknown, call superset_role_list first. Args: role_id: Role ID (integer from role_list result).
superset_role_listGet the list of Superset roles. Standard roles: Admin, Alpha, Gamma, sql_lab, Public. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for searching. Examples: - By name: (filters:!((col:name,opr:ct,value:admin))) get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_role_permission_addSet the permissions list for a role (FULL REPLACEMENT). WARNING: this endpoint REPLACES ALL role permissions with the provided list! To ADD a single permission: 1. Call superset_role_permissions_get to get current permission IDs 2. Add the new ID to the list 3. Pass the FULL list to this tool with confirm_full_replace=True Args: role_id: Role ID. permission_view_menu_ids: FULL list of permission IDs for the role. Permission IDs can be obtained via superset_permission_list. confirm_full_replace: Confirmation for full permission replacement (REQUIRED).
superset_role_permissions_getGet the current list of permissions for a role. IMPORTANT: call this BEFORE role_permission_add to avoid losing existing permissions. Args: role_id: Role ID.
superset_role_updateRename a role. Args: role_id: ID of the role to rename. name: New role name.
superset_saved_query_createCreate a saved SQL query for reuse. Args: label: Query name (displayed in the list). db_id: Database connection ID (from superset_database_list). sql: SQL query to save. schema: Default schema (e.g. "public"). description: Query description.
superset_saved_query_deleteDelete a saved query. Args: saved_query_id: Saved query ID to delete. confirm_delete: Deletion confirmation (REQUIRED).
superset_saved_query_getRetrieve a saved query by ID: SQL text, schema, description. Args: saved_query_id: Saved query ID (from saved_query_list).
superset_saved_query_listRetrieve a list of saved SQL queries. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for search. Examples: - By label: (filters:!((col:label,opr:ct,value:search_term))) - By database: (filters:!((col:database,opr:rel_o_m,value:1))) get_all: Retrieve ALL records with automatic pagination (ignores page/page_size).
superset_saved_query_updateUpdate a saved query. Pass only the fields to change. Args: saved_query_id: Saved query ID. label: New name. sql: New SQL query. schema: New default schema. description: New description.
superset_sqllab_estimate_costEstimate the cost of executing a SQL query (EXPLAIN). Not all database engines support this feature. PostgreSQL does. Args: database_id: Database connection ID. sql: SQL query to estimate. schema: Schema for context (e.g. "public").
superset_sqllab_executeExecute a SQL query via SQL Lab and return the result. IMPORTANT: before executing, make sure the SQL query is correct. Use superset_database_table_metadata or superset_database_tables to find actual table and column names. Maximum 1000 rows in the result (queryLimit). Args: database_id: Database connection ID (from superset_database_list). sql: SQL query to execute. Examples: - SELECT * FROM public.my_table LIMIT 10 - SELECT count(*) FROM source.stat schema: Default schema for the query (e.g. "public", "source"). If not specified, the database default sch…
superset_sqllab_export_csvExport query results to CSV format. IMPORTANT: requires a configured Results Backend (Redis/S3) in Superset. Args: client_id: Query client_id (from the superset_sqllab_execute result).
superset_sqllab_format_sqlFormat a SQL query (pretty print with indentation). Args: sql: SQL query to format.
superset_sqllab_resultsRetrieve results of a previously executed query by key. IMPORTANT: requires a configured Results Backend (Redis/S3) in Superset. Without it, returns 500. The key is taken from the results_key field of sqllab_execute response. Args: results_key: Results key from the superset_sqllab_execute response.
superset_tag_bulk_createBulk-create tags with object attachments. Allows creating multiple tags and attaching them to objects in a single request. Args: tags: JSON string with a list of tags. Format: [ {"name": "production", "objects_to_tag": [["dashboard", 1], ["chart", 5]]}, {"name": "analytics", "objects_to_tag": [["dataset", 3]]} ] objects_to_tag: pairs of [object_type, object_id]. Allowed types: "dashboard", "chart", "dataset", "saved_query".
superset_tag_createCreate a new tag and optionally attach it to Superset objects. IMPORTANT: Superset API returns {} on creation (without tag ID). To get the new tag's ID, call superset_tag_list after creation. Object attachment is only possible during creation via objects_to_tag. Direct attachment endpoints (POST/DELETE /api/v1/tag/{type}/{id}/) do not work in 6.0.1. Args: name: Tag name. description: Tag description (optional). objects_to_tag: JSON string with a list of objects to tag. Format: [["dashboard", 1], ["chart", 5], ["dataset", 3], ["saved_query", 2]] Each element is a …
superset_tag_deleteDelete a tag. All object attachments will be removed. Args: tag_id: Tag ID to delete. confirm_delete: Deletion confirmation (REQUIRED).
superset_tag_getGet tag information by ID. IMPORTANT: if the ID is unknown, call superset_tag_list first. Args: tag_id: Tag ID (integer from tag_list result).
superset_tag_get_objectsGet objects tagged with the specified tags. Returns dashboards, charts, datasets, and queries with the specified tags. Args: tags: Comma-separated tag names (e.g. "analytics,production"). If not specified, returns all tagged objects. page: Page number (starting from 0). page_size: Number of records per page (max 100). get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_tag_listList Superset tags. Tags are used to group and organize dashboards, charts, and datasets. IMPORTANT: always call before tag_get/tag_update to find current IDs. When creating a tag, the API returns {} without an ID — use tag_list to get the ID. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for search. Examples: - By name: (filters:!((col:name,opr:ct,value:search_term))) get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_tag_updateUpdate a tag (rename or change description). IMPORTANT: the name field is REQUIRED in Superset 6.0.1 — even if the name is not changing, it must be provided. Without it, Superset returns 500. Args: tag_id: Tag ID to update. name: Tag name (REQUIRED, even if unchanged). description: New description (optional).
superset_user_createCreate a new Superset user. Args: first_name: User's first name. last_name: User's last name. username: Login name (must be unique). email: Email address (must be unique). password: Password. roles: List of role IDs to assign (from superset_role_list). If not specified, the default role (Public) will be assigned. active: Whether the account is active (defaults to True).
superset_user_deleteDelete a Superset user. This operation is irreversible. CRITICAL: deleting the current service account (mcp_service) will lock out the entire MCP server. Deleting dashboard owners may change access to those dashboards. Args: user_id: ID of the user to delete. confirm_delete: Deletion confirmation (REQUIRED).
superset_user_getGet detailed information about a user by ID. IMPORTANT: if the ID is unknown, call superset_user_list first. Args: user_id: User ID (integer from user_list result).
superset_user_listGet the list of Superset users. Args: page: Page number (starting from 0). page_size: Number of records per page (max 100). q: RISON filter for searching. Examples: - By username: (filters:!((col:username,opr:ct,value:admin))) - Active only: (filters:!((col:active,opr:eq,value:!t))) - By role: (filters:!((col:roles,opr:rel_m_m,value:1))) get_all: Fetch ALL records with automatic pagination (ignores page/page_size).
superset_user_updateUpdate a user. Only pass the fields you want to change. IMPORTANT: roles REPLACES the entire role list (does not append). To add a single role: get the current roles via user_get, add the new ID to the list, then pass the full list. Args: user_id: ID of the user to update. first_name: New first name. last_name: New last name. email: New email (must be unique). roles: New list of role IDs (REPLACES all current roles). active: Activate/deactivate the account. confirm_roles_replace: Confirmation for role replacement (REQUIRED when passing roles).
Compare and alternatives
Featured in
Signals
- Stars
- 59
- Forks
- 15
- Open issues
- 0
- Weekly downloads
- 1,202
- Last commit
- Sep 19, 2026 (1 month ago)
- Last release
- Jul 25, 2026 (3 months ago)
- Last package publish
- Jul 25, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.bintocher/mcp-superset- Version
- 0.2.3
- Auth
- API key
- Packages
- pypi mcp-superset
- License
- MIT
- Repository
- github.com/bintocher/mcp-superset
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
MCP Superset. Agent Mart. https://agentmart.dev/connectors/bintocher-mcp-superset (last updated 2026-10-25)