Bytebase

DBHub: 扒一扒数据库 MCP Server 背后的设计取舍

Image
原文链接 https://dbhub.ai/blog/postgres-mcp-server-review-dbhub

DBHub 是一个零依赖、省 token 的 MCP server,用来把 AI 助手连接到 PostgreSQL、MySQL、SQL Server、MariaDB 和 SQLite。是 GitHub 官方 MCP 列表里,唯一收录的通用数据库 MCP server。

Image

本文由 DBHub 的维护者亲自撰写。解释 DBHub 背后的设计思路,包括为什么这样做,取舍。以及相比其他方案,它还有哪些不足。

Image

GitHub Stars: 1.8k / 许可: MIT / 语言: TypeScript

Image
设计目标
在设计 DBHub 之前,我们首先问了自己一个问题:
现在,一个数据库 MCP Server 最主要的使用场景到底是什么?
答案是:本地开发。
原因其实很现实:
  1. 大多数开发者的时间,都是在本地写代码、调试数据库(现在往往还会配合 AI 编码助手)。
  2. 本地开发运行在一个相对可信的环境中,因此不太需要担心所谓的「致命三要素攻击(lethal trifecta)」。
  3. 而且本地环境本身是宽容的,就算 AI 写错了代码,把数据库清空了,也通常不是灾难性的后果。
在明确「本地开发是核心场景」之后,DBHub 的设计目标就变得很清晰:
  1. 最小化安装成本。开发者希望尽快开始使用,而不是先安装一整套复杂的软件和依赖。
  2. 尽可能节省 token。MCP 工具本身不应该占用太多上下文空间,token 应该留给真正的代码和查询。
  3. 不强制身份认证。在本地可信环境下,可以跳过复杂的认证机制。
Image
安装
测试环境是 macOS(Apple Silicon),与本系列其他评测保持一致。
DBHub 的启动方式很直接:
npx @bytebase/dbhub@latest --dsn "postgres://user:password@localhost:5432/dbname"
一条命令即可启动,不需要任何配置文件。和 Google 的 MCP Toolbox 不同,DBHub 不要求你在一开始就准备一个 YAML 配置文件。配置文件是可选的,只有在需要更复杂设置时才会用到。对于大多数本地开发场景,直接使用 DSN 就足够了。
如果你只是想先体验 DBHub,而不想立刻准备数据库,也可以使用 demo 模式:
npx @bytebase/dbhub@latest --demo
这会启动一个内置的 SQLite 示例 employee 数据库,很适合用来先熟悉 MCP 的基本交互方式。
Image
工具
DBHub 默认只提供两个内置工具。
第一个是 execute_sql,用来执行 SQL。它支持事务、只读模式以及行数限制。
第二个是 search_objects,用来搜索和浏览数据库结构,包括 schema、表、列、存储过程和索引。
除了这两个内置工具,DBHub 还支持自定义工具。
你可以把常用的 SQL 封装成可复用、参数化的工具,并且对参数类型和值做校验。这样可以让 AI 使用更明确、更受控的操作,而不是随意生成 SQL。
[[tools]]name = "get_active_users"description = "Get active users by department"source = "prod"statement = "SELECT * FROM users WHERE department = $1 AND active = true"
[[tools.parameters]]name = "department"type = "string"description = "Department name"allowed_values = ["engineering", "sales", "support"]
Image
Token 效率
Token 效率是 DBHub 最重要的设计目标之一,主要有两个原因。
第一,对话可以持续更久。在 MCP 中,工具定义本身就会占用 token。工具越多,留给代码、SQL 和对话历史的空间就越少,对话也越容易被压缩。
第二,使用成本更低。大多数 AI 服务都是按 token 计费的。工具定义是一种「固定成本」,每一轮请求都会带上,不管你有没有真正用到这些工具。
最小化工具负载
在默认情况下,DBHub 只加载 2 个内置工具,总共大约 1.4k tokens。
> /context  ⎿      Context Usage     ⛁ ⛀ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁   claude-opus-4-5-20251101 · 70k/200k tokens (35%)     ⛁ ⛀ ⛁ ⛀ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ System prompt: 3.1k tokens (1.6%)     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ System tools: 16.6k tokens (8.3%)     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ MCP tools: 1.4k tokens (0.7%)     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Custom agents: 15 tokens (0.0%)     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Memory files: 2.5k tokens (1.2%)     ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛝ ⛝ ⛝   ⛁ Messages: 1.1k tokens (0.5%)     ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝   ⛶ Free space: 130k (65.1%)     ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝   ⛝ Autocompact buffer: 45.0k tokens (22.5%)
     MCP tools · /mcp     └ mcp__dbhub__execute_sql: 607 tokens     └ mcp__dbhub__search_objects: 817 tokens
