Spring Boot + MySQL MCP 集成标准流程
本文介绍了如何在Spring Boot项目中安全配置MySQL Model Context Protocol (MCP)的开发环境。主要内容包括:创建专用开发数据库和受限权限账号;在项目级别配置MCP连接;与Spring Boot数据源共享环境变量;验证MCP连接性;以及数据库操作示例。重点强调了安全最佳实践,如开发/生产环境隔离、最小权限原则和操作日志追踪。通过这种配置方式,可以在保证开发便捷性
·
1️⃣ 前提准备
- 已安装 Claude Code CLI (
claude) - 已在 WSL 或 Linux 下配置好 Node.js 和 npx
- 已创建 Spring Boot 项目,并且有一个开发环境的 MySQL 数据库
2️⃣ 数据库账号和权限设置(安全必做)
不要直接用 root 账号!
假设开发库名为 dev_db,MySQL 命令如下:
CREATE DATABASE dev_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'dev_user'@'%' IDENTIFIED BY 'dev_pass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER ON dev_db.* TO 'dev_user'@'%';
FLUSH PRIVILEGES;
✅ 注意:
- 不要授予
DROP DATABASE、GRANT权限 - 只允许开发库被操作
3️⃣ 在项目里配置 MySQL MCP(project 级别)
切换到 Spring Boot 项目根目录:
cd /mnt/d/projects/my-springboot-app
执行:
claude mcp add mysql -s project \
-e MYSQL_HOST=127.0.0.1 \
-e MYSQL_PORT=3306 \
-e MYSQL_USER=dev_user \
-e MYSQL_PASSWORD=dev_pass \
-e MYSQL_DATABASE=dev_db \
-- npx -y @modelcontextprotocol/server-mysql
⚡
-s project确保 MCP 配置只对当前项目生效
配置成功后,.claude.json 文件里会有类似内容:
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-mysql"],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "dev_user",
"MYSQL_PASSWORD": "dev_pass",
"MYSQL_DATABASE": "dev_db"
}
}
}
}
4️⃣ Spring Boot 数据源配置(可选)
如果你希望 MCP 操作和 Spring Boot 使用同一个数据库环境,建议使用环境变量:
在 .bashrc 或项目 .env 中:
export DB_HOST=127.0.0.1
export DB_PORT=3306
export DB_USER=dev_user
export DB_PASS=dev_pass
export DB_NAME=dev_db
application.yml:
spring:
datasource:
url: jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME}
username: ${DB_USER}
password: ${DB_PASS}
这样 MCP 和 Spring Boot 都能自动连接到 dev 数据库。
5️⃣ 验证 MCP 是否生效
claude mcp list
应该看到类似输出:
mysql: npx -y @modelcontextprotocol/server-mysql - ✓ Running
如果失败,检查:
- Node.js 代理是否生效
- 数据库是否能连通
.claude.json是否在项目根目录
6️⃣ Claude 操作数据库示例
进入项目目录:
cd /mnt/d/projects/my-springboot-app
claude
在 Claude CLI 里:
/init
然后就可以让 Claude 生成建表语句、增删改查:
/create table user(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), email VARCHAR(100));
/insert into user(name, email) values("FishG", "fishg@example.com");
/select * from user;
MCP 会把这些命令通过 dev_user 连接到
dev_db执行。
7️⃣ 权限和安全最佳实践
- MCP 只连开发库,不连测试或生产
- 开发库账号只给必要权限
- 日志留存,每次 Claude 执行 SQL 都可以追踪
- 如果需要多人开发,每人都可以配置 project 级 MCP,互不干扰
✅ 总结
- 每个后端项目只需 一个 project 级 MySQL MCP,连开发库即可
- 环境变量管理数据库连接,保证 Spring Boot 和 MCP 一致
- 测试 / 生产不要给 MCP 权限
- 安全权限控制 + 日志追踪
更多推荐


所有评论(0)