用 Laravel MCP 让 AI 直接读取数据库表结构

AI摘要
本文介绍了如何利用 Laravel 官方的 MCP 包,让 AI 编程助手(如 Cursor)能够自动查询数据库表结构以提升代码生成准确率。核心是通过配置 MCP 服务器,使 AI 能安全调用本地工具获取项目信息,简化了开发流程。

在日常使用 AI 编程时,难免会遇到大模型想要获取数据库的表结构来生成代码,但是我们写 php 很少在代码中写数据库的结构体,或者字段列表,所以每次都要手动复制表结构给它。

最近看到 Laravel 官方出了个 MCP 包,MCP 是 OpenAI 推出的一个协议,就是让 ai 可以调用自己写的小工具的一个协议,常用的 ai 编辑器(例如cursor、claude code)等都是支持 MCP 协议的。

我写了一个事例,放到了 github 如果有需要也可以放到本地运行,仓库地址

其实不仅仅是获取数据库结构,借助 MCP 可以实现很多个性化需求,例如查询项目信息、调用IMAP读取邮件等等,用法很多。

使用

使用方式很简单,把仓库下载下来,安装 composer 依赖,在 .env 配置好连接信息即可,与日常 Laravel 项目无异。

代码位置在 \App\Mcp\Servers\MysqlServer 可以看一下,实现方式非常简单,只有几十行代码。

以 cursor 为例,打开 cursor 的设置页面,找到 MCP 设置,添加以下 json 配置:

{
  "mcpServers": {
    "mysql": {
      "args": [
        "D:\\code\\data\\laravel-mcp-mysql\\artisan",
        "mcp:start",
        "mysql"
      ],
      "command": "php",
      "type": "stdio"
    }
  }
}

注意将 D:\\code\\data\\laravel-mcp-mysql\\artisan 替换为你本地 Laravel 项目中 artisan 文件的绝对路径,如果本地安装了多个 PHP 版本,可以将 php 也改为绝对路径。

配置流程如下:

img.png

每次调用 MCP 之前,都会询问是否同意执行,所以安全性还是可以的:

img.png

这样在写一些数据库查询时,大模型会自己去查询对应的表结构,然后生成代码,比盲写准确率会高很多

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 4
alante

www.npmjs.com/package/@nilsir/mcp-... 安利一个我用 claude 实现的,支持大部分的AI

2周前 评论
nff93

不如一步到位直接使用 Laravel Boost boost.laravel.com

2周前 评论
荒街! (楼主) 2周前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!