如果你只需要执行 SQL,还可以进一步减少 token 占用,只暴露 execute_sql 这一个工具。
[[sources]]id = "prod"dsn = "postgres://..."
[[tools]]name = "execute_sql"source = "prod"
在相同条件下对比其他 MCP Server,可以看到 DBHub 的一个明显特点:它在默认状态下就已经非常轻量,而不是把「瘦身」的负担留给使用者。
Image
* 最小配置是基于要包括 execute_sql 能力,Supabase MCP 需要加载整个 database 功能组。
渐进式信息展开
渐进式展开 (Progressive Disclosure) 是 MCP 最近加入的能力。DBHub 内置的 search_objects 工具支持通过 detail_level 参数控制返回信息的详细程度。
  • names 只返回名称和 schema。
  • summary 在此基础上增加一些基础元数据,比如行数或列数。
  • full 则返回完整结构,包括所有列和索引。
Image
这种方式的好处是,AI 不需要一开始就拿到整个数据库的完整结构,而是可以按需逐步获取信息,既节省 token,也更容易聚焦当前问题。
Image安全与防护
DBHub 通过 TOML 配置提供了一些实用的安全控制。
  • 只读模式:通过关键词过滤来限制 SQL 的执行。这一点本身也有局限性:Supabase MCP 可以通过专门的 supabase_read_only_user 来实现真正的只读保证;而在 DBHub 中,如果想做到同样严格的只读效果,仍然需要用户自己提供只读数据库账号,并保持使用上的自律。
  • 行数限制:通过 max_rows 防止一次查询返回过多数据。如果 SQL 本身带了 LIMIT,会取更小的值。
  • 连接和查询超时:通过 connection_timeout 和 query_timeout 设置,避免查询失控或连接长时间卡住。
  • SSH 隧道:对于未直接暴露在公网的数据库,可以通过堡垒机进行连接。支持 ProxyJump 的多跳 SSH 连接,并且可以自动解析本地的 ~/.ssh/config 配置。
目前 DBHub 还缺少的一点是认证机制。不同于 MCP Toolbox 提供的 Google Auth,或 Supabase MCP 集成的 OAuth,DBHub 目前还没有内建认证层,后续计划支持像 Keycloak 这样的通用方案。
Image
内置工作台
DBHub 自带一个 Web 界面,主要提供两类功能。
第一,可以直接在浏览器中执行数据库工具,用来测试和调试,而不依赖 MCP Client。自定义工具会以约束表单形式展示,并带参数校验。
Image
第二,可以查看请求追踪,用来观察 AI 是如何与 DBHub 交互的,这在调试和理解 AI 行为时非常有帮助。
Image

总结
DBHub 是一个零依赖、省 token,并且带有基础防护机制的关系型数据库 MCP Server。
优点
  • 设计极简。DBHub 采用零依赖的设计,默认只提供两个通用工具,总体只占用约 1.4k 的 Token,比同类方案少十多倍。同时,这些工具也可以通过配置按需选择,不需要的能力可以直接关闭。
  • 厂商中立。不绑定 Supabase,也不偏向某个云平台,可以运行在本地、云上或私有环境。
  • 多数据库支持,并且提供一致的安全边界。DBHub 不只针对单个 Postgres 实例,而是在多种数据库之上提供统一的只读、行数限制和超时控制。
不足
  • 没有平台级集成。不像 MCP Toolbox 那样深度结合 Google Cloud,也不像 Supabase MCP 那样直接连到托管平台。
  • 缺少内建认证。多租户或线上使用场景需要额外配合反向代理或网络隔离。
你该不该用 DBHub
如果你是一个在本地使用 AI 辅助开发、并且需要频繁和数据库打交道的开发者,DBHub 非常合适。它为本地开发流程做了优化,启动快、token 占用低,也不会引入不必要的复杂度。
如果你需要厂商中立的方案,DBHub 也是目前少数不绑定特定数据库厂商的 MCP Server 之一。
但如果你更看重平台级体验,比如内建认证、OAuth 或云服务深度集成,那么 Supabase MCP 或 MCP Toolbox 可能会更适合你。

Image

Bytebase 3.13.0 - 支持 MCP 集成

从985生存指南到996续命手册,GitHub中文世界奇妙物语

又双叒叕是 us-east-1,为什么 AWS 出故障的总是它

Postgres 18 中值得开发者关注的新功能

ImageImageImage