小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
MIT License
22
最近更新:18天前

通过 Superset MCP 服务器连接 50 多种数据存储。可与 OpenAI Agent SDK、Claude 应用、Cursor、Windsurf 搭配使用。

Superset MCP 集成

smithery badge

用于与 Apache Superset 交互的 MCP 服务器,使 AI 代理能够以编程方式连接和控制 Superset 实例。

安装指南

通过 Smithery 安装

通过 Smithery 为 Claude Desktop 自动安装 Superset 集成:

bash 复制代码
npx -y @smithery/cli install @aptro/superset-mcp --client claude  

手动安装

  1. 本地设置 Superset
    运行以下脚本在本地启动 Superset:

    bash 复制代码
    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:

    • 用户名:admin
    • 密码:admin
  2. 克隆本仓库
    将本仓库克隆到本地机器。

  3. 配置环境变量
    在根目录创建 .env 文件并填写 Superset 凭据:

    复制代码
    SUPERSET_BASE_URL=http://localhost:8088  # 替换为你的 Superset URL  
    SUPERSET_USERNAME=your_username  
    SUPERSET_PASSWORD=your_password  
  4. 安装依赖

    bash 复制代码
    uv pip install .  
  5. 为 Claude 安装 MCP 配置
    用于 Claude Desktop 应用:

    bash 复制代码
    mcp install main.py  

Claude 使用方式

设置完成后,可通过自然语言请求与 Superset 实例交互。示例如下:

仪表盘管理

  • 查看仪表盘:"显示所有 Superset 仪表盘"
  • 获取详情:"显示 ID 为 5 的仪表盘详情"
  • 创建仪表盘:"新建标题为'销售概览'的仪表盘"
  • 更新仪表盘:"将仪表盘 3 的标题更新为'销售报告新版'"
  • 删除仪表盘:"删除 ID 为 7 的仪表盘"

图表管理

  • 列出图表:"我的 Superset 实例中有哪些图表?"
  • 图表详情:"显示 ID 为 10 的图表详情"
  • 创建图表:"使用数据集 3 新建柱状图"
  • 更新图表:"将图表 5 从柱状图改为折线图"
  • 删除图表:"删除 ID 为 12 的图表"

数据库与数据集操作

  • 列出数据库:"显示所有连接到 Superset 的数据库"
  • 列出数据集:"我的 Superset 实例中有哪些可用数据集?"
  • 获取数据库表:"数据库 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 标签"
  • 创建标签:"新建名为'财务'的标签"
  • 删除标签:"删除 ID 为 5 的标签"
  • 标记对象:"为仪表盘 3 添加'财务'标签"
  • 移除标签:"从图表 7 移除'财务'标签"

可用 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 - 验证数据库 SQL
  • superset_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 - 将查询结果导出为 CSV
  • superset_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 用户名
SUPERSET_PASSWORD Superset 密码

故障排除

  • 认证问题:检查 .env 文件中的凭据
  • 确保 Superset 已运行且可通过 .env 中的 URL 访问
  • 确认使用兼容的 Superset 版本(测试版本 4.1.1)
  • 检查 MCP 服务器端口未被其他应用占用

安全说明

  • Superset 凭据仅存储在本地 .env 文件
  • 访问令牌存储在项目目录的 .superset_token 文件
  • 所有认证直接在 MCP 服务器与 Superset 实例间进行
  • 凭据不会传输给 Claude 或第三方
  • 生产环境建议使用更安全的认证方式

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

MIT