1. 为什么我劝你先跑通 MySQL MCP 再谈自然语言查库
MySQL MCP 是一套把数据库能力包装成「工具」暴露给大模型的协议实现,它让 Claude、Cline、Cursor 这类客户端可以用自然语言完成建表、插入、聚合查询,而不用你手写 SQL。它最适合三类人:不熟悉 SQL 的产品和运营同学、需要快速做数据库原型验证的后端、以及想把日常查数流程自动化的数据同学。核心检索词就三个:MySQL、MCP、自然语言操作数据库。
我见过太多人卡在第一步:MCP Server 起不来,或者起来了但模型侧根本调不到。原因往往不是 MCP 本身复杂,而是调用链路被拆成了两段——本地 MCP Server 连数据库是一段,模型侧 endpoint 和鉴权是另一段。两段各自都能跑,拼在一起就报错。
这篇的做法是:先把本地 MySQL MCP Server 跑通,确认能连库、能列表、能执行;再把模型侧的 endpoint 和 Key 统一改到 TaoToken,用一个 Key 管理多个工具的调用。这样你后面接 Cline、接 Claude Code、接 Codex 都是同一套鉴权,不用每个工具配一遍。
适合谁跟做:装过 VSCode、会用命令行、有一个能连的 MySQL(本地 Docker 或远程都行)。不需要你懂 MCP 协议细节,配置片段我会给全。整个过程大概 20 分钟,其中 10 分钟在等 Docker 拉镜像。
先说清楚一个边界:MCP 是给模型提供工具调用能力的通道,不是让模型直接连生产库。生产库请用只读账号,或者干脆拿测试库练手。下面所有演示都基于测试库 mcp-test。
2. TaoToken 前置:把模型侧 endpoint 和 Key 统一收口
在配 MCP 之前,先把模型侧的调用链路定下来。因为 MCP Server 只负责「操作数据库」,真正理解你自然语言、决定调哪个工具的是模型。模型侧的 endpoint 和鉴权如果每个客户端配一套,后面维护会很痛苦。
TaoToken 在这里的角色是统一入口:你拿到一个 Key,把 Base URL 指向 https://taotoken.net/api,模型 ID 按需选。这样 Cline、Claude Code、Codex 都共用同一份鉴权,换工具不用换 Key。
具体操作路径:
先去官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 注册并登录,然后在控制台创建 API Key。控制台地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite 。Key 创建后只显示一次,复制存好。
如果你只是想先验证模型能不能通,用模型对话页面最快:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 。在里面选一个模型,发一句「你好」,能返回就说明 Key 和 endpoint 没问题。
如果你打算长期用 MCP 做编码和 Agent 任务,建议直接上 Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。它更适合高频调用场景,不用每次担心额度。
Key 管理页面在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite ,接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。这两个页面建议先收藏,后面排障会反复用到。
这里有个关键点:MCP Server 的配置里不需要填 TaoToken 的 Key,因为 MCP Server 只连数据库。TaoToken 的 Key 是填在模型客户端(Cline、Claude Code 等)的配置里。很多人第一次配会搞混,把两个 Key 填错位置,结果 MCP 起来了但模型调不动。
所以顺序是:先拿 TaoToken Key → 配模型客户端 → 再配 MCP Server → 最后联调。下面第三节先给 MCP 配置,第四节给模型侧配置,第五节联调验证。
3. 可复制配置:MySQL MCP Server 与模型侧 settings 片段
这一节给两份可复制配置:一份是 MCP Server 的 JSON,一份是模型客户端的 settings。路径和字段名保持和实际一致,你直接改数据库连接信息就能用。
先起一个测试库。用 Docker 最快:
docker run -d --name mysql-mcp \ -e MYSQL_ROOT_PASSWORD=123456 \ -e MYSQL_DATABASE=mcp-test \ -p 3306:3306 \ mysql:lts这条命令创建容器 mysql-mcp,root 密码 123456,自动建库 mcp-test,端口映射 3306。等十几秒容器起来后,用docker ps确认状态是 Up。
接下来配 MCP Server。以 Cline 为例,打开 cline_mcp_settings.json,在 mcpServers 节点下加:
{ "mcpServers": { "mysql": { "command": "npx", "args": ["-y", "@f4ww4z/mcp-mysql-server"], "env": { "MYSQL_HOST": "127.0.0.1", "MYSQL_PORT": "3306", "MYSQL_USER": "root", "MYSQL_PASSWORD": "123456", "MYSQL_DATABASE": "mcp-test" }, "transportType": "stdio", "autoApprove": [ "list_tables", "connect_db", "execute", "query", "describe_table" ] } } }三件套对照:Base URL 这里不填(MCP Server 不连模型),Key 这里不填,Model ID 这里不填。MCP Server 只认数据库连接信息。autoApprove 里列的是自动执行的工具名,省去每次手动确认。生产环境建议把 execute 从 autoApprove 里去掉,避免误删。
再配模型客户端。以 Cline 的模型设置为例,选 OpenAI Compatible,填:
{ "baseUrl": "https://taotoken.net/api", "apiKey": "你的_TaoToken_Key", "modelId": "claude-sonnet-4-5" }如果你用的是 Claude Code,配置在 settings.json 里,Base URL 填 https://taotoken.net/api ,Key 填 TaoToken 的 Key,Model ID 按文档选。Claude Code 的接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,里面有完整的 settings 示例。
如果你用 Codex,配置在 auth.json,同样是 Base URL + Key + Model ID 三件套。Codex 的 auth.json 路径通常在 ~/.codex/auth.json,字段名以文档为准。
环境变量清单(MCP Server 侧):
| 变量名 | 说明 | 示例 |
|---|---|---|
| MYSQL_HOST | 数据库地址 | 127.0.0.1 |
| MYSQL_PORT | 数据库端口 | 3306 |
| MYSQL_USER | 数据库用户 | root |
| MYSQL_PASSWORD | 数据库密码 | 123456 |
| MYSQL_DATABASE | 默认库名 | mcp-test |
模型侧环境变量(如果客户端支持):
| 变量名 | 说明 | 示例 |
|---|---|---|
| OPENAI_BASE_URL | 模型 endpoint | https://taotoken.net/api |
| OPENAI_API_KEY | TaoToken Key | sk-xxx |
| MODEL_ID | 模型 ID | claude-sonnet-4-5 |
保存配置后,Cline 的 MCP Server 列表里应该能看到 mysql,状态是绿色小点。如果没起来,看第五节排障。
4. 验证请求:用自然语言建表、插入、聚合的返回对照
配置好了,开一个新会话,开始验证。每一步我都给出提问原文和预期返回,你对照着看。
第一步,确认 MCP 服务可用。提问:
帮我查下有哪些 MCP 服务可用?
预期返回会列出 mysql,以及它提供的工具名,比如 list_tables、connect_db、execute、query、describe_table。
第二步,看当前库有哪些表。提问:
数据库中有哪些表?
空库会返回空列表。这正常,说明连接通了。
第三步,建商品表并插数据。提问:
帮我创建一个简单的商品表,并填充一些测试数据。
模型会调 execute 执行 CREATE TABLE,再调 execute 插入几条记录。返回里会显示执行的 SQL 和影响行数。这一步是验证「自然语言 → SQL」链路的关键。
第四步,查记录数。提问:
商品表中有多少条记录?
预期返回一个数字,比如 5。如果返回 0,说明插入没成功,检查 autoApprove 是否包含 execute。
第五步,列表展示。提问:
列出所有的商品,并以表格的形式显示。
返回会是 Markdown 表格,列名对应商品表字段。
第六步,建订单表和明细表。提问:
帮我创建一个简单的订单表和订单明细表。
模型可能把明细表命名为 order_items。如果你想要 order_details,直接说:
我喜欢的订单明细表名为 order_details。
模型会执行 RENAME TABLE 或重建。这一步验证的是「多轮对话中修正模型行为」的能力。
第七步,聚合查询。提问:
本月销售额是多少?
模型会写 SUM 加 WHERE 日期条件。返回一个金额数字。如果返回 NULL,说明订单数据里没有本月记录,先插几条本月订单。
第八步,看表结构。提问:
订单表的定义?
返回 CREATE TABLE 语句或字段列表。再加一句:
请为所有字段添加详细的中文注释。
模型会执行 ALTER TABLE 加 COMMENT。这一步验证的是 DDL 操作。
第九步,看服务器状态。提问:
我想查看下当前服务器的主要状态信息。
返回会包含连接数、运行时长等。这一步验证的是 SHOW STATUS 类查询。
整个流程跑下来,你应该看到:自然语言提问 → 模型决定调哪个 MCP 工具 → MCP Server 执行 SQL → 结果回传 → 模型组织成自然语言或表格。这条链路通了,后面接什么客户端都是同一套。
5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth
这一节列四个高频报错,对照你的实际报错找。
401 Unauthorized。这个几乎都是模型侧 Key 问题。检查三处:TaoToken Key 是否复制完整(有没有漏字符)、Base URL 是否是 https://taotoken.net/api (注意结尾没有斜杠)、Model ID 是否在文档支持列表里。如果 Key 没问题但还是 401,去 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 确认 Key 状态是启用。MCP Server 侧的数据库密码错也会报鉴权失败,但错误信息里会带 MySQL 字样,注意区分。
local proxy failed。这个通常出现在客户端配置了本地代理但代理没起来。检查你的客户端设置里有没有填 proxy 字段,如果有,确认代理进程在跑。另一个可能是 Base URL 填成了 localhost 但本地没有服务。把 Base URL 改成 https://taotoken.net/api 再试。
reading choices 相关报错。这个多半是模型返回格式和客户端预期不一致。检查 Model ID 是否填对,有些客户端对模型名大小写敏感。如果用的是 Claude Code,确认 settings.json 里的模型字段名和文档一致。接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,对照着改。
OAuth 报错。如果你用的是 Claude Code 或 Codex,它们可能默认走 OAuth 流程。你需要改成 API Key 模式。Claude Code 的配置里把鉴权方式改成 apiKey,Codex 的 auth.json 里填 Key 而不是 token。具体字段名看文档。如果还是报 OAuth,检查有没有残留的旧配置文件,删掉重配。
还有一个 MCP 侧的高频错:MCP Server 显示红色或灰色。先看 npx 能不能拉到包,手动跑npx -y @f4ww4z/mcp-mysql-server看报错。如果是网络问题,换 npm 源。如果是数据库连不上,用mysql -h 127.0.0.1 -u root -p手动连一下确认。
排障顺序建议:先确认数据库能连 → 再确认 MCP Server 能起 → 再确认模型侧能通 → 最后联调。不要跳步,跳步会浪费很多时间。
6. 把 Key 收口之后,我的日常查数流程变成了这样
配好之后,我日常的流程是:打开 Cline,新会话,直接问「上周新增订单里金额最高的三个商品是什么」。模型调 MCP 查库,返回表格。整个过程不用切终端,不用写 SQL。
如果你也想把这套流程固定下来,建议做三件事。第一,把 TaoToken 的 Key 存在一个地方,所有客户端都引用它,换工具不用换 Key。第二,MCP Server 的 autoApprove 只放只读工具,写操作手动确认。第三,生产库用只读账号,测试库随便造。
长期做编码和 Agent 任务的话,Coding Plan 比按次调用更省心:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。如果只是偶尔查数,模型对话页面就够了:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 。
最后留一个我踩过的坑:MCP Server 的配置改完后,一定要重启客户端,不然配置不生效。我一开始改完直接问,模型说没有可用工具,重启后就好了。