Cursor 集成 MCP MySQL 服务器完整配置指南:把 Base URL 改到 TaoToken

发布时间:2026/10/7 7:12:30
Cursor 集成 MCP MySQL 服务器完整配置指南:把 Base URL 改到 TaoToken 1. 为什么要在 Cursor 里接一个 MySQL MCP 服务器先说清楚这东西是什么。MCP 全称 Model Context Protocol你可以把它理解成给 AI 编辑器装的一根「数据线」——Cursor 本身能读你项目里的代码文件但它默认看不到你数据库里有什么表、字段长什么样、某条 SQL 跑出来是什么结果。接上 MySQL 的 MCP 服务器之后你在 Cursor 的 chat 窗口里用mysql-local就能直接让 AI 帮你查表结构、跑只读 SQL、看统计结果不用再切到 Navicat 或者命令行来回粘贴。适合谁用三类人最明显一是后端开发天天要对着几张业务表写查询和联调二是做数据核对的同学需要频繁SELECT COUNT(*)验证数据对不对三是刚接手一个陌生库想快速摸清表结构的人。我自己最常用的场景就是让 AI 先SHOW CREATE TABLE看一眼字段再根据字段帮我拼一条带条件的查询省掉大量翻文档的时间。但这里有个容易被忽略的点MCP 服务器本身只是个「执行器」它负责把 AI 生成的 SQL 发到数据库、把结果拿回来。真正决定你用得顺不顺的是两件事——一是 MCP 的连接参数配得对不对二是 AI 模型这一侧的请求走哪条链路。很多教程只讲前半段配完mcp.json就结束了结果发现 Cursor 里模型响应慢、或者干脆连不上模型卡在鉴权那一步。这篇就把这两段链路都串起来讲MySQL 的 MCP Server 怎么声明、连接参数和鉴权字段怎么填以及把 Cursor 的 Base URL 指向 TaoToken 之后模型请求和 MCP 工具调用怎么配合起来跑通。下面所有配置我都按 Windows 11 Cursor 的路径来写Mac 和 Linux 只需要把配置文件的路径换一下字段完全一致。整个过程分四步装包、写mcp.json、重启验证、跑一条只读 SQL。每一步我都会给出可直接复制的片段以及跑完之后你应该看到什么。2. 前置准备Node 环境、MySQL 账号与 TaoToken 的 Base URL 设置在动mcp.json之前有三样东西必须先到位否则后面报错你会分不清是哪一环出的问题。第一是 Node.js 环境。MCP MySQL 服务器是通过npx拉起来的一个 Node 进程所以本机得有 Node。打开 PowerShell 敲node -v能打印出版本号比如v20.x就行。没有的话去 Node 官网装 LTS 版本装完重开一个终端再验证。这一步别跳过我见过有人mcp.json写得完全正确但 Cursor 日志里一直报command not found: npx就是 Node 没装或者没进 PATH。第二是 MySQL 的访问账号。强烈建议不要用 root 直接接 MCP而是单独建一个只读账号。原因很直接MCP 工具里有execute这种能跑 INSERT/UPDATE/DELETE 的能力虽然你平时只用查询但万一 AI 理解错了你的意图给它一个只读账号就是最后一道保险。建账号的 SQL 大概长这样CREATE USER mcp_ro% IDENTIFIED BY 你的强密码; GRANT SELECT, SHOW VIEW ON your_db.* TO mcp_ro%; FLUSH PRIVILEGES;注意SHOW VIEW这个权限因为SHOW CREATE TABLE在某些版本下需要它。只给SELECT有时候看表结构会失败这是个容易踩的坑。第三是模型这一侧的链路。Cursor 默认走官方端点但如果你想让模型请求统一走一个可控的入口就需要把 Base URL 改到 TaoToken。TaoToken 是一个兼容 OpenAI 接口规范的模型调用入口官网在https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI 端点是https://taotoken.net/api。它的作用是让你在 Cursor 里配置一个自定义的 Base URL 和 API Key模型请求就从这里出去。你需要在 TaoToken 的控制台里先创建一个 API Key控制台地址是https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite创建 Key 的页面在https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite。这里要区分清楚两个「连接」一个是 Cursor 到模型服务的连接走 Base URL API Key另一个是 MCP Server 到 MySQL 的连接走 host/port/user/password。它们是两条独立的链路配错任何一条都会表现为「工具用不了」但排查方向完全不同。后面第五节我会专门讲怎么根据报错区分这两类问题。把这三样准备好就可以进入配置环节了。顺便提一句如果你只是想先验证模型能不能通可以打开模型对话页面https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite发一句话试试确认 Key 有效再往下走能省掉不少来回折腾。3. 可复制配置mcp.json 声明 MySQL Server 与 Base URL 指向 TaoToken这一节是全文的核心给出两份可直接复制的配置一份是 Cursor 的 MCP 配置文件mcp.json一份是 Cursor 的模型设置Base URL 指向 TaoToken。两份都要改缺一不可。先装 MCP MySQL 服务器包。打开 PowerShell执行npm install -g f4ww4z/mcp-mysql-server装完之后找到 Cursor 的 MCP 配置文件。Windows 下的路径是C:\Users\{你的用户名}\.cursor\mcp.json如果.cursor目录下没有mcp.json直接新建一个。Mac 和 Linux 对应的是~/.cursor/mcp.json。写入下面这段配置{ mcpServers: { mysql-local: { command: npx, args: [ f4ww4z/mcp-mysql-server, --host, 127.0.0.1, --port, 3306, --user, mcp_ro, --password, 你的强密码, --database, your_db ] } } }几个字段说明一下。mysql-local是你在 Cursor chat 里时用的名字可以改成mysql-prod之类但后面所有引用都要跟着改。--port默认 MySQL 是 3306如果你本地改过端口比如 3307就填实际值。--database建议显式指定不然 AI 查询时可能因为没选库而报No database selected。关于密码硬编码的问题mcp.json目前对env字段的支持在不同版本里表现不一致稳妥做法是先用明文跑通确认链路没问题后再考虑把密码换成环境变量引用。如果你确实想用环境变量可以这样写{ mcpServers: { mysql-local: { command: npx, args: [ f4ww4z/mcp-mysql-server, --host, 127.0.0.1, --port, 3306, --user, mcp_ro, --password, ${env:MYSQL_MCP_PASSWORD}, --database, your_db ], env: { MYSQL_MCP_PASSWORD: 你的强密码 } } } }注意${env:...}这种写法是否生效取决于 Cursor 版本实测下来部分版本不解析这个占位符会直接把字符串当密码传过去导致鉴权失败。所以我的建议是先用明文跑通跑通之后再决定要不要折腾环境变量。接下来是第二份配置——把 Cursor 的模型 Base URL 指向 TaoToken。打开 Cursor 设置找到 Models 这一栏关闭官方模型添加一个自定义模型。关键字段是三个字段填写内容Base URLhttps://taotoken.net/apiAPI Key你在 TaoToken 控制台创建的 KeyModel ID你计划使用的模型标识按控制台里可用的填Base URL 这里注意不要带末尾斜杠也不要带/v1之外的路径标准写法就是https://taotoken.net/api。填完之后点 Verify 或者直接发一条消息测试。如果这一步报 401说明 Key 不对或者没带上如果报连接超时说明 Base URL 写错了。这两个报错在第五节会详细对照。这里有个细节Cursor 的模型设置和 MCP 配置是分开存的改完模型设置不需要重启但改完mcp.json必须完全重启 Cursor。很多人改完mcp.json发现工具没出现就是因为只关了窗口没退进程。4. 验证请求重启 Cursor、看 MCP 日志、跑一条只读 SQL配置写完接下来是验证。这一步别偷懒按顺序来出问题好定位。第一步完全退出 Cursor。注意是退出进程不是关窗口。Windows 下可以在任务管理器里确认Cursor.exe已经没了或者右下角托盘图标右键退出。然后重新打开 Cursor打开你的项目。第二步看 MCP 是否加载成功。打开 Cursor 的设置找到 MCP 这一栏正常情况下你应该能看到mysql-local这个服务器状态是绿色的圆点或者显示 connected。如果显示红色或者一直转圈说明进程没起来去看日志。第三步看 MCP 日志。Cursor 的 MCP 日志入口在设置里的 MCP 面板点开对应服务器的日志。正常启动的日志里会有类似「server started」「listening」的字样。如果看到Error: connect ECONNREFUSED 127.0.0.1:3306那是 MySQL 没启动或者端口不对如果看到Access denied for user那是账号密码或权限问题。第四步跑一条只读 SQL 验证。在 Cursor 的 chat 窗口里输入mysql-local 执行: SELECT 1 AS test_connection;如果一切正常你会看到返回一个test_connection 1的结果。这一步能通说明 MCP Server 到 MySQL 的链路是通的。接着验证表结构读取mysql-local 执行: SHOW TABLES;再验证一条带条件的查询mysql-local 执行: SELECT COUNT(*) FROM your_table WHERE status active;配置成功后以下 MCP 工具会自动可用你可以在 chat 里直接让 AI 调用工具名作用mcp_mysql-local_connect_db建立数据库连接mcp_mysql-local_query执行 SELECT 查询mcp_mysql-local_execute执行 INSERT/UPDATE/DELETEmcp_mysql-local_list_tables列出所有表mcp_mysql-local_describe_table查看表结构这里提醒一句虽然execute工具存在但如果你按第二节建的是只读账号它执行写操作时会直接被 MySQL 拒绝这是预期行为不是 bug。想验证写权限是否被正确限制可以故意让 AI 跑一条UPDATE看它是不是报权限错误——报错反而说明你的安全边界生效了。如果你在验证阶段想单独测 MCP Server 本身可以装一个 Inspectornpm install -g modelcontextprotocol/inspector npx modelcontextprotocol/inspector npx f4ww4z/mcp-mysql-server --host 127.0.0.1 --port 3306 --user mcp_ro --password 你的强密码然后浏览器打开http://localhost:6274在界面里手动调用工具。这个方式能把「MCP Server 本身有没有问题」和「Cursor 有没有正确加载」两件事分开排查时很有用。5. 常见报错排查401、local proxy failed、reading choices、OAuth这一节按真实报错来对照。我把配置过程中最常撞见的几类错误列出来每类都告诉你它属于哪条链路、怎么修。报错一401 Unauthorized。这个几乎都出在模型链路也就是 Cursor 到 TaoToken 这一段。原因通常是 API Key 没填、填错、或者 Key 被删了。去 TaoToken 控制台https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite确认 Key 还在然后回到 Cursor 的 Models 设置里重新粘贴一遍。注意粘贴时别带多余空格Key 前后有空格也会导致 401。报错二local proxy failed。这个报错通常出现在 Cursor 尝试走本地代理转发请求的时候。如果你在 Cursor 设置里配了代理相关选项或者系统环境变量里有HTTP_PROXY/HTTPS_PROXYCursor 可能会尝试走代理而代理又没起来就报这个。解决方式是检查 Cursor 设置里的网络配置把不需要的代理项清掉同时确认 Base URL 是直连的https://taotoken.net/api。这个报错和 MCP 本身无关别去翻mcp.json。报错三reading choices 相关错误。这类报错一般长这样Cannot read properties of undefined (reading choices)。它说明请求发出去了但返回的结构里没有choices字段Cursor 解析不了。常见原因是 Base URL 写成了https://taotoken.net/api/v1或者带了多余路径导致请求打到了错误的端点。把 Base URL 改回https://taotoken.net/api再试。另一个可能是 Model ID 填错了控制台里没有这个模型返回体自然不对。报错四OAuth 相关错误。如果你在配置里看到 OAuth 字样多半是 Cursor 的某个模型走的是 OAuth 鉴权流程而不是 API Key。这时候要确认你添加的是「自定义模型」而不是官方模型官方模型走 OAuth自定义模型走 API Key。把官方模型关掉只留自定义的那个。报错五MCP 工具不出现。这个属于 MCP 链路。按顺序查mcp.json的 JSON 格式对不对用在线 JSON 校验器过一遍、Node 和 npx 在不在 PATH、MySQL 服务起没起、账号密码对不对。日志里ECONNREFUSED是连不上 MySQLAccess denied是鉴权失败command not found是 Node 环境问题。报错六No database selected。查询时报这个说明mcp.json里没写--database或者 AI 生成的 SQL 没带库名。在配置里补上--database字段即可。排查的核心思路就一句话先分清是模型链路还是 MCP 链路。判断方法很简单——如果 Cursor 里发普通消息不涉及mysql-local都报错那是模型链路如果普通消息正常只有mysql-local报错那是 MCP 链路。分清了再去看对应的日志效率高很多。6. 把链路固定下来日常使用与长期编码的配置建议跑通之后日常使用其实很轻。你只需要在 chat 里mysql-local加上你的意图比如「帮我看看 orders 表最近 7 天的订单量按状态分组」AI 会自己决定调list_tables还是describe_table再拼 SQL 执行。我自己的习惯是先让它describe_table看一眼字段确认字段名没记错再让它写查询这样返工少。如果你打算长期在 Cursor 里做编码和数据库联调建议把模型链路固定成一个稳定的配置。TaoToken 这边有 Coding Plan 的入口https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite适合需要持续调用、不想每次手动换 Key 的场景。接入文档在https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite里面把 Base URL、鉴权头、模型列表都列清楚了配 Cursor 的时候对着看一遍能少踩坑。最后给几个实用技巧。第一mcp.json改完一定完全重启 Cursor别只关窗口。第二给 MCP 用的 MySQL 账号坚持只读写操作走别的通道。第三如果同时接多个库可以在mcpServers里加多个条目比如mysql-local和mysql-test用不同的名字区分chat 里的时候选对应的。第四Base URL 和 API Key 这类敏感信息别提交到 Gitmcp.json如果放在项目目录里记得加进.gitignore。配置这件事第一次跑通会花点时间但一旦通了后面每天省下的切窗口、翻表结构的时间是实打实的。把上面两份配置抄进去按第四节的验证步骤走一遍基本就能用起来了。