返回 MCP Server 列表

DBHub
通用数据库 MCP Server——一个 DSN 连通 PostgreSQL/MySQL/MariaDB/SQL Server/SQLite,让 AI 直接查询和分析数据库
databaseSQL多数据库只读模式
场景示例
- 「昨天新注册了多少用户?」——AI 自己写 SQL 查询并解读结果
- 「这条 SQL 为什么慢?」——开启 explain_sql 看执行计划、给优化建议
- 「订单表和用户表是怎么关联的?」——search_objects 检索表结构、字段与索引
- 「五个库各建一个 MCP 太乱」——一份 TOML 配多个 source,一个进程接管全部数据库
使用注意
AI 会直接对数据库执行 SQL——生产库务必加只读防护:
- 新版
--readonlyflag 已废弃(传了直接报错退出),改在dbhub.toml的[[tools]]里配readonly = true - 同处配
max_rows限制返回行数,防大表全量查询拖垮库 - DSN 用只读账号双保险,别把有写权限的账号交给模型
提供的工具
| 工具 | 注册 | 说明 |
|---|---|---|
execute_sql | 默认 | 执行 SQL 并返回结果 |
search_objects | 默认 | 按名称/类型检索库、表、字段、索引等对象 |
explain_sql / health_check | 按需 | 执行计划与健康检查,TOML 里开启 |
接入要点
- 单库:
--dsn "mysql://user:pass@host:3306/db";多库:--config dbhub.toml,每个[[sources]]一个连接 - 支持 postgres / mysql / mariadb / sqlserver / sqlite 五种 DSN;
--demo内置示例库可先试玩 - 多 source 时每个连接生成一套独立工具(如
execute_sql_订单库),AI 按工具名选库,不会串库
避坑清单
--readonly已废弃:新版传了直接报错退出(--max-rows同)。只读防护改在dbhub.toml的[[tools]]块:
toml[[sources]] id = "default" dsn = "mysql://readonly_user:pass@host:3306/db" [[tools]] name = "execute_sql" source = "default" readonly = true max_rows = 1000
- DSN 密码含特殊字符(
@:/#)必须 URL 编码,否则解析错主机/库名,而且报错信息看不出原因 - 本地库连不上先查 sslmode:官方示例带
?sslmode=require,本地无 TLS 的库要改sslmode=disable max_rows一定要配:AI 很喜欢SELECT *,大表全量拉取会同时拖垮数据库和上下文窗口- DSN 用只读账号,与
readonly = true双保险——别把有写权限的账号交给模型
高级用法:改「服务器命令」这半截
各客户端命令 = 客户端前缀 + 服务器命令(如 claude mcp add dbhub -- <服务器命令>),换连接方式只改后半截。需要远程共享一个实例时改 --transport http --port 8080,客户端用 URL 接入。