# MCP连接器
## 基本信息
- Slug: `aptro-superset-mcp`
- Source: modelscope
- Publisher: @aptro/superset-mcp
- Categories: databases / monitoring
- Hosted: No
- License: MIT License
- Source URL: https://www.modelscope.cn/mcp/servers/@aptro/superset-mcp
## 简介
MCP服务器允许AI代理以编程方式连接到并控制Apache Superset实例，使用户能够通过自然语言交互管理仪表板、图表、数据库、数据集以及运行SQL查询。
## 安装提示

```bash
npx -y @smithery/cli install @aptro/superset-mcp --client claude
```

## MCP Server 详情

# Superset MCP 集成
[![smithery 徽章](https://smithery.ai/badge/@aptro/superset-mcp)](https://smithery.ai/server/@aptro/superset-mcp)

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

## 设置说明

### 通过 Smithery 安装

要通过 [Smithery](https://smithery.ai/server/@aptro/superset-mcp) 自动安装 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 运行后，你应该可以通过 http://localhost:8088 使用默认凭据访问它：
   - 用户名: 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 一起使用

设置完成后，你可以通过 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` - 验证针对数据库的任意 SQL
- `superset_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` - 将查询结果导出为 CSV
- `superset_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

