前言
- 最近我尝试在 Windows 系统上为 Claude Code配置 MySQL 的 MCP 插件,目的是让 AI 能够查询甚至操作数据库,在此过程中,我尝试了三款不同的 MCP 插件。其中第一款插件在设计上对 SQL 语句有一定限制,导致大模型需要多次调整生成的 SQL 语句才能成功调用。
- 环境说明:Windows 11, Claude Code版本v2.0.22,MySQL版本8.0.25,Node.js版本v22.19.0,npm版本11.6.2,uv版本0.8.22
- 本文记录了配置过程中的经验与问题,可能存在疏漏或更优的实践方式,欢迎指正交流,共同学习进步!
插件1:database-server
该插件源自这篇文章,但原文并未涉及 Windows 版 Claude Code 的配置方法,而 Windows 与 Linux 环境下的配置确实存在一些差异。因此,本文在此补充 Windows 平台下的具体配置步骤,以供参考。https://blog.youkuaiyun.com/weixin_41793160/article/details/151686576
第一步:安装插件
npm install -g @executeautomation/database-server

第二步:配置
claude mcp add --transport stdio database-server -- cmd /c "npx @executeautomation/database-server --mysql --host <数据库主机地址> --port <数据库端口> --database <数据库名称> --user <数据库用户名> --password <数据库密码>"
这里的 database-server 仅是一个自定义的插件名称,可以根据需要将其替换为任意有意义的名称。此外请将配置命令中的占位符(包括尖括号 <> 本身)根据您的实际环境完整替换为对应值。例如,将 --host <数据库主机地址> 改为 --host 127.0.0.1
- <数据库主机地址>:MySQL 服务器的 IP 地址或域名,例如127.0.0.1。
- <数据库端口>:MySQL 服务监听的端口号,默认为3306,请根据实际配置填写。
- <数据库名称>:要连接的具体数据库名。
- <数据库用户名>:用于连接数据库的用户名,需具备相应权限。
- <数据库密码>:对应用户的密码。
这里我在名为 SQLwriter 的项目目录下执行了上述配置命令。这样,该 MCP 插件仅在当前项目中生效——当我在 SQLwriter 项目中开发时,Claude Code 会自动加载此数据库插件;而在其他项目中则不会启用,避免了不必要的干扰或配置冲突。

从终端操作后可以观察到,用户目录下的 .claude.json 文件已被自动更新(例如在我的电脑上路径为 C:\Users\yu.claude.json,其中 yu 是我的用户名)。该文件不仅记录了各项目的 MCP 插件配置,还按项目隔离保存了聊天历史等信息。
刚才执行的配置命令,实际上就是在当前项目(如 SQLwriter)对应的配置区块中,更新了 mcpServers 字段。这也说明:我们完全可以手动编辑 .claude.json 文件来管理插件配置,但需特别注意 JSON 格式的正确性(如引号、逗号、括号匹配等),否则可能导致 Claude Code 无法正常读取配置。

第三步:测试验证
claude mcp list

当看到终端输出末尾出现 √ Connected 时,即表示插件配置成功。
也可以在项目目录下运行 claude 启动 Claude Code,然后输入 /mcp 命令,同样会显示 √ Connected,确认插件已正确加载并连接。

这里做了一个简单测试:由于当前项目中包含一些程序文件,若在提示词中未明确指定使用 MCP 工具查询数据库,Claude Code 通常会倾向于通过编写代码的方式来访问数据,而非直接调用数据库插件。

可以看到,在多次尝试使用 MCP 后,最终成功返回了查询结果,说明插件已正确配置并能正常工作。
如果需要删掉插件,可以通过如下命令
claude mcp remove database-server

插件2:mysql_mcp_server
第一步:下载插件
git clone https://github.com/designcomputer/mysql_mcp_server.git

