• anarkh

    写在前面

    使用过程中有什么问题,佬友们都可以提出来,工作之余我会尽量快的抽时间修改;另外如果有什么好的建议也都可以抛给我,加入todo list尽量完成!!!

    universal-db-mcp使用上的思考

    使用universal-db-mcp在coze中实现问数 AskDB智能体

    在VsCode中使用MCP实现智能问数

    在Dify中使用universal-db-mcp实现智能问数

    【教程】使用ApiPost/Postman 测试 unversal-db-mcp Streamable HTTP 完整指南

    说一说universal-db-mcp在Text2SQL准确性方面上都做了哪些事以及后续在帮助LLM提升准确性方面的todo list

    目前已支持 17 个数据库:

    - MySQL

    - PostgreSQL

    - Redis

    - Oracle

    - 达梦

    - SQL Server (2012+)

    - MongoDB

    - SQLite

    - KingbaseES(人大金仓)

    - GaussDB / OpenGauss

    - OceanBase

    - TiDB

    - ClickHouse

    - PolarDB

    - Vastbase(海量数据库)

    - HighGo(瀚高)

    - GoldenDB

    数据库适配方面暂时就支撑这17种数据库。目前该工具只能在具有mcp协议的客户端调用,下一步计划增加HTTP API 模式,这样不支持mcp协议的平台也可以调用了

    0. 更新日志

    - 2026-01-23 → v0.2.0 → 新增 Oracle 数据库(支持12c及以上)适配器。

    - 2026-01-23 → v0.3.0 → 新增 达梦 数据库(DM7、DM8)适配器。

    - 2026-01-23 → v0.4.0 → 新增 SQL Server 数据库适配器。

    - 2026-01-25 → v0.5.3 → 新增 MongoDB 数据库适配器。

    - 2026-01-26 → v0.6.0 → 新增 SQLite 数据库适配器。

    - 2026-01-26 → v0.7.0 → 新增 KingbaseES(人大金仓) 数据库适配器。

    - 2026-01-26 → v0.8.0 → 新增 GaussDB/OpenGauss 数据库适配器。

    - 2026-01-26 → v0.9.0 → 新增 OceanBase 数据库适配器。

    - 2026-01-27 → v0.10.0 → 新增 TiDB 数据库适配器。

    - 2026-01-27 → v0.11.0 → 新增 ClickHouse 数据库适配器。

    - 2026-01-27 → v0.12.0 → 新增 PolarDB 数据库适配器。

    - 2026-01-27 → v0.13.0 → 新增 Vastbase(海量数据库) 数据库适配器。

    - 2026-01-27 → v0.14.0 → 新增 HighGo(瀚高) 数据库适配器。

    - 2026-01-27 → v1.0.0 → 新增 GoldenDB 数据库适配器。

    - 2026-01-28

    (1)支持双模式运行(MCP + HTTP API)

    (2)支持本地部署:node、PM2、systemd

    (3)支持Docker部署:docker、docker compose

    (4)支持Serverless部署:阿里云函数计算、腾讯云SCF、AWS Lambda、Vercel

    (5)支持PaaS平台部署:Railway、Render、Fly.io

    (6)支持Coze集成

    (7)支持n8n集成

    (8)支持Dify集成

    - 2026-01-29 → v2.3.8 → 性能优化:增加Schema缓存 + 批量查询优化

    - 2026-01-30 → v2.5.0 → 适配Oracle 11g及之前老版本

    - 2026-02-02 → v2.6.0 → 新增如下内容:

    - MCP SSE/Streamable HTTP 传输支持 - 在 HTTP 模式下新增 MCP 协议端点

    - /sse - SSE 传输端点(传统方式),支持通过 URL 参数配置数据库连接

    - /sse/message - SSE 消息接收端点

    - /mcp (POST) - Streamable HTTP 端点(MCP 2025 规范,推荐),支持通过请求头配置数据库连接

    - /mcp (GET) - Streamable HTTP 的 SSE 流端点

    - /mcp (DELETE) - 关闭会话端点

    - Dify 等平台现在可以直接通过 MCP 协议连接,无需使用自定义 API 工具

    - 灵活架构:2 种启动模式(stdio/http),4 种接入方式(MCP stdio、MCP SSE、MCP Streamable HTTP、REST API)

    - 统一 API Key 认证 - MCP SSE/Streamable HTTP 端点现在也支持 API Key 认证,与 REST API 保持一致

    - 2026-02-05 → v2.7.0 → 新增如下内容:

    外键关系支持 - 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)不支持传统外键,返回结果中不包含这些字段

    - 2026-02-06 → v2.8.0 → 新增如下内容:

    新增

    - 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 个数据库适配器,添加表注释查询支持

    1. 这是个什么东西?

    这是个数据库万能连接器的MCP,可以使用支持MCP协议的工具(例如:Claude Desktop、Cherry Studio等)直接连接你的数据库,用自然语言查询和分析数据。

    2. 有什么作用?

    - 临时数据分析 :想快速查看生产数据库的某些指标,但是不想写SQL

    - 问题排查 :需要跨多个表关联查询,但记不清表结构

    - AI 辅助开发 :希望 Claude 能直接理解你的数据库结构,生成准确的查询

    - 生成可视化大屏分析:通过自然语言描述,自动生成可视化大屏分析

    这个MCP连接了具有MCP协议的客户端和数据库,只要模型够给力,有一堆想不到的能力等你自己探索。

    3. 有什么特性?

    ^-^ 自然语言查询 - 用中文描述需求,Claude 自动生成并执行 SQL

    ^-^ 智能表结构理解 - 自动获取数据库 Schema,提供精准建议

    ^-^ 多数据库支持 - MySQL、PostgreSQL、Redis 一键切换 (后续还会增加)

    ^-^ 安全第一 - 默认只读模式,防止误操作删库

    ^-^ 开箱即用 - 无需复杂配置,一行命令启动

    4. 简单的效果预览:

    以MySQL为例,有以下几个表数据:

    - users表:

    图片

    - categories表

    图片

    - products表

    图片

    - orders表

    图片

    - order_items表

    图片

    4.1 Claude Desktop效果

    图片

    图片

    图片

    图片

    图片

    4.2 Cherry Studio效果

    图片

    图片

    图片

    图片

    5. 如何使用?

    只要是支持MCP协议的工具都可以使用,这里只介绍Claude Desktop和Cherry Studio的配置,配置都类似。

    5.1 配置 Claude Desktop

    编辑 Claude Desktop 配置文件:

    macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    Windows: %APPDATA%\Claude\claude_desktop_config.json

    添加以下配置:

    MySQL 使用示例

    基础配置(只读模式)```
    {
    "mcpServers": {
    "mysql-db": {
    "command": "npx",
    "args": [
    "universal-db-mcp",
    "--type", "mysql",
    "--host", "localhost",
    "--port", "3306",
    "--user", "root",
    "--password", "your_password",
    "--database", "myapp_db"
    ]
    }
    }
    }
    ``启用写入模式(谨慎使用)``
    {
    "mcpServers": {
    "mysql-dev": {
    "command": "npx",
    "args": [
    "universal-db-mcp",
    "--type", "mysql",
    "--host", "localhost",
    "--port", "3306",
    "--user", "dev_user",
    "--password", "dev_password",
    "--database", "dev_database",
    "--danger-allow-write"
    ]
    }
    }
    }
    ```PostgreSQL 使用示例

    基础配置```
    {
    "mcpServers": {
    "postgres-db": {
    "command": "npx",
    "args": [
    "universal-db-mcp",
    "--type", "postgres",
    "--host", "localhost",
    "--port", "5432",
    "--user", "postgres",
    "--password", "your_password",
    "--database", "myapp"
    ]
    }
    }
    }
    ``连接远程数据库``
    {
    "mcpServers": {
    "postgres-prod": {
    "command": "npx",
    "args": [
    "universal-db-mcp",
    "--type", "postgres",
    "--host", "db.example.com",
    "--port", "5432",
    "--user", "readonly_user",
    "--password", "secure_password",
    "--database", "production"
    ]
    }
    }
    }
    ```Redis 使用示例

    基础配置(无密码)```
    {
    "mcpServers": {
    "redis-cache": {
    "command": "npx",
    "args": [
    "universal-db-mcp",
    "--type", "redis",
    "--host", "localhost",
    "--port", "6379"
    ]
    }
    }
    }
    ``带密码和数据库选择``
    {
    "mcpServers": {
    "redis-session": {
    "command": "npx",
    "args": [
    "universal-db-mcp",
    "--type", "redis",
    "--host", "localhost",
    "--port", "6379",
    "--password", "redis_password",
    "--database", "1"
    ]
    }
    }
    }

    
    - 重启 Claude Desktop
    
    - 在对话中直接询问:
    
    - “帮我查看 users 表的结构”
    
    - “统计最近 7 天的订单数量”
    
    - “找出消费金额最高的 10 个用户”
    
    Claude 会自动调用数据库工具完成查询!
    
    同时连接多个数据库
    
    你可以在 Claude Desktop 中同时配置多个数据库连接:```
    {
      "mcpServers": {
        "mysql-prod": {
          "command": "npx",
          "args": [
            "universal-db-mcp",
            "--type", "mysql",
            "--host", "prod-db.example.com",
            "--port", "3306",
            "--user", "readonly",
            "--password", "prod_password",
            "--database", "production"
          ]
        },
        "postgres-analytics": {
          "command": "npx",
          "args": [
            "universal-db-mcp",
            "--type", "postgres",
            "--host", "analytics.example.com",
            "--port", "5432",
            "--user", "analyst",
            "--password", "analytics_password",
            "--database", "warehouse"
          ]
        },
        "redis-cache": {
          "command": "npx",
          "args": [
            "universal-db-mcp",
            "--type", "redis",
            "--host", "cache.example.com",
            "--port", "6379",
            "--password", "cache_password"
          ]
        }
      }
    }
    ```重启 Claude Desktop 后,你可以在对话中指定使用哪个数据库:
    
    - “在 MySQL 生产库中查询…”
    
    - “从 PostgreSQL 分析库获取…”
    
    - “检查 Redis 缓存中的…”
    
    5.2 配置 Cherry Studio
    
    ![图片](https://cdn3.ldstatic.com/optimized/4X/d/1/b/d1b197874e9276887ea09530e0b33aee9d5966e3_2_690x376.png)
    
    6. 开源地址
    
    universal-db-mcp
    
    **如果这个项目对你有帮助,请给个 Star ^-^ 支持一下!**
    
    **如果这个项目对你有帮助,请给个 Star ^-^ 支持一下!**
    
    **如果这个项目对你有帮助,请给个 Star ^-^ 支持一下!**
    
    希望大家帮忙多多star!!!
    
    7. Claude Code中配置
    
    在项目根目录下打开PowerShell执行,这样这个mcp就可以在这个项目中使用了```
    #添加mcp
    claude mcp add universal-db-mcp -- npx universal-db-mcp --type xxx --host xxx.xxx.xxx.xxx --port xxx --user xxx --password xxx --database xxx
    ```下面还有一些命令可能会用到```
    # 删除mcp
    claude mcp remove universal-db-mcp
    
    # 查看已配置的所有 MCP 服务器
    claude mcp list
    
    # 查看某个服务器的详细配置
    claude mcp get universal-db-mcp
    ```**效果:**
    
    ![图片](https://cdn3.ldstatic.com/original/4X/b/2/d/b2d0c9e939c3c09c0c1d446506b66aa117efd0f4.png)
    主楼
  • 呼哈啦

    不错 不错

    #1
  • 威震天

    佬友尽搞些好东西

    图片

    #2
  • anarkh

    感谢佬友

    #3
  • anarkh

    主要还是在L站学习到了不少东西

    #4
  • 洛邱

    已star

    #5
  • 鲨鱼飞机

    马上试试~ 之前用过几个都不好用 连不上 也不知道咋回事。

    #6
  • chen

    最好能按需连接,要不很多后台进程,我现在用skill,用本地的mysql-cli/redis-cli

    #7
  • anarkh

    感谢佬友激情star

    #8
  • czzt1

    表关系是读取schema吗?可以导入文档吗

    #9
  • langren

    好用不不

    #10
  • anarkh

    是的,读取的schema。这个mcp其实就是连接了模型客户端与数据库,放开安全模式就能操作了

    #11
  • teamoo

    帮了大忙了,感谢佬。 话说支持达梦数据库嘛

    #12
  • 老苏叶

    佬,CLI支持吗?

    #13
  • anarkh

    后面会加上的,我先把oracle搞上去,后面信创的国产数据库会逐步加上的,感觉达梦、ob、金仓啥的都可以加上

    #14
  • teamoo

    感谢无私分享,期待!现在用这国产数据库,没有找到相关合适的mcp

    #15
  • wyq_0425

    AI辅助开发数据库,很实用!

    #16
  • anarkh

    CLI支持mcp,正常来说是可以的,我还没试,等我试过了告诉佬

    #17
  • Jaychyu

    谢佬友,这个实用

    #18
  • 老苏叶

    好的,谢谢佬,我也试试去

    #19

发表回复

登录后回复