Superset MCP Integration
MCP服务器支持AI代理以编程方式连接和控制Apache Superset实例,允许用户通过自然语言交互来管理仪表板、图表、数据库、数据集以及运行SQL查询。
README
Superset MCP 集成
用于与 Apache Superset 交互的 MCP 服务器,使 AI 代理能够以编程方式连接和控制 Superset 实例。
安装说明
-
在本地设置 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 # 更改为您的 Superset URL SUPERSET_USERNAME=your_username SUPERSET_PASSWORD=your_password -
安装依赖项
uv pip install . -
为 Claude 安装 MCP 配置
要与 Claude Desktop 应用程序一起使用:
mcp install main.py
与 Claude 一起使用
设置完成后,您可以使用自然语言请求通过 Claude 与您的 Superset 实例进行交互。以下是一些示例:
仪表板管理
- 查看仪表板:“Show me all my Superset dashboards”(显示我所有的 Superset 仪表板)
- 获取仪表板详细信息:“Show me the details of dashboard with ID 5”(显示 ID 为 5 的仪表板的详细信息)
- 创建仪表板:“Create a new dashboard titled 'Sales Overview'”(创建一个名为“销售概览”的新仪表板)
- 更新仪表板:“Update dashboard 3 to have the title 'Updated Sales Report'”(更新仪表板 3,使其标题为“更新的销售报告”)
- 删除仪表板:“Delete dashboard with ID 7”(删除 ID 为 7 的仪表板)
图表管理
- 列出所有图表:“What charts do I have in my Superset instance?”(我的 Superset 实例中有哪些图表?)
- 查看图表详细信息:“Show me the details of chart with ID 10”(显示 ID 为 10 的图表的详细信息)
- 创建图表:“Create a new bar chart using dataset 3”(使用数据集 3 创建一个新的条形图)
- 更新图表:“Update chart 5 to use a line visualization instead of bar”(更新图表 5,使用折线图可视化而不是条形图)
- 删除图表:“Delete chart with ID 12”(删除 ID 为 12 的图表)
数据库和数据集操作
- 列出数据库:“Show me all databases connected to Superset”(显示所有连接到 Superset 的数据库)
- 列出数据集:“What datasets are available in my Superset instance?”(我的 Superset 实例中有哪些数据集可用?)
- 获取数据库表:“What tables are available in database with ID 1?”(ID 为 1 的数据库中有哪些表可用?)
- 执行 SQL:“Run this SQL query on database 1: SELECT * FROM users LIMIT 10”(在数据库 1 上运行此 SQL 查询:SELECT * FROM users LIMIT 10)
- 创建数据集:“Create a new dataset from table 'customers' in database 2”(从数据库 2 中的表“customers”创建一个新的数据集)
- 更新数据库:“Update the connection settings for database 3”(更新数据库 3 的连接设置)
- 删除数据库:“Delete database connection with ID 4”(删除 ID 为 4 的数据库连接)
- 验证 SQL:“Is this SQL valid for database 2: SELECT * FROM customers JOIN orders”(此 SQL 对数据库 2 是否有效:SELECT * FROM customers JOIN orders)
- 获取数据库目录:“Show me the catalogs available in database 1”(显示数据库 1 中可用的目录)
- 获取数据库函数:“What functions are available in database 2?”(数据库 2 中有哪些函数可用?)
- 检查相关对象:“What dashboards and charts use database 1?”(哪些仪表板和图表使用数据库 1?)
SQL Lab 功能
- 执行查询:“Run this SQL query: SELECT COUNT() FROM orders”(运行此 SQL 查询:SELECT COUNT() FROM orders)
- 格式化 SQL:“Format this SQL query: SELECT id,name,age FROM users WHERE age>21”(格式化此 SQL 查询:SELECT id,name,age FROM users WHERE age>21)
- 估计查询成本:“Estimate the cost of this query: SELECT * FROM large_table”(估计此查询的成本:SELECT * FROM large_table)
- 获取已保存的查询:“Show me all my saved SQL queries”(显示我所有已保存的 SQL 查询)
- 获取查询结果:“Get the results of query with key 'abc123'”(获取密钥为“abc123”的查询结果)
用户和系统信息
- 查看用户信息:“Who am I logged in as?”(我以什么身份登录?)
- 获取用户角色:“What roles do I have in Superset?”(我在 Superset 中有哪些角色?)
- 查看最近的活动:“Show me recent activity in my Superset instance”(显示我的 Superset 实例中的最近活动)
- 获取菜单数据:“What menu items do I have access to?”(我可以访问哪些菜单项?)
- 获取基本 URL:“What is the URL of the Superset instance I'm connected to?”(我连接到的 Superset 实例的 URL 是什么?)
标签管理
- 列出标签:“Show me all tags in my Superset instance”(显示我的 Superset 实例中的所有标签)
- 创建标签:“Create a new tag called 'Finance'”(创建一个名为“Finance”的新标签)
- 删除标签:“Delete the tag with ID 5”(删除 ID 为 5 的标签)
- 标记对象:“Add the tag 'Finance' to dashboard 3”(将标签“Finance”添加到仪表板 3)
- 移除标签:“Remove the tag 'Finance' from chart 7”(从图表 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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。