Skip to content

Releases

v2.14.0 - 🚀 新增 MCP stdio 模式动态数据库连接

Choose a tag to compare

@Anarkh-Lee Anarkh-Lee released this 17 Mar 08:36

[2.14.0] - 2026

新增

  • MCP stdio 模式动态数据库连接 - 支持在对话中动态连接/切换数据库,无需写死配置
    • 新增 3 个 MCP Tool:
      • connect_database:动态连接数据库,支持全部 17 种数据库类型,已有连接时自动断开旧连接
      • disconnect_database:断开当前数据库连接
      • get_connection_status:查看当前连接状态(类型、地址、权限模式、缓存状态)
    • --type 参数改为可选:不指定则以无连接模式启动,等待 AI 通过 connect_database 动态连接
    • 零配置启动:claude_desktop_config.json 中只需 "args": ["universal-db-mcp"],对话中告诉 AI 数据库信息即可
    • 向后兼容:传了 --type 参数的用户行为完全不变
    • 影响范围:仅 MCP stdio 模式,HTTP/SSE/Streamable HTTP 模式不受影响
    • 改动文件:src/mcp/mcp-server.ts、src/mcp/mcp-index.ts

用户使用指南

方式 A:零配置启动(新增能力)

在 claude_desktop_config.json 中无需指定数据库参数:

{
  "mcpServers": {
    "universal-db": {
      "command": "npx",
      "args": ["universal-db-mcp"]
    }
  }
}

然后在对话中直接告诉 AI 数据库信息:

  • "帮我连接 192.168.1.100 的 MySQL,用户名 root,密码 123456,数据库 order_db"
  • "切换到 10.0.0.5 的 PostgreSQL,端口 5432,数据库 analytics"
  • "断开当前数据库连接"
  • "当前连的是哪个库?"

AI 会自动调用 connect_database、disconnect_database、get_connection_status 工具。

方式 B:带默认连接启动(向后兼容,行为不变)

{
  "mcpServers": {
    "universal-db": {
      "command": "npx",
      "args": [
        "universal-db-mcp",
        "--type", "mysql",
        "--host", "localhost",
        "--port", "3306",
        "--user", "root",
        "--password", "your_password",
        "--database", "your_database"
      ]
    }
  }
}

启动时自动连接指定数据库,对话中仍可通过 connect_database 切换到其他数据库。

v2.13.0 - 🚀 修复 stdio MCP server 在客户端(如 Codex CLI)关闭会话后进程挂起的问题

Choose a tag to compare

@Anarkh-Lee Anarkh-Lee released this 17 Mar 02:08

[2.13.0] - 2026

修复

  • stdio 进程优雅退出 - 修复 stdio MCP server 在客户端(如 Codex CLI)关闭会话后进程挂起的问题
    • 问题表现:Codex CLI 执行 /exit 后终端提示符不返回,必须手动 Ctrl+C
    • 根因:未监听 process.stdin 的 end/close 事件;stop() 方法未调用 server.close() 释放 transport 资源
    • 修复方案:
      • mcp-server.ts:stop() 中新增 server.close() 调用,释放 stdin/stdout 监听器
      • mcp-index.ts:新增统一 gracefulShutdown() 函数,监听 SIGINT/SIGTERM/stdin end/stdin close
      • 防重入保护(shuttingDown 标志)+ 5 秒超时兜底
    • 影响范围:stdio 模式直接修复;SSE/Streamable HTTP 模式间接受益(cleanupSession() 调用的 stop() 现在正确关闭 MCP Server)

v2.12.0 - 🚀 新增 多 Schema 支持

Choose a tag to compare

@Anarkh-Lee Anarkh-Lee released this 16 Mar 13:41

[2.12.0] - 2026

修复

  • 多 Schema 支持 - 修复 8 个适配器只能获取默认 Schema 下的表信息的问题

    • 影响的适配器:PostgreSQL、GaussDB、KingbaseES、Vastbase、HighGo、SQL Server、Oracle、达梦

    • 问题表现:get_schema、get_table_info、get_enum_values、get_sample_data 只返回默认 Schema(如 PostgreSQL 的 public、SQL Server 的 dbo、Oracle/达梦的当前用户)下的表

    • 修复方案:

      • 适配器 SQL 查询改为排除系统 Schema,自动发现所有用户 Schema

      • 非默认 Schema 的表名使用 schema.table_name 格式(如 analytics.events)

      • 默认 Schema 的表名保持不变,向后兼容

