关于 DBHub Analytics
DBHub Analytics 是开源 MCP 服务,通过统一接口将 AI 助手连接到云数据仓库和关系数据库。它结合模式浏览与 SQL 工具,并提供只读模式、行数限制和查询超时保护。
主要功能
- 01连接七种数据库系统
- 02通过 TOML 连接多个数据库
- 03浏览目录、模式和表
- 04以只读模式和行数限制运行 SQL
- 05定义可复用的参数化 SQL 工具
- 06使用 SSH 隧道和 SSL/TLS
适用场景
- 01查询 Databricks 或 BigQuery 数据以进行分析
- 02浏览模式并诊断数据库问题
- 03安全查询生产只读副本
- 04对比多个数据库中的数据洞察
MCP 相关
向 MCP 客户端提供 SQL 执行、数据库对象搜索和可配置的自定义工具。它通过 DSN 或多数据库 TOML 配置连接支持的数据库。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y dbhub-analyticsDSN密钥Database connection string (e.g., postgres://user:pass@host:5432/db)DB_TYPEDatabase type: postgres, mysql, mariadb, sqlserver, sqlite, databricks, bigqueryDB_HOSTDatabase hostnameDB_PORTDatabase portDB_USERDatabase usernameDB_PASSWORD密钥Database passwordDB_NAMEDatabase name or SQLite file pathTRANSPORTTransport mode: stdio or httpPORTHTTP server port (default: 8080)IDInstance identifier for tool namesSSH_HOSTSSH server hostnameSSH_PORTSSH server port (default: 22)SSH_USERSSH usernameSSH_PASSWORD密钥SSH passwordSSH_KEY密钥Path to SSH private keySSH_PASSPHRASE密钥SSH key passphrase本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
DBHub Analytics
适用于 Databricks、Google BigQuery、PostgreSQL、MySQL、SQL Server、SQLite、MariaDB 的通用数据库 MCP 服务
什么是 DBHub Analytics?
DBHub Analytics 是一款开源的 MCP(Model Context Protocol) 服务,可将 Claude Desktop、Claude Code、Cursor、VS Code Copilot 等 AI 助手和其他兼容 MCP 的客户端连接到你的数据库。通过统一接口查询 Databricks SQL 仓库、Google BigQuery 数据集、PostgreSQL、MySQL 等数据库。
+------------------+ +--------------+ +------------------+
| | | | | |
| Claude Desktop +--->+ +--->+ PostgreSQL |
| | | | | |
| Claude Code +--->+ +--->+ SQL Server |
| | | DBHub | | |
| Cursor +--->+ Analytics +--->+ SQLite |
| | | | | |
| VS Code +--->+ +--->+ MySQL |
| | | | | |
| Copilot CLI +--->+ +--->+ MariaDB |
| | | | | |
| | | +--->+ Databricks |
| | | | | |
| | | +--->+ BigQuery |
| | | | | |
+------------------+ +--------------+ +------------------+
MCP Clients MCP Server Databases
主要功能
- 云数据仓库:连接 Databricks SQL 和 Google BigQuery,满足分析工作负载需求
- 传统数据库:全面支持 PostgreSQL、MySQL、MariaDB、SQL Server、SQLite
- 多数据库:通过单个 TOML 配置文件同时连接多个数据库
- 架构浏览器:渐进式展示目录、数据集、架构、表和列
- 安全防护:通过只读模式、行数限制和查询超时,防止操作失控
- 安全访问:支持 SSH 隧道、SSL/TLS 加密和服务账号身份验证
- 零配置:只需提供 DSN,无需安装驱动或进行复杂设置
支持的数据库
| 数据库 | DSN 协议 | 状态 |
|---|---|---|
| PostgreSQL | postgres:// | 稳定 |
| MySQL | mysql:// | 稳定 |
| MariaDB | mariadb:// | 稳定 |
| SQL Server | sqlserver:// | 稳定 |
| SQLite | sqlite:/// | 稳定 |
| Databricks SQL | databricks:// | 稳定 |
| Google BigQuery | bigquery:// | 稳定 |
MCP 工具
| 工具 | 描述 |
|---|---|
execute_sql | 执行 SQL 查询,并强制启用只读限制和行数限制 |
search_objects | 浏览目录、架构、表、列、索引和例程 |
| 自定义工具 | 在 dbhub.toml 中定义可重复使用、带参数的 SQL 查询 |
快速开始
NPM(推荐)
npx dbhub-analytics --dsn "postgres://user:password@localhost:5432/dbname"
Databricks SQL
npx dbhub-analytics --dsn "databricks://token:[email protected]/sql/2.0/warehouses/your_warehouse_id"
Google BigQuery
npx dbhub-analytics --dsn "bigquery://your-gcp-project/your_dataset?keyFile=/path/to/service-account.json&location=US"
Docker
docker run --rm --init \
--name dbhub-analytics \
--publish 8080:8080 \
amansingh63/dbhub-analytics \
--transport http \
--port 8080 \
--dsn "postgres://user:password@localhost:5432/dbname"
演示模式
npx dbhub-analytics --demo
连接到 AI 助手
Claude Desktop / Claude Code
添加到 claude_desktop_config.json 或 .mcp.json:
{
"mcpServers": {
"dbhub-analytics": {
"command": "npx",
"args": ["-y", "dbhub-analytics", "--dsn", "bigquery://your-project/your_dataset?keyFile=/path/to/sa.json&location=US"]
}
}
}
GitHub Copilot(VS Code)
添加到 .vscode/mcp.json:
{
"servers": {
"dbhub-analytics": {
"command": "npx",
"args": ["-y", "dbhub-analytics", "--dsn", "postgres://user:pass@localhost:5432/dbname"]
}
}
}
Cursor
添加到 Cursor MCP 设置(~/.cursor/mcp.json):
{
"mcpServers": {
"dbhub-analytics": {
"command": "npx",
"args": ["-y", "dbhub-analytics", "--dsn", "databricks://token:YOUR_TOKEN@host/sql/2.0/warehouses/ID"]
}
}
}
Windsurf
添加到 Windsurf MCP 配置(~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"dbhub-analytics": {
"command": "npx",
"args": ["-y", "dbhub-analytics", "--dsn", "mysql://user:pass@localhost:3306/dbname"]
}
}
}
通过 TOML 配置连接多个数据库
如需连接多个数据库,可使用 TOML 配置文件,并搭配上述任一客户端:
{
"mcpServers": {
"dbhub-analytics": {
"command": "npx",
"args": ["-y", "dbhub-analytics", "--config", "/path/to/dbhub.toml"]
}
}
}
配置
DSN 连接字符串
| 数据库 | 格式 |
|---|---|
| PostgreSQL | postgres://user:pass@host:5432/dbname?sslmode=require |
| MySQL | mysql://user:pass@host:3306/dbname |
| MariaDB | mariadb://user:pass@host:3306/dbname |
| SQL Server | sqlserver://user:pass@host:1433/dbname |
| SQLite | sqlite:///path/to/file.db 或 sqlite:///:memory: |
| Databricks | databricks://token:TOKEN@host/sql/2.0/warehouses/ID?catalog=CAT&schema=SCH |
| BigQuery | bigquery://PROJECT_ID/DATASET?keyFile=/path/to/key.json&location=US |
多数据库设置(TOML)
同时连接多个数据库。创建一个 dbhub.toml 文件:
[[sources]]
id = "databricks_prod"
type = "databricks"
host = "adb-xxx.azuredatabricks.net"
password = "dapi..."
path = "/sql/2.0/warehouses/abc123"
[[sources]]
id = "bigquery_analytics"
type = "bigquery"
project = "my-gcp-project"
database = "analytics_dataset"
location = "US"
[[sources]]
id = "postgres_prod"
type = "postgres"
host = "localhost"
port = 5432
database = "production"
user = "dbuser"
password = "secret"
然后运行:
npx dbhub-analytics --config dbhub.toml
使用场景
- 数据分析师:用自然语言让 Claude 查询 Databricks 或 BigQuery 数据仓库
- 后端工程师:探索数据库架构、运行诊断查询,并通过 AI 调试问题
- DevOps/SRE:通过只读模式和行数限制,安全地连接生产只读副本
- 数据科学家:同时查询多个数据库——跨 PostgreSQL 和 BigQuery 汇总分析结果
开发
# Install dependencies
pnpm install
# Run in development mode
pnpm dev
# Build for production
pnpm build
# Run tests
pnpm test
致谢
本项目基于 Bytebase 开发的 DBHub 构建。Bytebase 是一个开源数据库 DevSecOps 平台。本项目采用 MIT 许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。