推荐使用 AI 开发主流 PHP 框架的 MCP 和 Skills
一、为什么 PHP 开发者需要关注 MCP 和 Skills
过去两年,AI 辅助编码从"自动补全"进化到了"自主完成多步任务"。驱动这一跃迁的两个关键技术是:
- MCP(Model Context Protocol):由 Anthropic 于 2024 年底开源的标准化协议,让 AI 助手能以统一方式连接外部工具和数据源。你可以把它理解为"AI 的 USB-C 接口"——不管什么工具,只要实现了 MCP 协议,AI 就能调用。
- Agent Skills:一种可复用、可分发的"能力包",封装了特定领域的操作指南、脚本和校验逻辑。AI Agent 在执行任务前先加载匹配的 Skill,获得该领域的正确做法,而不是凭空猜测。
对 PHP 开发者来说,这意味着:
- AI 不仅能读写你的代码,还能直接操作数据库、运行 Artisan 命令、执行测试套件、分析 Composer 依赖——通过 MCP 桥接,而非复制粘贴。
- 框架的最佳实践(如 Laravel 的迁移规范、Symfony 的服务容器配置约定)可以被编码进 Skill,AI 每次生成代码时自动遵循,减少"看起来对但不符合框架约定"的输出。
二、MCP 协议速览
2.1 它是什么
MCP 定义了 AI 客户端(如 Claude、Cursor、ChatGPT 等)与外部服务之间的通信规范。一个 MCP Server 可以向 AI 暴露三类能力:
| 能力类型 | 说明 | PHP 开发中的典型用途 |
|---|---|---|
| Tools | 可执行的函数 | 运行 php artisan migrate、执行 PHPUnit、清理 OPcache |
| Resources | 可读取的数据源 | 读取 composer.json、查看路由列表、获取数据库 schema |
| Prompts | 预定义的提示模板 | “根据现有表结构生成 Laravel Model”、“分析 Symfony 服务依赖” |
2.2 传输方式
MCP 支持两种传输:
- stdio:AI 客户端以子进程方式启动 MCP Server,通过标准输入/输出通信。最常见,配置最简单。
- Streamable HTTP:MCP Server 作为独立 HTTP 服务运行,可同时服务多个客户端。适合团队共享。
2.3 配置示例
以 Cursor IDE 为例,在 .cursor/mcp.json 中配置:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/your/php/project"]
},
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "/path/to/your/php/project"]
}
}
}
配置完成后,AI 就能直接读写项目文件、查看 Git 历史和差异,无需你手动粘贴上下文。
三、PHP 生态的 MCP SDK
3.1 通用 PHP MCP Server SDK — php-mcp/server
GitHub:php-mcp/server
这是 PHP 生态中最成熟的 MCP Server SDK,核心特性:
- PHP 8.1+,基于 ReactPHP 实现异步非阻塞
- Attribute 驱动:用
#[McpTool]、#[McpResource]等 PHP 8 Attribute 声明能力,零配置注册 - 自动 JSON Schema 生成:从方法签名自动推断参数 schema,AI 能准确知道每个工具需要什么参数
- PSR-11 容器支持:可与框架的 DI 容器无缝集成
- 支持 stdio、HTTP+SSE、Streamable HTTP 三种传输
快速示例——定义一个 MCP Tool:
use PhpMcp\Server\Attributes\McpTool;
use PhpMcp\Server\Attributes\Schema;
class ArtisanElements
{
/**
* 执行 Laravel Artisan 命令并返回输出
*
* @param string $command Artisan 命令名(如 migrate:status)
* @return string 命令输出
*/
#[McpTool(name: 'run_artisan')]
public function run(string $command): string
{
// 安全限制:只允许白名单内的命令
$allowed = ['migrate:status', 'route:list', 'db:show', 'config:show'];
if (!in_array($command, $allowed)) {
return "Error: command '{$command}' is not allowed.";
}
return shell_exec("php artisan {$command} 2>&1");
}
}
3.2 Laravel 专用 MCP SDK — php-mcp/laravel
GitHub:php-mcp/laravel
在 php-mcp/server 基础上做了 Laravel 深度集成:
- 通过 Artisan 命令 启动和管理 MCP Server
- 复用 Laravel 的 服务容器、缓存、日志、Session 基础设施
- 支持 Laravel 路由集成:MCP Server 可以直接挂在 Laravel 路由上,走中间件链
- Session 存储支持 file / database / cache / redis 四种后端
安装:
composer require php-mcp/laravel:^3.0 -W
php artisan vendor:publish --provider="PhpMcp\Laravel\McpServiceProvider"
3.3 其他语言的 MCP SDK
MCP 是语言无关的协议。官方和社区已提供多种 SDK:
| 语言 | SDK | 适用场景 |
|---|---|---|
| TypeScript | @modelcontextprotocol/sdk |
官方参考实现,生态最丰富 |
| Python | mcp (PyPI) |
数据科学、脚本类工具 |
| PHP | php-mcp/server |
PHP/Laravel/Symfony 项目 |
| Go | mark3labs/mcp-go |
高性能 CLI 工具 |
| Rust | rmcp |
系统级工具 |
| Java/Kotlin | 各社区 SDK | JVM 生态 |
PHP 项目中,你不需要只用 PHP SDK。混合使用完全正常——比如用 TypeScript 的 Filesystem MCP 管理文件,同时用 PHP MCP 暴露 Artisan 命令。
四、推荐配置:主流 PHP 框架的 MCP 组合
4.1 Laravel
Laravel 是 PHP 生态最流行的框架(Packagist 安装量超 6.16 亿次,截至 2026 年 11 月最新版本 v13)。
推荐 MCP 组合:
| MCP Server | 用途 | 来源 |
|---|---|---|
php-mcp/laravel |
暴露 Artisan 命令、路由列表、数据库 schema、配置信息 | php-mcp/laravel |
@modelcontextprotocol/server-filesystem |
项目文件读写 | 官方参考实现 |
mcp-server-git |
Git 操作、PR 审查 | 官方参考实现 |
| MySQL/PostgreSQL MCP | 只读数据库查询、表结构分析 | 社区实现(见 MCP Registry) |
推荐 Skills:
- Laravel 迁移规范 Skill:确保 AI 生成的 migration 文件遵循框架约定(命名、字段类型映射、回滚逻辑)
- Laravel 测试生成 Skill:根据 Controller/Model 自动生成 PHPUnit Feature Test 骨架
- Eloquent 优化 Skill:检测 N+1 查询,建议 eager loading
4.2 Symfony
Symfony 是 PHP 组件化框架的标杆(Packagist 安装量超 8800 万次,最新版本 v8)。
推荐 MCP 组合:
| MCP Server | 用途 |
|---|---|
php-mcp/server |
暴露 Symfony Console 命令、服务容器配置、路由信息 |
@modelcontextprotocol/server-filesystem |
项目文件操作 |
mcp-server-git |
版本控制 |
推荐 Skills:
- Symfony 服务容器 Skill:指导 AI 正确配置
services.yaml,理解 autowiring 和 autoconfiguration - Doctrine ORM Skill:生成符合 Doctrine 约定的 Entity、Repository,正确处理关联关系
- Symfony Maker Skill:引导 AI 使用
make:系列命令而非手写文件
4.3 ThinkPHP
ThinkPHP 是国内使用广泛的 PHP 框架(最新版本 ThinkPHP 8)。
推荐 MCP 组合:
| MCP Server | 用途 |
|---|---|
php-mcp/server |
暴露 ThinkPHP 命令行工具、路由列表、配置信息 |
@modelcontextprotocol/server-filesystem |
项目文件操作 |
| MySQL MCP | 数据库操作 |
推荐 Skills:
- ThinkPHP 路由 Skill:确保 AI 正确使用 ThinkPHP 的路由定义方式(注解路由 vs 配置路由)
- ThinkPHP ORM Skill:指导 AI 使用 ThinkPHP 的 Db 类和模型关联
- ThinkPHP 中间件 Skill:正确生成和注册中间件
4.4 CodeIgniter / Yii2
对于 CodeIgniter 4 和 Yii2,虽然目前没有框架专用的 MCP SDK,但通用方案完全够用:
- 用
php-mcp/server自行封装框架命令行工具 - 用 Filesystem + Git MCP 管理项目
- 编写框架专属 Skill 来编码最佳实践
五、通用 MCP Server 推荐
以下 MCP Server 不绑定特定框架,适用于所有 PHP 项目:
5.1 Filesystem(文件系统)
{
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/your/project/path"]
}
}
让 AI 能直接读写项目文件。安全提示:务必限定到项目目录,不要暴露整个磁盘。
5.2 Git
{
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "/your/project/path"]
}
}
AI 可以查看 diff、log、分支,甚至帮你写 commit message。
5.3 Fetch(网络请求)
{
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
让 AI 能获取在线文档(如 PHP 官方手册、框架 API 文档),在生成代码时参考最新文档而非训练数据中的旧版本。
5.4 Memory(知识图谱)
{
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
持久化记忆。AI 可以记住你的项目结构、命名约定、架构决策,跨会话保持上下文。
5.5 Sequential Thinking(顺序思考)
{
"sequential-thinking": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
}
}
让 AI 在解决复杂问题(如重构大型 Legacy PHP 代码)时,分步骤推理,每步可回溯修正。
六、Skills 实践:如何为 PHP 项目编写 Skill
6.1 什么是 Skill
Skill 是一个结构化的指令包,通常包含:
SKILL.md:Skill 的描述、触发条件、操作指南scripts/:可执行脚本(如代码分析、生成器)references/:参考文档(如框架约定、代码规范)
AI Agent 在执行任务前扫描 Skill 列表,匹配到就加载,按其中的指南行动。
6.2 示例:Laravel Migration Skill 骨架
laravel-migration-skill/
├── SKILL.md
├── scripts/
│ └── validate_migration.php
└── references/
└── migration_conventions.md
SKILL.md 核心内容:
---
name: laravel-migration-skill
description: >
指导 AI 生成符合 Laravel 规范的数据库迁移文件。
触发:用户要求创建 migration、修改表结构、新增字段。
---
## 规则
1. 迁移文件命名:`YYYY_MM_DD_HHMMSS_create_表名_table.php`
2. 必须同时创建 `up()` 和 `down()` 方法
3. 字段类型映射:
- string → $table->string('name', 长度)
- text → $table->text('name')
- integer → $table->integer('name')
- boolean → $table->boolean('name')
4. 时间戳:使用 `$table->timestamps()` 而非手动定义 created_at/updated_at
5. 软删除:使用 `$table->softDeletes()` 并在 Model 中声明 `use SoftDeletes`
## 校验
生成后运行 `scripts/validate_migration.php` 检查:
- 命名是否规范
- down() 是否正确回滚 up() 的操作
- 字段是否使用了正确的类型
6.3 Skill 发现与安装
多数 AI Agent 平台支持 Skill 市场或本地安装。典型流程:
- 在项目根目录创建
.skills/目录 - 将 Skill 包放入其中
- Agent 启动时自动扫描并索引
- 用户描述任务时,Agent 匹配 Skill 的触发条件,自动加载
七、实战场景:用 AI + MCP + Skills 开发一个 Laravel 功能
假设要开发一个"文章管理"模块,包含 Article Model、Migration、Controller、Routes、Tests。
传统方式
手动创建 5+ 个文件,反复查文档确认命名约定和配置格式。
AI + MCP + Skills 方式
- AI 加载 Skills:匹配到
laravel-migration-skill、laravel-test-skill、eloquent-optimization-skill - AI 通过 MCP 读取上下文:
- Filesystem MCP:读取现有 Model 目录结构、
composer.json确认 Laravel 版本 - Git MCP:查看最近提交,了解项目编码风格
- Laravel MCP:运行
php artisan route:list了解现有路由结构
- Filesystem MCP:读取现有 Model 目录结构、
- AI 生成代码(遵循 Skill 中的规范):
- Migration:正确的命名、类型映射、timestamps
- Model:正确的 fillable、casts、关联关系
- Controller:Resource Controller 结构
- Routes:使用
Route::resource声明 - Tests:Feature Test 覆盖 CRUD
- AI 通过 MCP 执行验证:
- Laravel MCP:运行
php artisan migrate确认迁移无误 - Laravel MCP:运行
php artisan test确认测试通过
- Laravel MCP:运行
- AI 通过 Git MCP 提交:生成规范的 commit message
全程你只需描述需求,AI 在 MCP 和 Skills 的加持下完成从生成到验证的闭环。
八、安全注意事项
| 风险 | 缓解措施 |
|---|---|
| AI 通过 MCP 执行危险命令 | 在 MCP Server 中实现白名单机制,只暴露安全命令 |
| Filesystem 暴露敏感文件 | 限定 MCP Server 的根目录到项目路径,排除 .env、config/ 中的密钥文件 |
| 数据库 MCP 误操作 | 使用只读 MCP Server,仅暴露查询能力,不暴露写入/删除 |
| AI 生成不符合项目规范的代码 | 通过 Skill 编码项目规范,Agent 在生成前加载 |
| Git MCP 意外提交 | 限制 Git MCP 为只读(log、diff、status),提交操作需人工确认 |
九、总结与展望
核心观点
- MCP 是 AI 与开发工具之间的标准桥梁。对 PHP 开发者而言,
php-mcp/server和php-mcp/laravel已经足够成熟,可以投入实际使用。 - Skills 是领域知识的可复用封装。把框架最佳实践、项目规范写进 Skill,AI 每次生成代码都自动遵循,比每次在 prompt 里重复说明高效得多。
- MCP + Skills 组合使用效果最佳。MCP 解决"AI 能做什么",Skills 解决"AI 该怎么做"。
推荐起步路径
第一步:安装 Filesystem + Git MCP,让 AI 能读写项目文件和查看 Git 历史
第二步:安装 php-mcp/laravel(或 php-mcp/server),暴露框架命令行工具
第三步:为你的项目编写 1-2 个核心 Skill(如迁移规范、测试规范)
第四步:在实际开发中迭代,根据 AI 输出的问题补充 Skill 规则
生态展望
- MCP 协议仍在快速演进(当前版本 2025-03-26),更多 PHP 框架的专用 SDK 会陆续出现
- Skill 市场正在形成,未来会有社区维护的 Laravel/Symfony/ThinkPHP 官方 Skill 包
- AI Agent 的多 Skill 协调能力在增强,复杂任务中自动组合多个 Skill 的场景会越来越成熟
PHP 生态在 AI 辅助开发领域起步稍晚但追赶迅速。作为 PHP 开发者,现在正是拥抱 MCP 和 Skills 的好时机——投入一个下午的配置时间,换来的是此后每一次编码都有 AI 在框架规范内为你提效。
- 点赞
- 收藏
- 关注作者
评论(0)