Read more

v2.11.0 - 🚀 连接稳定性增强

Choose a tag to compare

@Anarkh-Lee Anarkh-Lee released this 12 Mar 07:27

[2.11.0] - 2026

改进

  • 连接稳定性增强 - 全面升级数据库连接管理,彻底解决 Can't add new command when connection is in closed state 错误
    • 连接池化 - 12 个网络数据库适配器从单连接升级为连接池
      • MySQL 系列(MySQL、TiDB、OceanBase、PolarDB、GoldenDB):使用 mysql2 连接池,配置 enableKeepAlive + connectionLimit: 3
      • PostgreSQL 系列(PostgreSQL、KingbaseES、GaussDB、Vastbase、HighGo):使用 pg.Pool,配置 keepAlive + max: 3
      • Oracle:使用 oracledb.createPool(),配置 poolPingInterval: 30
    • 心跳保活 - 达梦适配器使用定时心跳(30 秒间隔)保持连接活跃
    • 断线自动重试 - 所有网络数据库适配器新增 withRetry 机制,连接断开后自动重试一次
    • TCP Keep-Alive - 所有连接池启用 TCP Keep-Alive,防止连接被服务端或中间件超时关闭
  • 不需要修改的适配器(已有内置机制):SQL Server(连接池)、Redis(自动重连)、MongoDB(内置连接池)、SQLite(本地文件)、ClickHouse(HTTP 协议)

v2.10.1 - 🚀 修改文档中sqllite错误的参数信息

Choose a tag to compare

@Anarkh-Lee Anarkh-Lee released this 10 Mar 14:19

修改文档中sqllite错误的参数信息
--file-path修改为--file

v2.10.0 - 🚀 新增 细粒度权限控制(权限模式、自定义权限、向后兼容)

Choose a tag to compare

@Anarkh-Lee Anarkh-Lee released this 12 Feb 01:43

[2.10.0] - 2026

新增

  • 细粒度权限控制 - 支持自定义操作权限组合,不再只有"只读"和"完全写入"两种模式
    • 权限模式 - 新增 --permission-mode 参数
      • safe(默认):只读模式,仅允许 SELECT
      • readwrite:读写模式,允许 SELECT/INSERT/UPDATE,禁止 DELETE 和 DDL
      • full:完全控制,等价于原来的 --danger-allow-write
      • custom:自定义模式,配合 --permissions 使用
    • 自定义权限 - 新增 --permissions 参数,支持逗号分隔的权限列表
      • read:SELECT 查询(始终包含)
      • insert:INSERT, REPLACE
      • update:UPDATE
      • delete:DELETE, TRUNCATE
      • ddl:CREATE, ALTER, DROP, RENAME
    • 向后兼容 - --danger-allow-write 仍然有效,等价于 --permission-mode=full
    • HTTP API 支持 - REST API 和 MCP SSE/Streamable HTTP 端点同样支持新权限参数

改进

  • 更新 DbConfig 类型,新增 permissionMode 和 permissions 字段
  • 重构 safety.ts,支持细粒度权限检查
  • 更新命令行帮助信息,添加新参数说明
  • 更新 README 文档(中英文),添加权限模式说明

文档

  • 完善权限配置文档 - 添加不同传输方式的权限参数命名说明
    • STDIO 模式(Claude Desktop):使用连字符命名 --permission-mode、--permissions
    • SSE 模式(Dify 等):使用驼峰命名 permissionMode、permissions(URL Query)
    • Streamable HTTP 模式:使用连字符命名 X-DB-Permission-Mode、X-DB-Permissions(HTTP Header)
    • REST API 模式:使用驼峰命名 permissionMode、permissions(JSON Body)

v2.9.0 - 🚀 新增 按需增强工具(get_enum_values、get_sample_data)、数据脱敏工具、REST API 端点

Choose a tag to compare

