关于 Superset MCP Integration
Superset MCP Integration 是一个面向 Apache Superset 的 MCP 服务,使 AI Agent 能够以编程方式连接并控制 Superset 实例。它适合希望通过自然语言管理仪表板、图表、数据库和 SQL Lab 的用户,并可在 Claude Desktop 等客户端中使用。
主要功能
- 01仪表板与图表的增删改查工具
- 02数据库连接与数据集管理工具
- 03SQL Lab 查询执行与格式化工具
- 04标签管理与权限相关查询工具
- 05通过环境变量配置 Superset 连接
适用场景
- 01通过自然语言查询并更新 Superset 仪表板
- 02在 Superset 中执行 SQL 并导出结果为 CSV
- 03管理数据库连接与标签
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露大量 Superset 工具,涵盖认证、仪表板、图表、数据库、数据集、SQL Lab、标签等操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Superset MCP 集成
用于与 Apache Superset 交互的 MCP 服务,可让 AI Agent 以编程方式连接并控制 Superset 实例。
设置说明
通过 Smithery 安装
通过 Smithery 自动为 Claude Desktop 安装 Superset 集成:
npx -y @smithery/cli install @aptro/superset-mcp --client claude
手动安装
-
在本地设置 Superset
运行此脚本以在本地启动 Superset:
git clone --branch 4.1.1 --depth 1 https://github.com/apache/superset && \ cd superset && \ docker compose -f docker-compose-image-tag.yml upSuperset 启动后,你可以使用默认凭据通过 http://localhost:8088 访问:
- 用户名:admin
- 密码:admin
-
克隆此存储库
将此存储库克隆到本地计算机。
-
配置环境变量
在根目录中创建
.env文件,并填入 Superset 凭据:SUPERSET_BASE_URL=http://localhost:8088 # Change to your Superset URL SUPERSET_USERNAME=your_username SUPERSET_PASSWORD=your_password -
安装依赖项
uv pip install . -
安装 Claude MCP 配置
若要与 Claude Desktop 应用配合使用:
mcp install main.py
与 Claude 配合使用
设置完成后,你可以通过自然语言请求使用 Claude 与 Superset 实例交互。以下是一些示例:
仪表板管理
- 查看仪表板:“显示我的所有 Superset 仪表板”
- 获取仪表板详情:“显示 ID 为 5 的仪表板详情”
- 创建仪表板:“创建一个名为‘Sales Overview’的新仪表板”
- 更新仪表板:“将仪表板 3 的标题更新为‘Updated Sales Report’”
- 删除仪表板:“删除 ID 为 7 的仪表板”
图表管理
- 列出所有图表:“我的 Superset 实例中有哪些图表?”
- 查看图表详情:“显示 ID 为 10 的图表详情”
- 创建图表:“使用数据集 3 创建一个新的条形图”
- 更新图表:“将图表 5 改为使用折线可视化,而不是条形图”
- 删除图表:“删除 ID 为 12 的图表”
数据库和数据集操作
- 列出数据库:“显示连接到 Superset 的所有数据库”
- 列出数据集:“我的 Superset 实例中有哪些可用数据集?”
- 获取数据库表:“ID 为 1 的数据库中有哪些可用表?”
- 执行 SQL:“在数据库 1 上运行此 SQL 查询:SELECT * FROM users LIMIT 10”
- 创建数据集:“从数据库 2 中的表‘customers’创建一个新数据集”
- 更新数据库:“更新数据库 3 的连接设置”
- 删除数据库:“删除 ID 为 4 的数据库连接”
- 验证 SQL:“此 SQL 对数据库 2 是否有效:SELECT * FROM customers JOIN orders”
- 获取数据库目录:“显示数据库 1 中可用的目录”
- 获取数据库函数:“数据库 2 中有哪些可用函数?”
- 检查相关对象:“哪些仪表板和图表使用了数据库 1?”
SQL Lab 功能
- 执行查询:“运行此 SQL 查询:SELECT COUNT(*) FROM orders”
- 格式化 SQL:“格式化此 SQL 查询:SELECT id,name,age FROM users WHERE age>21”
- 估算查询成本:“估算此查询的成本:SELECT * FROM large_table”
- 获取已保存的查询:“显示我保存的所有 SQL 查询”
- 获取查询结果:“获取键为 'abc123' 的查询结果”
用户和系统信息
- 查看用户信息:“我当前以哪个用户身份登录?”
- 获取用户角色:“我在 Superset 中有哪些角色?”
- 查看最近活动:“显示我的 Superset 实例中的最近活动”
- 获取菜单数据:“我可以访问哪些菜单项?”
- 获取基础 URL:“我连接的 Superset 实例的 URL 是什么?”
标签管理
- 列出标签:“显示我的 Superset 实例中的所有标签”
- 创建标签:“创建一个名为‘Finance’的新标签”
- 删除标签:“删除 ID 为 5 的标签”
- 为对象添加标签:“将标签‘Finance’添加到仪表板 3”
- 移除标签:“从图表 7 中移除标签‘Finance’”
可用的 MCP 工具
此插件提供以下 Claude 可使用的 MCP 工具:
身份验证
superset_auth_check_token_validity- 检查当前访问令牌是否有效superset_auth_refresh_token- 刷新访问令牌superset_auth_authenticate_user- 使用 Superset 进行身份验证
仪表板
superset_dashboard_list- 列出所有仪表板superset_dashboard_get_by_id- 获取指定仪表板superset_dashboard_create- 创建新仪表板superset_dashboard_update- 更新现有仪表板superset_dashboard_delete- 删除仪表板
图表
superset_chart_list- 列出所有图表superset_chart_get_by_id- 获取指定图表superset_chart_create- 创建新图表superset_chart_update- 更新现有图表superset_chart_delete- 删除图表
数据库
superset_database_list- 列出所有数据库superset_database_get_by_id- 获取指定数据库superset_database_create- 创建新的数据库连接superset_database_get_tables- 列出数据库中的表superset_database_schemas- 获取数据库的架构superset_database_test_connection- 测试数据库连接superset_database_update- 更新现有数据库连接superset_database_delete- 删除数据库连接superset_database_get_catalogs- 获取数据库的目录superset_database_get_connection- 获取数据库连接信息superset_database_get_function_names- 获取数据库支持的函数名称superset_database_get_related_objects- 获取与数据库关联的图表和仪表板superset_database_validate_sql- 验证针对数据库的任意 SQLsuperset_database_validate_parameters- 验证数据库连接参数
数据集
superset_dataset_list- 列出所有数据集superset_dataset_get_by_id- 获取指定数据集superset_dataset_create- 创建新数据集
SQL Lab
superset_sqllab_execute_query- 执行 SQL 查询superset_sqllab_get_saved_queries- 列出已保存的 SQL 查询superset_sqllab_format_sql- 格式化 SQL 查询superset_sqllab_get_results- 获取查询结果superset_sqllab_estimate_query_cost- 估算查询成本superset_sqllab_export_query_results- 将查询结果导出为 CSVsuperset_sqllab_get_bootstrap_data- 获取 SQL Lab 引导数据
查询
superset_query_list- 列出所有查询superset_query_get_by_id- 获取指定查询superset_query_stop- 停止正在运行的查询
已保存的查询
superset_saved_query_get_by_id- 获取指定的已保存查询superset_saved_query_create- 创建新的已保存查询
用户信息
superset_user_get_current- 获取当前用户信息superset_user_get_roles- 获取用户角色
活动
superset_activity_get_recent- 获取近期活动数据
系统
superset_menu_get- 获取菜单数据superset_config_get_base_url- 获取 Superset 实例的基本 URL
标签
superset_tag_list- 列出所有标签superset_tag_create- 创建新标签superset_tag_get_by_id- 获取指定标签superset_tag_objects- 获取与标签关联的对象superset_tag_delete- 删除标签superset_tag_object_add- 为对象添加标签superset_tag_object_remove- 从对象移除标签
探索工具
superset_explore_form_data_create- 创建用于图表探索的表单数据superset_explore_form_data_get- 获取用于图表探索的表单数据superset_explore_permalink_create- 创建图表探索的永久链接superset_explore_permalink_get- 获取图表探索的永久链接
高级数据类型
superset_advanced_data_type_convert- 将值转换为高级数据类型superset_advanced_data_type_list- 列出可用的高级数据类型
环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
| SUPERSET_BASE_URL | Superset 实例的 URL | http://localhost:8088 |
| SUPERSET_USERNAME | Superset 的用户名 | None |
| SUPERSET_PASSWORD | Superset 的密码 | None |
故障排除
- 如果遇到身份验证问题,请检查
.env文件中的凭据 - 确保 Superset 正在运行,且可通过
.env文件中指定的 URL 访问 - 检查你使用的 Superset 版本是否兼容(已使用 4.1.1 版本测试)
- 确保 MCP 服务使用的端口未被其他应用程序占用
安全说明
- Superset 凭据仅存储在本地
.env文件中 - 访问令牌存储在项目目录中的
.superset_token文件里 - 所有身份验证均直接在 MCP 服务与 Superset 实例之间进行
- 不会向 Claude 或任何第三方传输凭据
- 用于生产环境时,请考虑使用更安全的身份验证方式
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。