第二步:配置
claude mcp add --transport stdio mysql-server -- cmd /c "uv --directory <mysql_mcp_server项目路径> run mysql_mcp_server" --env MYSQL_HOST=<数据库主机地址> MYSQL_PORT=<数据库端口> MYSQL_USER=<数据库用户名> MYSQL_PASSWORD=<数据库密码> MYSQL_DATABASE=<数据库名称>
这里的 mysql-server 仅是一个自定义的插件名称,可以根据需要将其替换为任意有意义的名称。此外请将配置命令中的占位符(包括尖括号 <> 本身)根据您的实际环境完整替换为对应值。例如,将 --host <数据库主机地址> 改为 --host 127.0.0.1
- <mysql_mcp_server项目路径>:GitHub 上该 MCP 插件项目的本地克隆路径。
- <数据库主机地址>:MySQL 服务器的 IP 地址或域名,例如127.0.0.1。
- <数据库端口>:MySQL 服务监听的端口号,默认为3306,请根据实际配置填写。
- <数据库名称>:要连接的具体数据库名。
- <数据库用户名>:用于连接数据库的用户名,需具备相应权限。
- <数据库密码>:对应用户的密码。
第三步:测试验证

测试验证类似插件1的步骤,这里就不再过多赘述。
插件3:mcp-server-mysql
第一步:下载插件
这里采用的方式是将 GitHub 项目克隆到本地。项目文档中提到的 npm 全局安装方法我也尝试过,但未能成功。
git clone https://github.com/benborla/mcp-server-mysql.git
注:如果下载速度较慢,可尝试使用Github Proxy https://github.akams.cn/加速,只需将目标仓库地址粘贴到页面箭头所示位置,点击“复制”按钮,然后在终端中执行生成的命令即可完成下载。

进入已下载的项目文件夹,打开终端并执行以下命令

npm install
npm run build

第二步:配置
claude mcp add --transport stdio mcp_server_mysql -- <本机node所在路径> <index.js所在路径> --env MYSQL_HOST=<数据库主机地址> MYSQL_PORT=<数据库端口> MYSQL_USER=<数据库用户名> MYSQL_PASS=<数据库密码> MYSQL_DB=<数据库名称> ALLOW_INSERT_OPERATION=false ALLOW_UPDATE_OPERATION=false ALLOW_DELETE_OPERATION=false
-
<本机node所在路径>:填写你本地 Node.js 可执行文件的完整路径,例如:“E:/Program Files/nodejs/node.exe”。注意路径需用英文双引号 “” 包裹,可以通过where node找到本地 Node.js 可执行文件。

-
<index.js所在路径>:填写 mcp-server-mysql 项目中 index.js 文件的完整路径,例如:“E:/mcp-server-mysql/dist/index.js”。同样请使用英文双引号包裹路径。
-
<数据库主机地址>:MySQL 服务器的 IP 地址或域名,例如127.0.0.1。
-
<数据库端口>:MySQL 服务监听的端口号,默认为3306,请根据实际配置填写。
-
<数据库名称>:要连接的具体数据库名,若启用多数据库模式,则此项省略。
-
<数据库用户名>:用于连接数据库的用户名,需具备相应权限。
-
<数据库密码>:对应用户的密码。
-
最后的三个 false 选项可根据实际需求调整为 true。
-
更多的配置选项,请参考项目 GitHub 仓库中的说明文档。

打开 .claude.json 文件,可以看到执行上述命令后自动写入的配置。当然,你也可以跳过命令行操作,直接手动编辑该文件,但请务必确保 JSON 格式正确,以免配置失效。

第三步:测试验证
通过两种方式查看 MCP 插件的连接状态:一是在命令行中执行 claude mcp list,二是在 Claude 聊天界面中输入 /mcp。两种方式均可显示插件处于 connected 状态。

问题测试也正常调用MCP工具

补充资料:Claude Code官方文档https://docs.claude.com/zh-CN/docs/claude-code/mcp

2167

被折叠的 条评论
为什么被折叠?