@Anarkh-Lee Anarkh-Lee released this 07 Feb 08:45

[2.9.0] - 2026

新增

  • 按需增强工具 - 新增两个 MCP 工具,帮助 LLM 更好地理解数据内容
    • get_enum_values - 获取指定列的所有唯一值
      • 适用于枚举类型列、状态列等有限值集合
      • 支持 limit 参数控制返回数量
      • 返回值包含 isComplete 标识是否返回了全部值
    • get_sample_data - 获取表的示例数据
      • 自动数据脱敏,保护敏感信息(手机号、邮箱、身份证、银行卡等)
      • 支持按列名模式匹配和按值格式自动检测两种脱敏方式
      • 可通过 masking 参数控制是否启用脱敏
  • 数据脱敏工具 - 新增 DataMasker 工具类(src/utils/data-masking.ts)
    • 支持 7 种脱敏类型:phone、email、idcard、bankcard、password、partial、full
    • 支持自定义脱敏规则
    • 自动检测敏感数据格式
  • REST API 端点 - 新增两个 HTTP API 端点
    • GET /api/enum-values - 获取枚举值
    • GET /api/sample-data - 获取示例数据

改进

  • 新增 EnumValuesResult 和 SampleDataResult 类型定义
  • 更新 API 参考文档(中英文),添加新端点说明
  • 新增 20 个数据脱敏单元测试

v2.8.0 - 🚀 Schema 核心增强(表注释支持、隐式关系推断、关系类型细化、关系来源标注)

Choose a tag to compare

@Anarkh-Lee Anarkh-Lee released this 06 Feb 05:36

[2.8.0] - 2026

新增

  • Schema 核心增强 - 提升 LLM 对数据库结构的理解,提高 Text2SQL 准确性
    • 表注释支持 - Schema 信息现在包含表级别注释(comment 字段)
      • 支持的数据库:MySQL、PostgreSQL、Oracle、SQL Server、TiDB、达梦、KingbaseES、GaussDB、OceanBase、PolarDB、Vastbase、HighGo、GoldenDB、ClickHouse(14个)
      • 不支持:Redis、MongoDB(NoSQL)、SQLite(无原生表注释)
    • 隐式关系推断 - 基于列命名规则自动推断表间关系
      • 支持模式:xxx_id → xxxs.id、xxxId → xxxs.id(驼峰)、xxx_code → xxxs.code、xxx_no → xxxs.xxx_no
      • 推断规则:不覆盖显式外键、验证目标表存在、验证目标列存在
      • 置信度评分:0.7-0.95,LLM 可根据置信度判断关系可靠性
    • 关系类型细化 - 通过检查唯一约束区分 one-to-one 和 many-to-one
    • 关系来源标注 - source 字段区分 foreign_key(显式外键)和 inferred(推断关系)

改进

  • 新增 SchemaEnhancer 工具类(src/utils/schema-enhancer.ts)
  • 更新 RelationshipInfo 类型,添加 source 和 confidence 字段
  • 更新 TableInfo 类型,添加 comment 字段
  • 更新 14 个数据库适配器,添加表注释查询支持

v2.7.0 - 🚀 外键关系支持 - Schema 信息现在包含外键和表关系数据,帮助 LLM 更好地理解数据库结构

Choose a tag to compare

@Anarkh-Lee Anarkh-Lee released this 05 Feb 15:29

外键关系支持 - Schema 信息现在包含外键和表关系数据,帮助 LLM 更好地理解数据库结构

  • foreignKeys - 表级别外键约束信息,包含约束名、列、引用表、引用列、ON DELETE/UPDATE 规则
  • relationships - 全局关系视图,展示所有表之间的关联关系
  • 支持的数据库:MySQL、PostgreSQL、Oracle、SQL Server、SQLite、达梦、KingbaseES、GaussDB、OceanBase、TiDB、PolarDB、Vastbase、HighGo、GoldenDB
  • NoSQL 数据库(Redis、MongoDB、ClickHouse)不支持传统外键,返回结果中不包含这些字段

v2.6.1 - 更新文档

Choose a tag to compare

@Anarkh-Lee Anarkh-Lee released this 03 Feb 08:57

更新文档