使用说明
🚀 超级设置MCP服务器(可流式HTTP)
Apache Superset 的 MCP(模型上下文协议)服务器,允许聊天机器人与 Superset 集成,以编程方式创建仪表板、图表和执行 SQL 查询。
✨ 特点
- 📊 仪表板管理 - 列表,获取,创建仪表板并将图表添加到仪表板
- 📈 图表管理 - 列表,获取,创建图表与自动检测方案
- 🗃️ 数据集管理 - 列出数据集和得到列架构
- 🔍 SQL执行 - 直接执行SQL查询到超集数据库
- 🔄 无状态HTTP - 使用流式HTTP传输与Open WebUI兼容
- 🔐 自动身份验证 - 自动登录和刷新令牌到超集
🛠️ 技术
- 运行时:Node.js+TypeScript
- 运输:Express.js+JSON-RPC 2.0
- 协议:MCP(模型上下文协议)
- 客户Axios HTTP 请求
📋 先决条件
- Node.js v18 或更高版本
- Apache Superset 正在运行
- NPM 或 Yarn
⚡ 快速开始
1.克隆和安装依赖项
git clone <repository-url>
cd superset-mcp
npm install
2. 环境配置
翻译文件 .env.example 可 .env 并调整配置:
cp .env.example .env
在文件中填写配置 .env:
# Superset Configuration
SUPERSET_URL=http://localhost:8088
SUPERSET_USERNAME=admin
SUPERSET_PASSWORD=admin
# MCP Server Configuration
MCP_PORT=3000
3.构建和运行
# Build TypeScript
npm run build
# Jalankan server
npm start
或者使用hot-reload进行开发:
npm run dev
4. 服务器验证
Akses健康检查终点:
curl http://localhost:3000/health
预期的回应:
{
"status": "ok",
"server": "superset-mcp",
"version": "1.0.0",
"mode": "stateless",
"tools": ["list_dashboards", "get_dashboard", "create_dashboard", ...]
}
🔌 与 Open WebUI 集成
在Open WebUI中配置
- 打开 管理面板 → 工具 → 工具连接
- 添加新的 MCP 服务器:
- 名字:超级设置MCP
- 类型:MCP(流式HTTP)
- 统一资源定位符:
http://YOUR_SERVER_IP:3000/mcp
- 保存并测试连接
🔧 可用工具
仪表板工具
| 工具 | 描述 |
|---|---|
list_dashboards 获取所有可用的仪表板。 |
|
get_dashboard 仪表板的详细信息包括其中的图表。 |
|
create_dashboard 创建一个新的 Dashboard |
|
add_chart_to_dashboard 将图表添加到仪表板 |
|
add_charts_to_dashboard |
将多个图表添加到仪表板 (推荐) |
图表工具
| 工具 | 描述 |
|---|---|
list_charts 获取所有可用的图表。 |
|
get_chart |
图表配置详情 |
get_chart_data 从图表中获取数据 |
|
create_chart |
创建新图表(手动配置) |
create_chart_auto 使用自动检测方案创建图表 |
数据集工具
| 工具 | 描述 |
|---|---|
list_datasets 获取所有数据集/表 |
|
get_dataset_schema 从数据集获取列定义 |
SQL工具
| 工具 | 描述 |
|---|---|
list_databases 获取所有数据库连接 |
|
execute_sql 执行SQL查询到数据库 |
📚 使用范例
自动检测图表
"Buatkan bar chart untuk dataset sales_data yang menampilkan total revenue per bulan"
AI将使用 create_chart_auto 用于 :
- 分析数据集架构
- 检测时间列 (x_axis)
- 检测指标的数字列
- 创建具有最佳配置的图表
创建多个图表的仪表板
"Buatkan dashboard Sales Overview dengan 3 chart: line chart revenue, pie chart by category, dan table top products"
AI将:
create_dashboard创建一个新的仪表板create_chart_auto(3x) - 创建每个图表add_charts_to_dashboard- 以最佳布局同时添加所有图表
🏗️ Struktur项目
superset-mcp/
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # Express server & MCP tools
│ └── superset-client.ts # Superset API client
├── dist/ # Compiled JavaScript
├── .env # Environment variables
├── .env.example # Example environment
├── package.json
├── tsconfig.json
└── README.md
🔗 API终点
| Endpoint | 方法 | 描述 |
|---|---|---|
/health |
GET | 健康检查 |
/mcp |
POST | MCP JSON-RPC请求 |
/mcp |
GET | SSE流媒体(保持活动) |
/mcp |
DELETE | 会话清理 |
⚙️ 环境变量
| 变量 | 默认 | 描述 |
|---|---|---|
SUPERSET_URL |
http://localhost:8088 |
URL超级集实例 |
SUPERSET_USERNAME |
admin 用户名登录。 |
|
SUPERSET_PASSWORD |
admin 登录的密码。 |
|
MCP_PORT |
3000 MCP服务器端口 |
🐛 故障排除
1.身份验证失败
请确保 credentials 在 .env 没错服务器将在过期时自动刷新令牌。
2.CORS错误
服务器已配置为接受来自所有来源的请求。如果仍然有错误,请确保防火墙没有阻止端口。
3. 图表不显示数据
使用 create_chart_auto 从 create_chart 用于自动检测指标和维度。
📄 许可证
MIT许可证
🤝 贡献
欢迎投稿!请随时打开问题或拉取请求。