用 MCP 让 Claude 直接操作我的 MySQL:从零搭建
目标
对 Claude 说「查一下上周登录失败最多的账号」,它自己调工具查库给我表格。核心是把数据库能力以最小权限暴露出去。
Server 骨架(Java 版)
@Tool(name = "query_users", desc = "按条件查询用户")
public List<Map<String,Object>> queryUsers(UserQuery q) {
return jdbcTemplate.queryForList(q.toSql(), q.args());
}三条安全红线
- 只读账号:MySQL 专用账号只授 SELECT
- 表白名单:可查表硬编码在 Server 里,不透传任意 SQL
- 行数上限:强制 LIMIT 200,防止把内存查爆
接入 QuickAdmin 的权限体系
工具调用走我已有的网关层:谁在什么时间让 AI 查了什么,全部落到操作日志表——AI 的操作也是操作,必须可审计。
实测
自然语言 → SQL → 结果表格,平均 1.8s;复杂聚合查询准确率目测 9 成,错的 1 成是语义歧义,用字段注释解决了一半。
原文首发于本站,欢迎 RSS 订阅;有帮助点个赞,有问题评论区见。
评论 · 5 条