Skip to content
Agentmart
Submit a tool

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

IndexedMITLocal (stdio)★ 59
Write a review

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.

We use your email only for this newsletter. Privacy

About

Apache Superset MCP server — 135+ tools for dashboards, charts, datasets, SQL Lab, and security

Use cases: data-visualization, database-access

No 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_get
  • superset_annotation_layer_get
  • superset_annotation_layer_list
  • superset_annotation_list
  • superset_chart_get
  • superset_chart_get_data
  • superset_chart_list
  • superset_dashboard_charts
  • superset_dashboard_datasets
  • superset_dashboard_embedded_get
  • superset_dashboard_filter_list
  • superset_dashboard_get
Show 40 more tools
  • superset_dashboard_list
  • superset_database_available_engines
  • superset_database_catalogs
  • superset_database_connection_info
  • superset_database_function_names
  • superset_database_get
  • superset_database_list
  • superset_database_related_objects
  • superset_database_schemas
  • superset_database_table_metadata
  • superset_database_tables
  • superset_database_validate_parameters
  • superset_database_validate_sql
  • superset_dataset_get
  • superset_dataset_list
  • superset_dataset_related_objects
  • superset_get_base_url
  • superset_get_current_user
  • superset_get_current_user_roles
  • superset_get_menu
  • superset_group_get
  • superset_group_list
  • superset_log_list
  • superset_permission_list
  • superset_permissions_audit
  • superset_query_get
  • superset_query_list
  • superset_recent_activity
  • superset_report_get
  • superset_report_list
  • superset_rls_get
  • superset_rls_list
  • superset_role_get
  • superset_role_list
  • superset_role_permissions_get
  • superset_sqllab_estimate_cost
  • superset_sqllab_format_sql
  • superset_sqllab_results
  • superset_user_get
  • superset_user_list

Write 53 · Create, change, send or run things.

  • superset_annotation_create
  • superset_annotation_layer_create
  • superset_annotation_layer_update
  • superset_annotation_update
  • superset_assets_import
  • superset_bulk_user_role_add
  • superset_bulk_user_role_replace
  • superset_chart_copy
  • superset_chart_create
  • superset_chart_data
  • superset_chart_import
  • superset_chart_update
Show 41 more tools
  • superset_dashboard_copy
  • superset_dashboard_create
  • superset_dashboard_embedded_set
  • superset_dashboard_filter_add
  • superset_dashboard_filter_update
  • superset_dashboard_grant_role_access
  • superset_dashboard_import
  • superset_dashboard_publish
  • superset_dashboard_update
  • superset_database_create
  • superset_database_select_star
  • superset_database_update
  • superset_dataset_create
  • superset_dataset_duplicate
  • superset_dataset_get_or_create
  • superset_dataset_import
  • superset_dataset_update
  • superset_group_add_roles
  • superset_group_add_users
  • superset_group_create
  • superset_group_update
  • superset_report_create
  • superset_report_update
  • superset_rls_create
  • superset_rls_update
  • superset_role_create
  • superset_role_permission_add
  • superset_role_update
  • superset_saved_query_create
  • superset_saved_query_get
  • superset_saved_query_list
  • superset_saved_query_update
  • superset_sqllab_execute
  • superset_tag_bulk_create
  • superset_tag_create
  • superset_tag_get
  • superset_tag_get_objects
  • superset_tag_list
  • superset_tag_update
  • superset_user_create
  • superset_user_update

Delete 20 · Delete, drop, revoke or wipe things.

  • superset_annotation_delete
  • superset_annotation_layer_delete
  • superset_bulk_user_role_remove
  • superset_chart_delete
  • superset_dashboard_delete
  • superset_dashboard_embedded_delete
  • superset_dashboard_filter_delete
  • superset_dashboard_filter_reset
  • superset_dashboard_revoke_role_access
  • superset_database_delete
  • superset_dataset_delete
  • superset_group_delete
Show 8 more tools
  • superset_group_remove_roles
  • superset_group_remove_users
  • superset_report_delete
  • superset_rls_delete
  • superset_role_delete
  • superset_saved_query_delete
  • superset_tag_delete
  • superset_user_delete

