DBHub: 扒一扒数据库 MCP Server 背后的设计取舍
DBHub 是一个零依赖、省 token 的 MCP server,用来把 AI 助手连接到 PostgreSQL、MySQL、SQL Server、MariaDB 和 SQLite。是 GitHub 官方 MCP 列表里,唯一收录的通用数据库 MCP server。
本文由 DBHub 的维护者亲自撰写。解释 DBHub 背后的设计思路,包括为什么这样做,取舍。以及相比其他方案,它还有哪些不足。
GitHub Stars: 1.8k / 许可: MIT / 语言: TypeScript
大多数开发者的时间,都是在本地写代码、调试数据库(现在往往还会配合 AI 编码助手)。 本地开发运行在一个相对可信的环境中,因此不太需要担心所谓的「致命三要素攻击(lethal trifecta)」。 而且本地环境本身是宽容的,就算 AI 写错了代码,把数据库清空了,也通常不是灾难性的后果。
最小化安装成本。开发者希望尽快开始使用,而不是先安装一整套复杂的软件和依赖。 尽可能节省 token。MCP 工具本身不应该占用太多上下文空间,token 应该留给真正的代码和查询。 不强制身份认证。在本地可信环境下,可以跳过复杂的认证机制。
npx @bytebase/dbhub@latest --dsn "postgres://user:password@localhost:5432/dbname"npx @bytebase/dbhub@latest --demo[[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"]
> /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
[[sources]]id = "prod"dsn = "postgres://..."[[tools]]name = "execute_sql"source = "prod"
names 只返回名称和 schema。 summary 在此基础上增加一些基础元数据,比如行数或列数。 full 则返回完整结构,包括所有列和索引。
只读模式:通过关键词过滤来限制 SQL 的执行。这一点本身也有局限性:Supabase MCP 可以通过专门的 supabase_read_only_user 来实现真正的只读保证;而在 DBHub 中,如果想做到同样严格的只读效果,仍然需要用户自己提供只读数据库账号,并保持使用上的自律。 行数限制:通过 max_rows 防止一次查询返回过多数据。如果 SQL 本身带了 LIMIT,会取更小的值。 连接和查询超时:通过 connection_timeout 和 query_timeout 设置,避免查询失控或连接长时间卡住。 SSH 隧道:对于未直接暴露在公网的数据库,可以通过堡垒机进行连接。支持 ProxyJump 的多跳 SSH 连接,并且可以自动解析本地的 ~/.ssh/config 配置。
设计极简。DBHub 采用零依赖的设计,默认只提供两个通用工具,总体只占用约 1.4k 的 Token,比同类方案少十多倍。同时,这些工具也可以通过配置按需选择,不需要的能力可以直接关闭。 厂商中立。不绑定 Supabase,也不偏向某个云平台,可以运行在本地、云上或私有环境。 多数据库支持,并且提供一致的安全边界。DBHub 不只针对单个 Postgres 实例,而是在多种数据库之上提供统一的只读、行数限制和超时控制。
没有平台级集成。不像 MCP Toolbox 那样深度结合 Google Cloud,也不像 Supabase MCP 那样直接连到托管平台。 缺少内建认证。多租户或线上使用场景需要额外配合反向代理或网络隔离。
从985生存指南到996续命手册,GitHub中文世界奇妙物语
又双叒叕是 us-east-1,为什么 AWS 出故障的总是它