用途:db-access-mcp 是 Model Context Protocol(MCP)stdio 服务器,为 Claude Code、Claude Desktop 等 MCP 客户端提供对已配置数据库的访问,支持 PostgreSQL(≥10)、MySQL(≥5,只读会话需 ≥5.6)、Amazon Redshift 和 Microsoft SQL Server(经 tedious)。
主要能力:提供 connection_list、connection_find、connection_test、query、query_plan(EXPLAIN)、query_to_file(流式 CSV/JSONL 导出,绕过模型上下文)、up_tunnel、down_tunnel、tunnel_list、config_reload 等工具。支持 SSH 与 AWS SSM 隧道,密钥提供方可选环境变量、HashiCorp Vault、AWS Secrets Manager、RDS IAM 认证令牌及临时 Redshift 凭据。每个实例的连接池与隧道相互隔离,可并发运行,崩溃后不会遗留孤儿隧道进程。
安全设计:SSH 隧道校验堡垒机主机密钥(host_key_sha256 固定值或 known_hosts),不匹配即失败;read_only 与默认单语句限制可关闭 SET session read-only off 绕过;query_to_file 仅能写入导出目录或 allow_export_paths 根目录,不能覆盖 ~/.ssh、点文件或配置目录;工具不返回堆栈或凭据,日志按键名脱敏并清理内联 user:password@host URI。
使用方式:首次启动创建 ~/.db_acess_mcp(拼写为产品约定),含空 config.json、conf.d/ 和完整 config.example.json。编辑配置后重启 MCP 服务器。客户端可执行 npx -y @rheopyrin/db-access-mcp,或本地构建用 node <path>/dist/cli.js。在 Claude Code 中用 /mcp 查看状态与重连;也可在 .mcp.json 或 Claude Desktop 配置文件中声明 mcpServers。Cursor 等 stdio 客户端使用相同格式。CLI 选项通过 args 传入,如 --workdir、--log-level。本地开发可运行 web UI 试用。
适用场景:需要让 AI 代理安全查询多种数据库、经跳板机或 SSM 访问内网数据库、导出查询结果到文件而不占用模型上下文,以及需要动态密钥轮换与只读约束的团队。
限制:宿主机需 Node.js ≥20.19;SSM 隧道需 AWS CLI 与 session-manager-plugin,SSO 引导需浏览器;SSH 隧道无额外依赖。read_only 与单语句仅为安全带,真正保证应使用只读数据库用户;mssql 无法在协议层强制单语句。配置 schema 严格,未知键启动报错;config_reload 非破坏性,已打开连接池与隧道不会重建。导出文件仅创建不读取或追加,覆盖需显式 overwrite: true,注意 CSV 注入风险。RDS IAM 认证不支持 SQL Server。