
通用数据库 MCP Server——一个 DSN 连通 PostgreSQL/MySQL/MariaDB/SQL Server/SQLite,让 AI 直接查询和分析数据库
AI 会直接对数据库执行 SQL——生产库务必加只读防护:
--readonly flag 已废弃(传了直接报错退出),改在 dbhub.toml 的 [[tools]] 里配 readonly = truemax_rows 限制返回行数,防大表全量查询拖垮库| 工具 | 注册 | 说明 |
|---|---|---|
execute_sql | 默认 | 执行 SQL 并返回结果 |
search_objects | 默认 | 按名称/类型检索库、表、字段、索引等对象 |
explain_sql / health_check | 按需 | 执行计划与健康检查,TOML 里开启 |
--dsn "mysql://user:pass@host:3306/db";多库:--config dbhub.toml,每个 [[sources]] 一个连接--demo 内置示例库可先试玩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
@ : / #)必须 URL 编码,否则解析错主机/库名,而且报错信息看不出原因?sslmode=require,本地无 TLS 的库要改 sslmode=disablemax_rows 一定要配:AI 很喜欢 SELECT *,大表全量拉取会同时拖垮数据库和上下文窗口readonly = true 双保险——别把有写权限的账号交给模型各客户端命令 = 客户端前缀 + 服务器命令(如 claude mcp add dbhub -- <服务器命令>),换连接方式只改后半截。需要远程共享一个实例时改 --transport http --port 8080,客户端用 URL 接入。