目录

一、所谓的“外挂”到底挂在哪?

二、怎么装?手把手教你

1.搞定 DBdoctor 环境

2.告诉 Cursor 你有“外挂”了

3.重启 Cursor

二、总结一下


咱们有一说一,Cursor是真香!以前写CRUD是“搬砖”,现在用Cursor是“监工”。你动动嘴,它啪啪写,感觉自己离裁员...啊不,离全栈架构师又近了一步。但你有没有发现,Cursor写Java、Python逻辑是一把好手,可一旦涉及到SQL和DAO,它就开始“赌博”了。它写出来的 SQL,语法是通的,逻辑是顺的,但在数据库里跑起来——可能是灾难级的!

图片

因为它不懂你的数据量,不懂你的索引,更不懂那个跑了五年的老库里到底堆了多少垃圾数据。它只会一脸无辜地给你写个SELECT *,或者在两千万数据的表上给你整一个 Using filesort。这时候,你就需要给你的 Cursor 挂个“脑机接口”了。

介绍一下今天的狠活:DBdoctor MCP Server

一、所谓的“外挂”到底挂在哪?

简单说,Cursor 以前是“盲写”SQL,它只有语料库。 装了 DBdoctor 的 MCP Server 之后,Cursor 直接连上了 DBdoctor 的“数据库优化大脑”。这个大脑不仅能基于Cost优化器给出精准的索引推荐,还能直接接管并重构你的烂SQL。所以,Cursor 不再是瞎猜,而是瞬间拥有了强大的SQL改写和性能优化能力

别光听我说——直接看看它是如何精确接管并重构你的DAO层代码的。在日常开发中,最让人头秃的场景莫过于改 DAO 层代码,比如 MyBatis 的 XML 或者 Mapper 接口。

以前你的痛苦流程:

1.发现接口慢,被运维人员追杀

2.扔到数据库客户端里跑 Explain,盯着执行计划发呆

3.改好 SQL

4.再小心翼翼地把 SQL 塞回 XML 里,祈祷标签别复制漏了

装了DBdocto外挂之后,流程变成了这样:

第一步: 你直接在 Cursor 编辑器里,给出慢SQL,在 Chat 框里敲一句:“这个SQL性能不行,帮我优化一下,直接优化DAO层代码”,DBdoctor 接管战场,拿到慢SQL调用DBdoctor SQL改写MCP进行SQL优化。

图片

图片

第二步:基于SQL结果完成DAO层代码修改

图片

第三步: 那段绿色的代码,点击Cursor的Apply按钮。 啪!原本的代码被替换了。连变量名都没乱,格式都给你对齐了。

你唯一要做的就是按Ctrl+S。

二、怎么装?手把手教你

别被“Server”这个词吓到了,配置起来其实就三步。

1.搞定 DBdoctor 环境

