1. 先搞清楚我们要连的到底是什么
你可能已经在开发者空间里跑着 MySQL,数据也建好了,但每次让 AI 帮忙查点东西,还是得手动复制粘贴 SQL、导出 CSV、再贴回对话窗口。这套流程走三遍就烦了。MCP Server 要解决的就是这个断层:它把数据库能力包装成 AI 可以直接调用的工具,模型自己决定什么时候执行查询、什么时候读表结构,你只需要用自然语言描述需求。
整条链路是这样的:Cherry Studio 作为对话前端,通过 MCP 协议加载 MySQL MCP Server,Server 再拿着你给的连接参数去连开发者空间里的 MySQL 实例。模型侧可以用 DeepSeek,负责理解你的意图并生成工具调用指令。你不需要写一行 SQL,但每一步执行了什么、返回了什么,在对话里都能看到。
这篇文章会从零把这条链路搭起来,包括 TaoToken 统一 Key 的配置、MySQL MCP Server 的 settings.json 和 config.toml 骨架、连接参数模板,以及一次完整的查询验证。目标很明确:你跟着走完,能在自己的开发者空间里复现一次“对话即查询”的闭环。
2. TaoToken 统一 Key 的前置配置
TaoToken 在这里的角色是统一管理模型调用的凭证。你不需要在 Cherry Studio 里散落多个 API Key,而是通过一个统一入口拿到 Key 和 API 地址,填到配置文件里就行。对于同时用多个模型服务的人来说,省去的是反复切换和记录 Key 的麻烦。
先拿到你的统一 Key。访问 https://taotoken.net/?utm_source=aicontent&utm_medium=rewrite&utm_campaign=doc 完成账号准备,然后在控制台生成 Key。API 地址使用 https://taotoken.net/api 。这个地址直接填到 Cherry Studio 的模型服务配置里,不需要做额外处理。
拿到 Key 之后,建议先把它写进环境变量,而不是硬编码在 JSON 里。这样 settings.json 和 config.toml 都可以引用同一个变量,后续换 Key 只改一处:
export TAOTOKEN_API_KEY="你的统一Key"如果你在开发者空间的云主机里操作,把这一行加到~/.bashrc末尾,然后source ~/.bashrc,这样每次打开终端都自动生效。Windows 本地的话,在系统环境变量里加一条同名的用户变量即可。
注意:Key 只显示一次,复制后先存到安全的地方。不要直接提交到 Git 仓库,也不要在截图里暴露完整 Key。
3. 可复制的配置骨架
这一章给的是可以直接改参数就用的配置。分两块:一块是 Cherry Studio 侧的 settings.json,一块是 MySQL MCP Server 的 config.toml。两者配合起来,模型才能既知道用哪个 API,又知道连哪个数据库。
3.1 settings.json 骨架
Cherry Studio 的模型服务配置可以走 JSON 导入。下面这段是 TaoToken 统一 Key 的接入模板:
{ "models": [ { "provider": "openai", "name": "deepseek-chat", "apiKey": "${TAOTOKEN_API_KEY}", "baseURL": "https://taotoken.net/api", "models": [ { "id": "deepseek-chat", "name": "DeepSeek" } ] } ] }把这段保存为settings.json,在 Cherry Studio 的设置里选择从 JSON 导入。导入后检查一下模型列表里是否出现了 DeepSeek,然后点检测,看到连接成功即可。如果提示 Key 无效,先确认环境变量是否在当前会话里生效,可以在终端里echo $TAOTOKEN_API_KEY验证。
3.2 MySQL MCP Server 的 config.toml
MCP Server 侧用 config.toml 来声明连接参数。下面这个模板覆盖了 host、user、password、database 四个核心字段:
[mcp_servers.mysql] command = "npx" args = ["-y", "@f4ww4z/mcp-mysql-server"] transportType = "stdio" [mcp_servers.mysql.env] MYSQL_HOST = "127.0.0.1" MYSQL_PORT = "3306" MYSQL_USER = "root" MYSQL_PASSWORD = "你在MySQL里设置的密码" MYSQL_DATABASE = "mcp_test" [mcp_servers.mysql.autoApprove] tools = ["list_tables", "connect_db", "execute", "query", "describe_table"]几个参数的实际含义:MYSQL_HOST填 127.0.0.1 是因为 MCP Server 和 MySQL 跑在同一台开发者空间云主机上;如果你把数据库放在别的机器,改成对应 IP。autoApprove里列出的工具表示不需要每次手动确认,查询和读表结构这类只读操作可以放进去,写操作建议保留手动确认。
如果你更习惯用 JSON 格式导入,等价写法如下:
{ "mcpServers": { "mysql": { "command": "npx", "args": ["-y", "@f4ww4z/mcp-mysql-server"], "transportType": "stdio", "env": { "MYSQL_HOST": "127.0.0.1", "MYSQL_PORT": "3306", "MYSQL_USER": "root", "MYSQL_PASSWORD": "你在MySQL里设置的密码", "MYSQL_DATABASE": "mcp_test" }, "autoApprove": ["list_tables", "connect_db", "execute", "query", "describe_table"] } } }导入后如果 Cherry Studio 弹出一个错误提示,先别慌,那个通常是导入格式的兼容性提示,不影响实际使用。点确定后手动把 mysql 服务器的开关打开,看到状态变成绿色或运行中即可。
4. 从对话到结果返回的验证
配置写完,接下来要验证整条链路是通的。我试过的方式是直接在 Cherry Studio 里发一条自然语言指令,看模型能不能正确调用 MySQL MCP Server 并返回结果。
先确认 MySQL 服务在跑:
sudo systemctl status mysql如果没启动,执行sudo systemctl start mysql。然后进入 MySQL 确认 mcp_test 库存在:
SHOW DATABASES;看到 mcp_test 在列表里之后,回到 Cherry Studio。在助手界面选择 DeepSeek 模型,下方 MCP 服务器勾选 mysql。然后在对话框里输入:
使用mysql,连接数据库,连接参数如下: host:127.0.0.1 user:root password:你的密码 database:mcp_test发送后观察返回。正常情况你会看到模型先调用 connect_db 工具,返回连接成功,然后你可以继续发一条:
帮我创建一个日常生活用品的表格,包含名称、数量、单价三个字段,并添加五条测试数据,最后以表格形式展示。模型会依次调用 execute 建表和插入数据,再调用 query 查出来。整个过程在对话里以工具调用的形式展示,你能看到每一步的输入和输出。如果返回的表格里有五条数据,说明链路完全打通。
再试一条删除操作:
帮我将抽纸这条数据删除,并返回删除后的表格。这次会触发 execute 执行 DELETE,然后 query 返回剩余数据。到这里,增删改查的闭环就验证完了。
5. 常见报错与排查
连接被拒绝
报错信息通常是ECONNREFUSED 127.0.0.1:3306。先确认 MySQL 是否在运行,再确认端口有没有被防火墙拦。开发者空间云主机默认本地回环是通的,如果你改过 MySQL 的 bind-address,把它改回 127.0.0.1 或者加上你的实际 IP。
认证失败
提示Access denied for user 'root'@'localhost'。检查 config.toml 里的密码是否和你在 MySQL 里设置的一致。如果你用的是mysql_native_password插件改的密码,确认改密码的命令执行成功了。可以重新执行一次:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; FLUSH PRIVILEGES;MCP Server 启动失败
Cherry Studio 里 mysql 开关打不开,或者状态一直是红色。先确认 npx 可用:在终端执行npx --version。如果提示找不到命令,需要先装 Node.js。开发者空间 Ubuntu 环境下可以sudo apt install nodejs npm。另外确认@f4ww4z/mcp-mysql-server这个包能正常拉取,网络不通的时候 npx 会卡住。
模型不调用工具
你发了指令,但模型只回复文字,没有触发 MCP 调用。检查两点:一是 MCP 服务器开关是否打开,二是模型是否支持工具调用。DeepSeek 的 chat 模型是支持的,如果你换成了纯对话模型,可能不会触发。另外在对话设置里把目标语言改成简体中文,避免模型用英文回复导致工具调用指令格式错乱。
查询返回空结果
表建好了但查不到数据。先手动在 MySQL 里SELECT * FROM 你的表名;确认数据确实插入了。如果手动能查到但 MCP 查不到,检查 database 参数是否指向了正确的库。有时候模型会默认连到 information_schema,需要在指令里明确指定 database。
6. 接下来怎么用得更顺
链路通了之后,你可以把常用的查询封装成固定的对话模板。比如每周拉一次销售汇总,直接在 Cherry Studio 里保存这个对话,下次改个日期范围就行。MCP Server 的 autoApprove 列表也可以按需调整,把高频只读操作放进去,减少手动确认的次数。
如果你打算长期在编码和 Agent 场景里用这套组合,可以了解一下 Coding Plan 的配置方式,它更适合需要频繁调用模型和工具的开发流程。接入文档里有完整的参数说明和示例,遇到配置层面的问题可以先查那里。模型侧的选择上,DeepSeek 在工具调用上的表现比较稳定,适合作为默认选项。