Not yet classified 12 · We could not tell from the name and description.

  • superset_assets_export
  • superset_chart_cache_warmup
  • superset_chart_export
  • superset_dashboard_export
  • superset_dashboard_unpublish
  • superset_database_export
  • superset_database_test_connection
  • superset_dataset_export
  • superset_dataset_refresh_schema
  • superset_query_stop
  • superset_role_copy_permissions
  • superset_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_URL
  • SUPERSET_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_create

    Create 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_delete

    Delete 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_get

    Get an annotation by ID. Args: annotation_layer_id: Annotation layer ID. annotation_id: Annotation ID (from annotation_list).

  • superset_annotation_layer_create

    Create 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_delete

    Delete 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_get

    Get 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_list

    List 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_update

    Update 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_list

    List 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_update

    Update 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_export

    Export 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_import

    Import 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_add

    Add 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_remove

    Remove 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_replace

    Replace 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_warmup

    Warm 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_copy

    Create 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_create

    Create 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_data

    Execute 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_delete

    Delete 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_export

    Export 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_get

    Get 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_data

    Get 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_import

    Import 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_list

    List 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_update

    Update 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_charts

    Get 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_copy

    Create 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_create

    Create 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_datasets

    Get 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_delete

    Delete 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_delete

    Disable dashboard embedding (embedded mode). After disabling, the dashboard can no longer be embedded via iframe. Args: dashboard_id: Dashboard ID.

  • superset_dashboard_embedded_get

    Get 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_set

    Enable 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_export

    Export 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_add

    Add 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_delete

    Delete 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_list

    Get 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_reset

    Recreate 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_update

    Update 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_get

    Get 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_access

    Grant 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_import

    Import 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_list

    List 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_publish

    Publish a dashboard (make it visible to users with appropriate permissions). Args: dashboard_id: Dashboard ID.

  • superset_dashboard_revoke_role_access

    Revoke 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_unpublish

    Unpublish 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_update

    Update 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_engines

    List 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_catalogs

    List 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_info

    Get connection information (URI without password, parameters). Args: database_id: Database connection ID.

  • superset_database_create

    Create 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_delete

    Delete 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_export

    Export 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_names

    List available SQL functions in the database. Useful for building SQL queries with engine-specific functions. Args: database_id: Database connection ID.

  • superset_database_get

    Get 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_list

    List 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_objects

    Get 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_schemas

    List 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_star

    Generate 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_metadata

    Get 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_tables

    List 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_connection

    Test 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_update

    Update 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_parameters

    Validate 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_sql

    Validate 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_create

    Create 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_delete

    Delete 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_duplicate

    Create 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_export

    Export 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_get

    Get 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_create

    Get 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_import

    Import 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_list

    List 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_schema

    Refresh 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_objects

    Get 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_update

    Update 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_url

    Get the base URL of the configured Superset instance. Returns the URL used by the MCP server to connect to Superset.

  • superset_get_current_user

    Get information about the current authenticated user (mcp_service). Returns: JSON with username, name, email, roles, and active status.

  • superset_get_current_user_roles

    Get the list of roles for the current user (mcp_service). Returns: JSON with IDs and names of all assigned roles.

  • superset_get_menu

    Get the Superset navigation menu structure. Useful for understanding available sections and the current user's permissions.

  • superset_group_add_roles

    Add roles to a group without removing existing ones. Args: group_id: Group ID. role_ids: List of role IDs to add.

  • superset_group_add_users

    Add 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_create

    Create 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_delete

    Delete 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_get

    Get 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_list

    List 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_roles

    Remove roles from a group without removing the rest. Args: group_id: Group ID. role_ids: List of role IDs to remove.

  • superset_group_remove_users

    Remove 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_update

    Update 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_list

    Get 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_list

    Get 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_audit

    Audit 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_get

    Retrieve detailed information about a query from the history by ID. Args: query_id: Query ID (integer from query_list result).

  • superset_query_list

    Retrieve 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_stop

    Stop a running asynchronous query. Args: query_id: Query client_id to stop (string from sqllab_execute result).

  • superset_recent_activity

    Get 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_create

    Create 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_delete

    Delete a report/alert. The delivery schedule will be stopped. Args: report_id: Report ID to delete. confirm_delete: Deletion confirmation (REQUIRED).

  • superset_report_get

    Get 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_list

    List 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_update

    Update 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_create

    Create 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_delete

    Delete 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_get

    Get detailed information about an RLS rule by ID. Args: rls_id: RLS rule ID (from rls_list).

  • superset_rls_list

    Get 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_update

    Update 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_permissions

    Copy 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_create

    Create a new role (without permissions). Permissions are added via role_permission_add. Args: name: Role name (must be unique).

  • superset_role_delete

    Delete 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_get

    Get 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_list

    Get 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_add

    Set 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_get

    Get 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_update

    Rename a role. Args: role_id: ID of the role to rename. name: New role name.

  • superset_saved_query_create

    Create 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_delete

    Delete a saved query. Args: saved_query_id: Saved query ID to delete. confirm_delete: Deletion confirmation (REQUIRED).

  • superset_saved_query_get

    Retrieve a saved query by ID: SQL text, schema, description. Args: saved_query_id: Saved query ID (from saved_query_list).

  • superset_saved_query_list

    Retrieve 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_update

    Update 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_cost

    Estimate 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_execute

    Execute 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_csv

    Export 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_sql

    Format a SQL query (pretty print with indentation). Args: sql: SQL query to format.

  • superset_sqllab_results

    Retrieve 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_create

    Bulk-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_create

    Create 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_delete

    Delete a tag. All object attachments will be removed. Args: tag_id: Tag ID to delete. confirm_delete: Deletion confirmation (REQUIRED).

  • superset_tag_get

    Get 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_objects

    Get 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_list

    List 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_update

    Update 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_create

    Create 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_delete

    Delete 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_get

    Get 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_list

    Get 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_update

    Update 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
    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)