首先,从DBdoctor官网(https://www.dbdoctor.cn/?utm=01)下载最新安装包并完成安装,然后你需要去下载 DBdoctor 的 MCP 组件。

传送门下载地址:

https://jhktob-test.oss-cn-beijing.aliyuncs.com/server.py

2.告诉 Cursor 你有“外挂”了

找到 Cursor 的配置文件(一般在 claude_desktop_config.json 或者 Cursor 设置里的 MCP 栏目),加上这段配置:

图片


{
  "mcpServers": {
    "sql-rewrite": {
      "command": "python",
      "args": [
        "E:/DBdoctor/DBdoctor/mcpserver/server.py"
      ],
      "env": {
        "SQL_REWRITE_API_URL": "http://10.18.210.10:13000/drapi/ai/rewriteAsync",
        "SQL_REWRITE_TASK_DETAIL_API_URL": "http://10.18.210.10:13000/drapi/ai/sqlRewriteHistoryDetail",
        "SQL_REWRITE_USER_ID": "tester",
        "SQL_REWRITE_USER_ROLE": "dev",
        "SQL_REWRITE_INSTANCE_ID": "mysql-qyd740m4",
        "SQL_REWRITE_DB_NAME": "dbd_test",
        "SQL_REWRITE_AUTH_TOKEN": "eyJhbGciOiJIUzI1NiIsIlR5cGUiOiJKd3QiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjMzMjc3NTc1Mzc0LCJ1c2VybmFtZSI6InRlc3RlciJ9.j73xgg-j8dIMvQFbY5qf7KxPh-INEzxiwnKup-DBzRY",
        "SQL_REWRITE_POLL_INTERVAL": "3",
        "SQL_REWRITE_MAX_POLL_COUNT": "20"
      }
    }
  }
}

各字段含义如下所示:

{
  "mcpServers": {
    "sql-rewrite": {
      // Python 解释器命令,可以是 "python"、"python3" 或完整路径如 "C:\\Python313\\python.exe"
      "command": "python",

      // MCP 服务器脚本的路径(数组格式)
      "args": [
        "E:/DBdoctor/DBdoctor/mcpserver/server.py"
      ],

      // 环境变量配置
      "env": {
        // SQL 改写 API 的基础 URL(提交 SQL 改写任务)
        "SQL_REWRITE_API_URL": "http://10.18.210.10:13000/drapi/ai/rewriteAsync",

        // 任务详情查询 API 的基础 URL(查询任务结果)
        "SQL_REWRITE_TASK_DETAIL_API_URL": "http://10.18.210.10:13000/drapi/ai/sqlRewriteHistoryDetail",

        // 默认用户 ID(调用 API 时使用)
        "SQL_REWRITE_USER_ID": "tester",

        // 默认用户角色(调用 API 时使用)
        "SQL_REWRITE_USER_ROLE": "dev",

        // 默认数据库实例 ID(如果调用 rewrite_sql 时未指定 instanceId,将使用此值)
        "SQL_REWRITE_INSTANCE_ID": "mysql-qyd740m4",

        // 默认数据库名称(如果调用 rewrite_sql 时未指定 dbName,将使用此值)
        "SQL_REWRITE_DB_NAME": "dbd_test",

        // 认证 Token(用于 API 请求的 auth_token 头)
        "SQL_REWRITE_AUTH_TOKEN": "eyJhbGciOiJIUzI1NiIsIlR5cGUiOiJKd3QiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjMzMjc3NTc1Mzc0LCJ1c2VybmFtZSI6InRlc3RlciJ9.j73xgg-j8dIMvQFbY5qf7KxPh-INEzxiwnKup-DBzRY",

        // 轮询间隔(秒)- 当查询任务结果为空时,等待多少秒后再次查询
        "SQL_REWRITE_POLL_INTERVAL": "3",

        // 最大轮询次数 - 如果任务结果一直为空,最多轮询多少次后停止
        "SQL_REWRITE_MAX_POLL_COUNT": "20"
      }
    }
  }
}
3.重启 Cursor

重启之后,你会发现你的 AI 助手突然“开窍”了。它不再是一个只会写代码的 Junior,而是一个带着资深 DBA 经验的 Senior Engineer。

二、总结一下

现在大家都在卷 AI 编码速度,但真正拉开差距的,从来不是谁代码写得更快,而是谁的代码上线后不炸、半夜不响告警、流量高峰还能扛住。Cursor 给了我们光速编码的能力,DBdoctor 给了我们“敢上生产”的底气,把两者合体,才是未来最硬核的开发姿势。

Talk is cheap,直接上车:

MCP脚本直达:

https://jhktob-test.oss-cn-beijing.aliyuncs.com/server.py

DBdoctor官网:https://www.dbdoctor.cn/?utm=01

装完记得回来打个卡,告诉我你的慢查询从 8 秒变 8 毫秒的那一刻,爽不爽?

注:直接在浏览器中打开脚本可能会有乱码,可直接使用curl或者wget命令下载:

curl -o server.py https://jhktob-test.oss-cn-beijing.aliyuncs.com/server.py
wget https://jhktob-test.oss-cn-beijing.aliyuncs.com/server.py
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