用 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());
}

三条安全红线

  1. 只读账号:MySQL 专用账号只授 SELECT
  2. 表白名单:可查表硬编码在 Server 里,不透传任意 SQL
  3. 行数上限:强制 LIMIT 200,防止把内存查爆

接入 QuickAdmin 的权限体系

工具调用走我已有的网关层:谁在什么时间让 AI 查了什么,全部落到操作日志表——AI 的操作也是操作,必须可审计。

实测

自然语言 → SQL → 结果表格,平均 1.8s;复杂聚合查询准确率目测 9 成,错的 1 成是语义歧义,用字段注释解决了一半。


原文首发于本站,欢迎 RSS 订阅;有帮助点个赞,有问题评论区见。

评论 · 5 条

还没有评论,来抢沙发吧
回复
验证码