mcpField
D
DBHub Analytics

DBHub Analytics

本地服务
github.com/amansingh63数据库030 周前更新

关于 DBHub Analytics

DBHub Analytics 是开源 MCP 服务,通过统一接口将 AI 助手连接到云数据仓库和关系数据库。它结合模式浏览与 SQL 工具,并提供只读模式、行数限制和查询超时保护。

主要功能

  1. 01连接七种数据库系统
  2. 02通过 TOML 连接多个数据库
  3. 03浏览目录、模式和表
  4. 04以只读模式和行数限制运行 SQL
  5. 05定义可复用的参数化 SQL 工具
  6. 06使用 SSH 隧道和 SSL/TLS

适用场景

  1. 01查询 Databricks 或 BigQuery 数据以进行分析
  2. 02浏览模式并诊断数据库问题
  3. 03安全查询生产只读副本
  4. 04对比多个数据库中的数据洞察

MCP 相关

向 MCP 客户端提供 SQL 执行、数据库对象搜索和可配置的自定义工具。它通过 DSN 或多数据库 TOML 配置连接支持的数据库。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"amansingh63-dbhub-analytics": {
"command": "npx",
"args": [
"-y",
"dbhub-analytics"
],
"env": {
"DSN": "<DSN>",
"DB_TYPE": "<DB_TYPE>",
"DB_HOST": "<DB_HOST>",
"DB_PORT": "<DB_PORT>",
"DB_USER": "<DB_USER>",
"DB_PASSWORD": "<DB_PASSWORD>",
"DB_NAME": "<DB_NAME>",
"TRANSPORT": "<TRANSPORT>",
"PORT": "<PORT>",
"ID": "<ID>",
"SSH_HOST": "<SSH_HOST>",
"SSH_PORT": "<SSH_PORT>",
"SSH_USER": "<SSH_USER>",
"SSH_PASSWORD": "<SSH_PASSWORD>",
"SSH_KEY": "<SSH_KEY>",
"SSH_PASSPHRASE": "<SSH_PASSPHRASE>"
}
}
}
}
启动命令npx -y dbhub-analytics
需要配置的环境变量
DSN密钥Database connection string (e.g., postgres://user:pass@host:5432/db)
DB_TYPEDatabase type: postgres, mysql, mariadb, sqlserver, sqlite, databricks, bigquery
DB_HOSTDatabase hostname
DB_PORTDatabase port
DB_USERDatabase username
DB_PASSWORD密钥Database password
DB_NAMEDatabase name or SQLite file path
TRANSPORTTransport mode: stdio or http
PORTHTTP server port (default: 8080)
IDInstance identifier for tool names
SSH_HOSTSSH server hostname
SSH_PORTSSH server port (default: 22)
SSH_USERSSH username
SSH_PASSWORD密钥SSH password
SSH_KEY密钥Path to SSH private key
SSH_PASSPHRASE密钥SSH key passphrase

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmdbhub-analytics0.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

DBHub Analytics

适用于 Databricks、Google BigQuery、PostgreSQL、MySQL、SQL Server、SQLite、MariaDB 的通用数据库 MCP 服务

npm version License: MIT

基于 Bytebase 的 DBHub 构建。

什么是 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 协议状态
PostgreSQLpostgres://稳定
MySQLmysql://稳定
MariaDBmariadb://稳定
SQL Serversqlserver://稳定
SQLitesqlite:///稳定
Databricks SQLdatabricks://稳定
Google BigQuerybigquery://稳定

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 连接字符串
数据库格式
PostgreSQLpostgres://user:pass@host:5432/dbname?sslmode=require
MySQLmysql://user:pass@host:3306/dbname
MariaDBmariadb://user:pass@host:3306/dbname
SQL Serversqlserver://user:pass@host:1433/dbname
SQLitesqlite:///path/to/file.db 或 sqlite:///:memory:
Databricksdatabricks://token:TOKEN@host/sql/2.0/warehouses/ID?catalog=CAT&schema=SCH
BigQuerybigquery://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 许可证。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。