mcp超集
全面 模型上下文协议(MCP) 服务器 Apache超级集 。通过137个工具,让AI助手(Claude、GPT等)完全控制您的Superset实例——仪表板、图表、数据集、SQL Lab、用户、角色、RLS等。
与其他超级MCP服务器的比较
特点
mcp超集
超集mcp
超级集mcp(Winding2020)
超集mcp服务器
工具总数
137
60
31
4
语言
Python
Python
TypeScript
TypeScript
仪表板CRUD
15个工具
5
8
-
仪表板原生过滤器
5工具
-
-
-
图表CRUD
11个工具
5
7
-
数据库工具
18工具
14
1
1
数据集工具
11个工具
3
7
-
SQL实验室
5个工具
7
1
1
安全(用户/角色)
26工具
2
-
-
行级安全性
5工具
-
-
-
群组
9工具
-
-
-
权限审核
是
-
-
-
仪表板访问权限授予/撤销
是
-
-
-
自动数据源_访问同步
是
-
-
-
报告和注释
10个工具
-
-
-
标签
7工具
7
-
-
资产导出/导入
是
-
-
-
安全:确认标志
14种类型
-
-
-
安全:DDL/DML阻塞
是
-
-
-
安全:系统角色保护
是
-
-
-
传输
HTTP、SSE、stdio
stdio
std io
stdio
身份验证方法
JWT+自动刷新+CSRF
用户名/密码+令牌文件
用户名/口令或令牌
LDAP
超级集版本
6.0.1
4.1.1
未指定
未指定
带参数的CLI
--host --port --transport
-
-
-
PyPI包
mcp-superset
superset-mcp
superset-mcp (npm)
-
uvx支持
是
-
-
-
许可证
MIT
MIT
-
Apache 2.0
GitHub之星
新
170
21
5
主要差异化因素:
仅MCP服务器具有 全面安全管理 (用户、角色、RLS、组、权限审核)
只有一个 内置安全验证 (确认标志,DDL/DML阻塞)
只有一个 仪表板本机筛选器管理
只有一个 自动数据源访问同步
只有一个 多种运输方式 (HTTP、SSE、stdio)
只有一个 可配置CLI (--host, --port, --transport, --env-file)
特性
137个MCP工具 涵盖完整的Superset REST API
仪表板管理 --CRUD、复制、发布/取消发布、导出/导入、嵌入式模式、本机过滤器
图表管理 --CRUD、复制、数据检索、导出/导入、缓存预热
数据库管理 --CRUD、连接测试、模式/表自检、SQL验证
数据集管理 --CRUD、复制、模式刷新、导出/导入
SQL实验室 --查询执行、格式化、成本估算、结果和CSV导出
安全 --用户、角色、权限、行级安全性(RLS)、组
门禁自动化 --通过自动数据源权限同步授予/撤销仪表板访问权限
审计 --综合权限矩阵(用户x仪表板x数据集x RLS)
标签、报告、注释、保存的查询 --完整CRUD
资产导出/导入 --完整实例备份和还原
内置安全 --破坏性操作的确认标志,SQL Lab中的DDL/DML阻塞
JWT 认证 具有自动令牌刷新和CSRF处理功能
可流式传输HTTP、SSE和stdio
快速开始
安装
复制 # From PyPI
pip install mcp-superset
# With uv (recommended)
uv pip install mcp-superset
# Run without installing (uvx)
uvx mcp-superset
配置
创造一个 .env 当前目录中的文件,或设置环境变量:
复制 # Required
SUPERSET_BASE_URL=https://superset.example.com
SUPERSET_USERNAME=admin
SUPERSET_PASSWORD=your_password
# Optional
SUPERSET_AUTH_PROVIDER=db # db (default) or ldap
SUPERSET_MCP_HOST=127.0.0.1 # Server host (default: 127.0.0.1)
SUPERSET_MCP_PORT=8001 # Server port (default: 8001)
SUPERSET_MCP_TRANSPORT=streamable-http # streamable-http (default), sse, or stdio
会话cookie身份验证(SSO/Outhor)
当Superset位于SSO(OAuth/OIDC/SAML)之后时,通过REST进行密码登录
API不可用。相反,请提供浏览器 会话cookie :
变量
描述
SUPERSET_SESSION_COOKIE
从浏览器复制的会话cookie值。设置后,将使用此模式而不是用户名/密码。
SUPERSET_SESSION_COOKIE_NAME
Cookie名称。默认为 session.
从浏览器的开发工具(应用程序)复制cookie→ 曲奇饼→
您的Superset域名→ session).MCP服务器在每次请求时都会发送它
并用它获取CSRF令牌。会话无法在服务器端续订,
因此,当它过期时,您必须粘贴一个新值并重新启动服务器。
在使用此模式之前,有两件事值得检查:
cookie名称并不总是 session. 设置的实例
SESSION_COOKIE_NAME 在 superset_config.py 使用其他名称(s,为
示例)。使用开发工具中显示的名称并设置 SUPERSET_SESSION_COOKIE_NAME
因此。
实例必须接受上的会话身份验证 /api/v1/. 在哪里
REST API仅配置为JWT,请求携带有效的会话cookie
仍然返回 401 {"msg": "Missing Authorization Header"} -刷新
cookie没有帮助,JWT模式是唯一的选择。
将cookie视为凭证:它授予对Superset的完全访问权限
考虑会话的生命周期。把它放进去 .env (这是
gitignored),不在shell历史记录或已提交的配置中。
跑步
复制 # Using CLI (after pip install)
mcp-superset
# Run without installing
uvx mcp-superset
# Using Python module
python -m mcp_superset
# With uv from source
uv run mcp-superset
# With custom settings
mcp-superset --host 0.0.0.0 --port 9000 --transport sse
# With custom .env file
mcp-superset --env-file /path/to/.env
# Using stdio transport (for Claude Desktop, Cursor, etc.)
mcp-superset --transport stdio
CLI选项
选项
默认值
环境变量
描述
--host
127.0.0.1
SUPERSET_MCP_HOST
服务器绑定地址
--port
8001
SUPERSET_MCP_PORT
服务器绑定端口
--transport
streamable-http
SUPERSET_MCP_TRANSPORT
运输: streamable-http, sse, stdio
--env-file
自动检测
--
路径 .env 文件
--version
--
--
显示版本并退出
连接到MCP客户端
Claude 代码
添加到您的项目 .mcp.json:
复制 {
"mcpServers": {
"superset": {
"type": "http",
"url": "http://localhost:8001/mcp"
}
}
}
然后启动服务器: mcp-superset 或 uvx mcp-superset.
Claude 桌面版
增添 claude_desktop_config.json:
复制 {
"mcpServers": {
"superset": {
"command": "uvx",
"args": ["mcp-superset", "--transport", "stdio"],
"env": {
"SUPERSET_BASE_URL": "https://superset.example.com",
"SUPERSET_USERNAME": "admin",
"SUPERSET_PASSWORD": "your_password"
}
}
}
}
光标/风帆
复制 {
"mcpServers": {
"superset": {
"command": "uvx",
"args": ["mcp-superset", "--transport", "stdio"],
"env": {
"SUPERSET_BASE_URL": "https://superset.example.com",
"SUPERSET_USERNAME": "admin",
"SUPERSET_PASSWORD": "your_password"
}
}
}
}
其他MCP客户端
任何兼容MCP的客户端都可以通过以下方式连接:
流式HTTP : http://<host>:<port>/mcp
上海证券交易所 : http://<host>:<port>/sse
标准 :管道至 mcp-superset --transport stdio
可用工具(137)
仪表板(15个工具)
工具
说明
superset_dashboard_list
列出具有过滤和分页功能的仪表板
superset_dashboard_get
按ID获取仪表板详细信息
superset_dashboard_create
创建新仪表板
superset_dashboard_update
更新仪表板属性
superset_dashboard_delete
删除仪表板(需要确认)
superset_dashboard_copy
复制仪表板
superset_dashboard_publish
发布仪表板草稿
superset_dashboard_unpublish
取消发布仪表板
superset_dashboard_charts
在仪表板中列出图表
superset_dashboard_datasets
列出仪表板使用的数据集
superset_dashboard_export
将仪表板导出为ZIP(base64)
superset_dashboard_import
从ZIP文件导入仪表板
superset_dashboard_embedded_get
获取嵌入式配置
superset_dashboard_embedded_set
使用允许的域启用嵌入式模式
superset_dashboard_embedded_delete
禁用嵌入式模式
仪表板过滤器(5个工具)
工具
说明
superset_dashboard_filter_list
在仪表板上列出本机筛选器
superset_dashboard_filter_add
添加本机筛选器(自动生成正确的ID格式)
superset_dashboard_filter_update
更新现有的本机筛选器
superset_dashboard_filter_delete
删除本机筛选器(需要确认)
superset_dashboard_filter_reset
删除所有过滤器(需要确认)
图表(11个工具)
工具
说明
superset_chart_list
列出具有过滤和分页功能的图表
superset_chart_get
按ID获取图表详细信息
superset_chart_create
创建新图表
superset_chart_update
更新图表属性
superset_chart_delete
删除图表(需要确认)
superset_chart_copy
复制图表
superset_chart_data
执行图表查询并获取数据
superset_chart_get_data
从已保存的图表中获取数据
superset_chart_export
将图表导出为ZIP(base64)
superset_chart_import
从ZIP文件导入图表
superset_chart_cache_warmup
预热图表缓存
数据库(18个工具)
工具
说明
superset_database_list
列出数据库连接
superset_database_get
获取数据库详细信息
superset_database_create
注册新的数据库连接
superset_database_update
更新数据库设置
superset_database_delete
删除数据库(需要确认)
superset_database_test_connection
测试数据库连接
superset_database_schemas
列出数据库中的架构
superset_database_tables
列出架构中的表
superset_database_catalogs
列出目录(适用于多目录数据库)
superset_database_connection_info
获取连接字符串信息
superset_database_function_names
列出可用的SQL函数
superset_database_related_objects
使用此数据库查找图表/数据集
superset_database_validate_sql
验证SQL语法
superset_database_validate_parameters
验证连接参数
superset_database_select_star
为表生成SELECT*查询
superset_database_table_metadata
获取表列和索引元数据
superset_database_export
将数据库配置导出为ZIP
superset_database_available_engines
列出支持的数据库引擎
数据集(11个工具)
工具
说明
superset_dataset_list
列出具有过滤功能的数据集
superset_dataset_get
获取数据集详细信息,包括列和指标
superset_dataset_create
从表或SQL查询创建数据集
superset_dataset_update
更新数据集属性
superset_dataset_delete
删除数据集(需要确认)
superset_dataset_duplicate
复制数据集
superset_dataset_refresh_schema
从源刷新列
superset_dataset_related_objects
使用此数据集查找图表
superset_dataset_export
将数据集导出为ZIP
superset_dataset_import
从ZIP导入数据集
superset_dataset_get_or_create
获取现有数据集或创建新数据集
SQL实验室和查询(13个工具)
工具
说明
superset_sqllab_execute
执行SQL查询(仅限SELECT)
superset_sqllab_format_sql
格式化/美化SQL
superset_sqllab_results
获取已完成查询的结果
superset_sqllab_estimate_cost
估算查询执行成本
superset_sqllab_export_csv
将查询结果导出为CSV
superset_query_list
列出已执行的查询
superset_query_get
获取查询详细信息和结果
superset_query_stop
停止正在运行的查询
superset_saved_query_list
列出已保存的查询
superset_saved_query_create
保存新查询
superset_saved_query_get
获取已保存的查询详细信息
superset_saved_query_update
更新已保存的查询
superset_saved_query_delete
删除已保存的查询(需要确认)
安全和访问控制(26个工具)
工具
说明
superset_get_current_user
获取当前经过身份验证的用户信息
superset_get_current_user_roles
获取当前用户的角色
superset_user_list
列出具有筛选功能的用户
superset_user_get
获取用户详细信息
superset_user_create
创建新用户
superset_user_update
更新用户属性
superset_user_delete
删除用户(需要确认)
superset_role_list
列出角色
superset_role_get
获取角色详细信息
superset_role_create
创建新角色
superset_role_update
更新角色名称/描述
superset_role_delete
删除角色(需要确认,阻止系统角色)
superset_permission_list
列出所有可用权限
superset_role_permissions_get
获取分配给角色的权限
superset_role_permission_add
设置角色权限(完全替换,需要确认)
superset_role_copy_permissions
将所有权限从一个角色复制到另一个角色
superset_dashboard_grant_role_access
授予角色访问仪表板及其数据集的权限
superset_dashboard_revoke_role_access
撤销角色对仪表板数据集的访问权限
superset_bulk_user_role_add
为多个用户添加角色(按ID或按当前角色)
superset_bulk_user_role_remove
从多个用户中删除角色
superset_bulk_user_role_replace
为所有匹配的用户替换一个角色
superset_rls_list
列出行级安全规则
superset_rls_get
获取RLS规则详细信息
superset_rls_create
创建RLS规则
superset_rls_update
更新RLS规则(需要角色和表)
superset_rls_delete
删除RLS规则(需要确认)
组(9个工具)
工具
说明
superset_group_list
列出组
superset_group_get
获取包含成员和角色的组详细信息
superset_group_create
创建新组
superset_group_update
更新组名
superset_group_delete
删除组
superset_group_add_users
将用户添加到组
superset_group_remove_users
从组中删除用户
superset_group_add_roles
向组中添加角色
superset_group_remove_roles
从组中删除角色
标签(7工具)
工具
说明
superset_tag_list
列表标签
superset_tag_get
获取标签详细信息
superset_tag_create
创建标签(可选择绑定到对象)
superset_tag_update
更新标签
superset_tag_delete
删除标签(需要确认)
superset_tag_get_objects
列出与标记关联的对象
superset_tag_bulk_create
一次创建多个标签
系统和报告(21个工具)
工具
说明
superset_report_list
列出计划报告
superset_report_get
获取报告详细信息
superset_report_create
创建计划报告
superset_report_update
更新报告
superset_report_delete
删除报告(需要确认)
superset_annotation_layer_list
列出注释图层
superset_annotation_layer_get
获取注释层详细信息
superset_annotation_layer_create
创建注释图层
superset_annotation_layer_update
更新注释图层
superset_annotation_layer_delete
删除注释图层(需要确认)
superset_annotation_list
列出图层中的注释
superset_annotation_get
获取注释详细信息
superset_annotation_create
创建注释
superset_annotation_update
更新注释
superset_annotation_delete
删除注释(需要确认)
superset_recent_activity
获取最近的用户活动
superset_log_list
获取审核日志
superset_get_menu
获取Superset菜单结构
superset_get_base_url
获取配置的Superset基本URL
superset_assets_export
将所有Superset资产导出为ZIP
superset_assets_import
从ZIP文件导入资产
审计(1个工具)
工具
说明
superset_permissions_audit
生成全面的权限矩阵
安全功能
该服务器包括广泛的内置保护,以防止意外数据丢失或配置错误。
确认标志
破坏性操作需要明确的确认参数:
操作
必填标志
显示内容
删除仪表板
confirm_delete=True
仪表板名称、段塞、图表计数
删除图表
confirm_delete=True
链接仪表板
删除数据集
confirm_delete=True
受影响的图表和仪表板
删除数据库
confirm_delete=True
受影响的数据集、图表
删除RLS规则
confirm_delete=True
条款、角色、数据集
删除角色
confirm_delete=True
阻止系统角色
删除用户
confirm_delete=True
阻止删除服务帐户
更新图表参数
confirm_params_replace=True
—
更新数据集列
confirm_columns_replace=True
—
更新数据库URI
confirm_uri_change=True
受影响的图表/仪表板
更新用户角色
confirm_roles_replace=True
当前角色
设置角色权限
confirm_full_replace=True
—
授予仪表板访问权限
confirm_grant=True
试运行结果
撤销仪表板访问权限
confirm_revoke=True
试运行结果
批量向用户添加角色
confirm=True
用户数、样本列表
从用户中批量删除角色
confirm=True
用户计数,防止上次角色删除
批量替换角色
confirm=True
旧/新角色名称、用户数
复制角色权限
confirm=True
源/目标权限计数
自动保护
DDL/DML阻塞 --SQL实验室拒绝 DROP, DELETE, UPDATE, INSERT, TRUNCATE, ALTER, CREATE, GRANT, REVOKE (检查前删除SQL注释)
系统角色保护 --无法删除管理员、Alpha、Gamma、公共角色
服务帐户保护 --无法删除MCP服务用户
RLS安全 — rls_update 两者都需要 roles 和 tables 防止无声数据擦除
本机筛选器ID --自动生成于 NATIVE_FILTER-<uuid> 格式
图表验证 --不接受图表 granularity_sqla (仪表板时间过滤器需要)
自动同步 --当仪表板角色更改时,datasource_access权限会自动同步
建筑学
复制 superset-mcp/
├── pyproject.toml # Package configuration
├── .env.example # Environment variable template
├── LICENSE # MIT License
├── README.md # This file
├── README_RU.md # Russian documentation
├── CHANGELOG.md # Version history
└── src/mcp_superset/
├── __init__.py # Package init with __version__
├── __main__.py # CLI entry point with argparse
├── server.py # FastMCP server setup and configuration
├── auth.py # JWT authentication (login, refresh, CSRF)
├── client.py # HTTP client (auto-auth, retry, RISON pagination)
├── models.py # Pydantic models
└── tools/
├── __init__.py # register_all_tools()
├── helpers.py # Auto-sync datasource_access logic
├── dashboards.py # Dashboard + filter tools (20)
├── charts.py # Chart tools (11)
├── databases.py # Database tools (18)
├── datasets.py # Dataset tools (11)
├── queries.py # SQL Lab + saved query tools (13)
├── security.py # User, role, permission, RLS, bulk operations (26)
├── groups.py # Group management tools (9)
├── audit.py # Permissions audit tool (1)
├── tags.py # Tag tools (7)
└── system.py # Reports, annotations, logs, assets (21)
超级集兼容性
经过测试 :Apache超级集6.0.1
认证 :JWT(推荐)-API密钥(sst_*)未在Superset中实现
必需的Superset用户 :管理员角色(用于完全访问API)
推荐的超级设置配置
添加到您的 superset_config.py:
复制 from datetime import timedelta
# Increase JWT token lifetime (default is 15 min)
JWT_ACCESS_TOKEN_EXPIRES = timedelta(hours=1)
JWT_REFRESH_TOKEN_EXPIRES = timedelta(days=30)
# Max API page size
FAB_API_MAX_PAGE_SIZE = 100
发展
设置
复制 git clone https://github.com/bintocher/mcp-superset.git
cd superset-mcp
# Create virtual environment and install in editable mode
uv venv
uv pip install -e ".[dev]"
# Copy and configure .env
cp .env.example .env
# Edit .env with your Superset credentials
本地运行
复制 # Run from source
uv run python -m mcp_superset
# Or with CLI
uv run mcp-superset --port 8001
运行测试
复制 uv run python test_all_tools.py
已知超级集合API测验
这些由MCP服务器自动处理,但在调试时了解这些信息很有用:
Quirk
详细信息
RISON分页
超级集忽略 page/page_size 作为查询参数;必须使用RISON q 参数
需要CSRF
所有POST/PUT/DELETE都需要 X-CSRFToken header+会话cookie
需要引用器
SQL Lab返回403,但没有 Referer 头球
标记API返回 {}
标签创建不返回ID;必须查询列表
标签更新需求 name
即使未更改,字段也是必填的
角色权限替换
POST /security/roles/{id}/permissions 替换所有权限
RLS更新替换
PUT /rowlevelsecurity/{id} 替换所有提供的字段
数据集更新列
PUT /dataset/{id} 随着 columns 替换所有列
仪表板副本
需要 json_metadata (可以是 "{}")
本机筛选器ID
必须是 NATIVE_FILTER-<uuid> 格式
filter_time 需求 granularity_sqla
没有它的图表会默默地忽略时间过滤器
数字格式
SMART_NUMBER 缩写;使用 ,d 或 ,.2f 为了准确
许可证
麻省理工学院 --斯坦尼斯拉夫·切尔诺夫(@宾托彻 )