大家好,我是松柏。
这几天老是听到 MCP 的概念,为了让自己不那么 out ,昨天下班之后我也是抓紧去看了下这到底是何方神圣。
MCP,全称 Model Context Protocol,是一个开源协议,目的是为大语言模型(LLM)提供一个标准化的上下文接口。也就是说,为各种应用对接 AI 提供了一个规范,就像 USB 接口一样。
听起来有点摸不着头脑,没事,看看官方给的 demo 就知道是怎么回事了。这个 demo 做的事情很简单,就是写了两个获取天气情况的方法给 AI 用!因为 AI 的训练是使用已有的数据,所以如果直接问 AI 现在几点了,那它肯定懵逼,同样 AI 也不知道明天的天气会怎么样,因为训练它的历史数据里没有。那我们让代码告诉它,它再告诉我不就完了?没错,这个 demo 做的就是这件事。
根据这个 demo ,我们自己也搓一个出来玩玩。平时开发的时候,免不了要造一些测试数据到数据库,以前都是告诉 AI DDL,让它生成对应的 insert 语句,然后手动 copy 到控制台执行。现在我们把这个过程全部交给 AI 来做,甚至把实现这个过程的代码也可以让 AI 来写!
手把手从零实现的步骤(因为官方 demo 是 python 多一点,我这里也直接用 python 了):
1)先把官方的项目初始化命令全执行一遍:
bash
# 安装 python 的包管理工具,安装后重开命令行窗口
curl -LsSf https://astral.sh/uv/install.sh | sh
# 创建项目文件夹
uv init gen-data
cd gen-data
# 创建虚拟环境并激活
uv venv
source .venv/bin/activate
ok,前置步骤就这些,接下来就是打开 ide 写代码了。
2)给 AI 我们的需求,让 AI 仿照官方的 demo 给出实现:
(我这里仅给出部分截图,源码会放到文末)
当然了,我写 prompt 的水平非常有限,一般生成出来的内容是要改吧改吧的。在改代码以前,先把依赖安装下:
csharp
uv add dotenv aiomysql mcp
3)稍微改了下上面的代码之后,我又让 GPT 给我加了一个获取某表 DDL 的功能,这样就更省事一点,使用的时候就不用我告诉它了:
4)这样功能就完成,接下来就是配置到客户端里使用。官方推荐的是 Claude for Desktop ,不过我实测下来在国内用起来很不方便,所以更推荐用 Cursor:
然后在打开的文件里写入以下内容:
json
{
"mcpServers": {
"gen-data": {
"command": "uv",
"args": [
"--directory",
"/项目文件夹路径(gen-data)",
"run",
"功能代码(main).py"
],
"env": {
"MYSQL_PASSWORD": "数据库密码"
}
}
}
}
配置之后记得重启 Cursor ,否则很可能不生效。
5)来看下效果吧:
整个过程并不难,但还是让我感受到了一些震撼,AI 的使用成本越来越低了,像我这样的普通开发者也能很轻易的把 AI 接到常用的工具中,程序员还是要紧跟科技发展的步伐,避免自己被淘汰掉,一起加油吧兄弟们!
当然了,这个 demo 就是把数据库账号密码告诉 AI ,让它自己随便去搞,所以仅限于在本地玩一玩,不要带到生产环境上。
上述demo地址:GitHub - co-pine/gen-data