接入第一个 MCP Server:让 AI 自己看你的数据库

之前咱们说了 MCP 是什么,这篇直接开始动手。

目标很小也很简单:让 AI 能自己连上你的数据库,看表结构、查数据。 就这一件小事。

可别小看它。接完之后,你不用再把建表语句一条条粘给它了------它自己就可以去看。


先准备两样东西

一个支持 MCP 的客户端。 我用 Cursor 举例,Claude Code 之类的也差不多,配置格式基本通用。

一个只读的数据库账号。 这条我要加粗:数据库务必新建一个只读账号,别图省事用 root,也别用你日常的开发账号。

原因后面说,先把这个账号建好:

  • 只给 SELECT 权限
  • 只给需要让它看的那个库
  • 密码单独设,别和其他地方复用

顺便说个好消息:这个 server 自己默认也是只读的。 官方配置表里,写操作要显式打开 ALLOW_INSERT_OPERATION、ALLOW_UPDATE_OPERATION、ALLOW_DELETE_OPERATION、ALLOW_DDL_OPERATION 四个开关,默认全是 false,连事务都会被强制成只读。

但这是它的默认,不是数据库的权限,两码事。工具哪天改了默认值你未必知道,数据库的权限不会自己变------账号该建还得建。

它最近一次发版是 2026 年 6 月的 2.0.9,仓库还在维护,可以放心用。


写配置

在 Cursor 里,项目根目录下建一个 .cursor/mcp.json,内容长这样(以 MySQL 为例):

json 复制代码
{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "@benborla29/mcp-server-mysql"],
      "env": {
        "MYSQL_HOST": "127.0.0.1",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "ai_readonly",
        "MYSQL_PASS": "填你自己的",
        "MYSQL_DB": "填库名"
      }
    }
  }
}

存完重启一下编辑器,让它重新加载配置。

配置里唯一需要你改的,就是最后那三行------账号、密码、库名。其余照抄。

这里单独提醒一句变量名:密码是 MYSQL_PASS,库名是 MYSQL_DB ,都是缩写,没有 MYSQL_PASSWORD 和 MYSQL_DATABASE 这种写法。这几个名字写错不会报"配置错误",只会连不上,然后你盯着 IP 和端口查半天。我照着某篇教程抄错过一次,最后是翻官方 README 才对上的------这类地方,以仓库文档为准。

再给一个更稳的写法:密码可以不放文件里。Cursor 支持 ${env:变量名} 这种插值,把上面那行改成 "MYSQL_PASS": "${env:MYSQL_PASS}",密码放进系统环境变量,配置就算误提交上去也漏不了。

Windows 用户注意一点:command 那行如果报找不到命令,多半是 npx 没进环境变量,把 npx 换成完整路径就能过。


验证它真的通了

别急着用,先确认。直接在对话里问一句:

"列出这个库里所有的表。"

如果它回你一张表清单,说明通了。如果它说"没有可用工具",回去看配置:多数情况是 JSON 格式错(末尾多了个逗号最常见),或者服务器没起来。

通了之后试个稍微复杂点的:

"orders 表有哪些索引?"

这时候你会发现一件事------它给的答案是自己查出来的,不是猜的。 这就是和以前最大的区别。


我踩的两个坑

坑一:权限给太满,它真的会改数据。

我第一次配的时候偷懒用了开发账号。有一次我让它"看看这个查询为什么慢",它分析完觉得是缺索引,然后自己动手加了索引。

它是好心,但生产库上随便加索引这件事,不该由它决定。

从那以后我只给 SELECT。想让它写数据,我会自己确认过再单独执行。

要是哪天你真需要它在开发库上写数据,也不必把整个 server 放开------它是支持按库分别授权的,写成 SCHEMA_UPDATE_PERMISSIONS=development:true,production:false 这样的形式,开发库能改、生产库照样只能看。

坑二:别把整个库都敞开。

接上之后我第一次让它"查一下用户表",它把整张表的数据全拉回来了,上下文瞬间撑满,那一次的调用费用比我想象的高不少。

后来我学乖了:需要它看哪些表,就只给那些表。 而且问问题的时候说清楚范围,"查最近十条"和"查一下这个表",代价差着数量级。


接之前,先确认这三件事

  1. 账号是只读的吗? 不是就回去改,别嫌麻烦
  2. 暴露的范围收窄了吗? 只给需要的库、需要的表
  3. 配置文件有没有进 .gitignore? 里面有密码,别提交上去

这三件事花五分钟,能省掉后面一堆麻烦。


接完之后最有意思的变化,是我开始问一些以前不会问的问题。比如"这几张表的关联看着有点乱,你觉得当初是怎么设计的"------它需要真的看懂结构才能答,而现在它能自己去看。

相关推荐
中电金信3 小时前
中电金信参编的团体标准《商业银行应用程序接口治理能力要求》正式发布
大数据·运维·人工智能
Data-Miner3 小时前
怎么用AI给Excel去重?先核对这7条再下手,别让好数据被删错:数以轻舟方案解析
人工智能·excel
小宋10213 小时前
MCP 工具也有供应链风险:注册中心、签名校验、版本锁定与白名单
开发语言·网络·人工智能·php
悟天特斯3 小时前
AI驱动的楼宇节能:从经验粗放到数据精准的转型路径
人工智能·物联网
IT古董3 小时前
AI 资讯日报|2026年9月19日:模型迭代进入高频节奏,国产全模态与算力持续突破,AI应用与具身智能加速落地
人工智能
2601_962380763 小时前
节气民俗科普视频的 AI 动效分镜工作流:从文案到成片怎么做
人工智能·音视频
启雀AI3 小时前
培训管理系统的 AI 智能陪练完整功能逻辑,以家电门店销售为例的剧本框架
人工智能·ai·软件需求·培训系统·培训平台
hunteritself3 小时前
夯爆了!Qoder 狂肝 2 小时,293 个测试全绿,Credits 一分没扣
前端·人工智能·chrome·深度学习·机器学习
RPAdaren3 小时前
AI 舆情智能体频繁断跑、漏抓发酵?90% 团队都踩了同一层坑
大数据·人工智能