MCP连接器
MCP服务器允许AI代理以编程方式连接到并控制Apache Superset实例,使用户能够通过自然语言交互管理仪表板、图表、数据库、数据集以及运行SQL查询。
服务介绍
Superset MCP 集成
用于与 Apache Superset 交互的 MCP 服务器,使 AI 代理能够以编程方式连接和控制 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 up当 Superset 运行后,你应该可以通过 http://localhost:8088 使用默认凭据访问它:
- 用户名: admin
- 密码: admin
-
克隆此仓库
将此仓库克隆到你的本地机器。
-
配置环境变量
在根目录下创建一个
.env文件,并填入你的 Superset 凭据:SUPERSET_BASE_URL=http://localhost:8088 # 更改为你的 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 的仪表盘的详细信息"
- 创建仪表盘:"创建一个名为 '销售概览' 的新仪表盘"
- 更新仪表盘:"将仪表盘 3 的标题更改为 '更新后的销售报告'"
- 删除仪表盘:"删除 ID 为 7 的仪表盘"
图表管理
- 列出所有图表:"我的 Superset 实例中有哪些图表?"
- 查看图表详情:"显示 ID 为 10 的图表的详细信息"
- 创建图表:"使用数据集 3 创建一个新的条形图"
- 更新图表:"将图表 5 从条形图改为折线图"
- 删除图表:"删除 ID 为 12 的图表"
数据库和数据集操作
- 列出数据库: "显示连接到Superset的所有数据库"
- 列出数据集: "在我的Superset实例中有哪些可用的数据集?"
- 获取数据库表: "ID为1的数据库中有哪些可用的表?"
- 执行SQL: "在数据库1上运行此SQL查询: SELECT * FROM users LIMIT 10"
- 创建数据集: "从数据库2中的'customers'表创建一个新的数据集"
- 更新数据库: "更新ID为3的数据库的连接设置"
- 删除数据库: "删除ID为4的数据库连接"
- 验证SQL: "这条SQL对于数据库2是否有效: SELECT * FROM customers JOIN orders"
- 获取数据库目录: "显示ID为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 实验室
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 实验室引导数据
查询
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 用户名 | 无 |
| SUPERSET_PASSWORD | Superset 密码 | 无 |
故障排除
- 如果遇到身份验证问题,请在
.env文件中验证您的凭据 - 确保 Superset 正在运行,并且可以在
.env文件中指定的 URL 访问 - 检查您是否使用了兼容版本的 Superset(测试版本为 4.1.1)
- 确保 MCP 服务器使用的端口未被其他应用程序占用
安全注意事项
- 您的 Superset 凭据仅存储在本地的
.env文件中 - 访问令牌存储在项目目录中的
.superset_token文件里 - 所有身份验证直接发生在 MCP 服务器和您的 Superset 实例之间
- 凭据不会传输给 Claude 或任何第三方
- 对于生产环境,考虑使用更安全的身份验证方法
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
MIT