ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

DBHub 开源数据库 MCP 服务器配 TaoToken:settings.json 骨架与连通性验证

DBHub 开源数据库 MCP 服务器配 TaoToken:settings.json 骨架与连通性验证 1. 为什么要在本地 AI 工具里统一接一个数据库 MCP 服务器如果你同时用 Claude Code、Cursor、VS Code 里的 AI 助手又经常要查 PostgreSQL、MySQL 或者 SQLite大概率会遇到一个很烦的问题每个客户端都要单独配一遍数据库连接密码、端口、库名散落在各个配置文件里改一次要改好几处。DBHub 就是来解决这件事的——它是一个免费开源、零依赖、Token 高效的数据库 MCPModel Context Protocol服务器用 TypeScript 写成MIT 协议能把 PostgreSQL、MySQL、MariaDB、SQL Server、SQLite 统一暴露成一套 MCP 工具接口AI 客户端只要连上它就能用search_objects渐进式探索库结构、用execute_sql安全执行 SQL。它适合谁适合需要在本地 AI 工具里统一管理数据库访问的开发者尤其是那种「一个项目连三个库、每次让 AI 写查询都要重新贴表结构」的场景。DBHub 把数据库映射成类似目录的结构AI 按需拉取Token 消耗比一次性灌整个 schema 低很多。但光有 DBHub 还不够。MCP 服务器本身不负责模型调用你的 AI 客户端在生成 SQL、解释结果时仍然要访问大模型通道。如果每个客户端各配一套 Key管理成本又上来了。所以这篇的做法是DBHub 管数据库接入TaoToken 管统一的模型 API 通道两边在settings.json里各占一段一次配好后面所有兼容 MCP 的客户端复用同一套骨架。我试过把这套组合跑在本地从启动 DBHub 到 AI 客户端成功执行一条跨库查询中间踩了几个配置格式的坑下面按顺序拆开讲。2. TaoToken 前置准备拿到统一 Key 和 API 通道TaoToken 在这里的角色是「模型调用的统一入口」。DBHub 负责把数据库变成 MCP 工具而你的 AI 客户端在调用模型时走的是 TaoToken 提供的 API 通道。这样你不需要在每个客户端里分别填不同厂商的 Key改一处即可。第一步打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册并登录。然后在控制台里创建一个 API Key地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 。创建时给它起个能认出来的名字比如dbhub-local方便以后区分是哪个用途的 Key。第二步记下两个东西一个是 API Key 本身通常以sk-开头另一个是 API 基础地址https://taotoken.net/api。注意这个地址后面不加任何 UTM 参数直接就是接口根路径。你的客户端配置里填的就是它。第三步如果你打算长期跑编码类 Agent比如让 AI 反复读写数据库、生成迁移脚本可以看一下 Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 它更适合高频调用的场景。只是偶尔查一下库的话普通按量 Key 就够了。这里有个容易混的点TaoToken 的 Key 是给「模型调用」用的不是给「数据库连接」用的。DBHub 连数据库用的是你自己的数据库账号密码两者不要填串。下面配置骨架里我会把这两块明确分开。3. settings.json 骨架DBHub 与 TaoToken 各占一段不同 AI 客户端的 MCP 配置文件名不一样Claude Code 用settings.jsonCursor 用mcp.json但结构逻辑相通。下面给一份以settings.json为载体的骨架你可以按自己客户端的字段名微调。先看整体结构它分两大块mcpServers里放 DBHubenv或模型配置段里放 TaoToken 的 Key 和 API 地址。{ mcpServers: { dbhub: { command: docker, args: [ run, --rm, -i, -p, 8080:8080, bytebase/dbhub, --transport, http, --port, 8080, --dsn, postgres://user:passwordhost:5432/mydb ] } }, env: { TAOTOKEN_API_KEY: sk-你的Key, TAOTOKEN_BASE_URL: https://taotoken.net/api } }这段骨架里mcpServers.dbhub是 DBHub 的启动配置。--dsn参数就是数据库连接串格式是协议://用户名:密码主机:端口/库名。PostgreSQL 用postgres://MySQL 用mysql://SQLite 用sqlite:///绝对路径/文件.db。如果你要同时接多个库DBHub 支持在配置里写多个 DSN具体写法参考官方安装文档 https://dbhub.ai/installation 。env段是 TaoToken 的通道配置。TAOTOKEN_API_KEY填你在控制台创建的 KeyTAOTOKEN_BASE_URL固定填https://taotoken.net/api。有些客户端不叫env而是叫model或provider字段名可能是apiKey和baseURL值不变。如果你用的是 Claude Code 这类支持 Anthropic 协议的工具接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有对应的字段映射说明。ClaudeCodeAnthropic 专用配置页在 https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecode-anthropicutm_campaignrewrite 按那个页面填更省事。一个实操建议把数据库密码和 TaoToken Key 都放到环境变量里settings.json里只写变量引用比如TAOTOKEN_API_KEY: ${TAOTOKEN_API_KEY}。这样配置文件可以进版本库不会泄露密钥。4. 启动 DBHub 并验证 MCP 连通性配置写好后先别急着开 AI 客户端单独把 DBHub 跑起来验证一遍能省掉后面排查「到底是 MCP 没通还是模型没通」的麻烦。如果你只是想快速试可以用官方 demo 模式它自带一个示例员工数据库docker run --rm -p 8080:8080 bytebase/dbhub \ --transport http \ --port 8080 \ --demo启动后终端会打印一段 ASCII 横幅末尾显示两个地址Web 工作台在http://localhost:8080/MCP 服务端点在http://localhost:8080/mcp。看到这两行说明 DBHub 进程本身起来了。接着验证 MCP 端点是否响应。用 curl 发一个初始化请求curl -X POST http://localhost:8080/mcp \ -H Content-Type: application/json \ -d { jsonrpc: 2.0, id: 1, method: initialize, params: { protocolVersion: 2024-11-05, capabilities: {}, clientInfo: {name: curl-test, version: 1.0} } }如果返回里带result字段并且serverInfo.name是dbhub说明 MCP 服务端正常。这一步不通的话先检查端口有没有被占用-p 8080:8080有没有写对。然后验证数据库查询链路。DBHub 提供execute_sql工具你可以通过 Web 工作台直接跑一条 SQL 试试。打开http://localhost:8080/在查询框里输入SELECT COUNT(*) AS total FROM employees;demo 模式下应该返回一个数字。如果这里报错说明 DSN 配置有问题重点看用户名、密码、主机、端口、库名这五项。最后验证 TaoToken 通道。这一步要在 AI 客户端里做因为模型调用是客户端发起的。打开你的客户端让它执行一个简单任务比如「列出当前数据库里所有的表」。如果 AI 能返回表名列表说明 DBHub 的search_objects工具被正确调用同时模型通道也通了。如果 AI 说「无法访问数据库」但 curl 测 MCP 是通的那问题多半在 TaoToken 的 Key 或 baseURL 上。想单独测模型通道的话可以用模型对话页面 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 发一条消息确认 Key 有效。这一步和 DBHub 无关纯粹验证模型侧。5. 本篇常见错排查配置过程中最容易卡住的几个点我按出现频率排一下。第一个是 DSN 格式写错。PostgreSQL 的 DSN 是postgres://不是postgresql://虽然有些驱动两者都认但 DBHub 对协议头比较严格。MySQL 是mysql://SQLite 是sqlite:///加绝对路径注意是三个斜杠。密码里如果有或:这类特殊字符要做 URL 编码否则会被解析成主机分隔符。第二个是 MCP 传输方式选错。DBHub 支持stdio和http两种传输。如果你在settings.json里用的是commandargs启动 docker那客户端会按 stdio 方式通信这时候--transport要设成stdio不能设http。反过来如果你想让多个客户端共享一个 DBHub 实例就用http模式客户端配置里填 URL 而不是 command。两种模式不能混。第三个是 TaoToken 的 baseURL 多写了路径。正确值是https://taotoken.net/api不要在后面加/v1或/chat/completions客户端会自己拼。多写了会导致 404。第四个是端口冲突。8080 是很常见的端口如果本机已经有服务占用DBHub 会启动失败。换一个端口比如-p 8081:8080同时把 MCP 端点地址改成http://localhost:8081/mcp。第五个是只读模式没开。生产库上跑 AI 生成的 SQL 有风险DBHub 支持只读模式在启动参数里加--readonly就行。开了之后execute_sql只允许 SELECT写操作会被拒绝。这个建议默认打开除非你明确要让 AI 改数据。第六个是 Key 权限问题。TaoToken 控制台里创建的 Key 如果设了额度限制或模型白名单而你的客户端请求了不在白名单里的模型会返回权限错误。去 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 检查一下 Key 的配置。6. 把这条链路固定下来跑通一次之后建议把配置固化。DBHub 用 docker compose 管理settings.json里的密钥用环境变量注入TaoToken 的 Key 定期在控制台轮换。这样换机器或者团队协作时复制一份 compose 文件和 settings 骨架就能重建整套环境。后续如果要加库只需要在 DBHub 的 DSN 列表里追加一条AI 客户端不用改。如果要换模型只改 TaoToken 那边的配置DBHub 也不用动。两边解耦是这套组合最舒服的地方。接入文档和 API Keys 管理都在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 和 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 遇到字段对不上时优先查这两个页面。
返回列表