推荐使用 AI 开发主流 PHP 框架的 MCP 和 Skills

举报
Awinds 发表于 2026/11/10 09:29:30 2026/11/10
【摘要】 一、为什么 PHP 开发者需要关注 MCP 和 Skills过去两年,AI 辅助编码从"自动补全"进化到了"自主完成多步任务"。驱动这一跃迁的两个关键技术是:MCP(Model Context Protocol):由 Anthropic 于 2024 年底开源的标准化协议,让 AI 助手能以统一方式连接外部工具和数据源。你可以把它理解为"AI 的 USB-C 接口"——不管什么工具,只要实...

一、为什么 PHP 开发者需要关注 MCP 和 Skills

过去两年,AI 辅助编码从"自动补全"进化到了"自主完成多步任务"。驱动这一跃迁的两个关键技术是:

  • MCP(Model Context Protocol):由 Anthropic 于 2024 年底开源的标准化协议,让 AI 助手能以统一方式连接外部工具和数据源。你可以把它理解为"AI 的 USB-C 接口"——不管什么工具,只要实现了 MCP 协议,AI 就能调用。
  • Agent Skills:一种可复用、可分发的"能力包",封装了特定领域的操作指南、脚本和校验逻辑。AI Agent 在执行任务前先加载匹配的 Skill,获得该领域的正确做法,而不是凭空猜测。

对 PHP 开发者来说,这意味着:

  1. AI 不仅能读写你的代码,还能直接操作数据库、运行 Artisan 命令、执行测试套件、分析 Composer 依赖——通过 MCP 桥接,而非复制粘贴。
  2. 框架的最佳实践(如 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 市场或本地安装。典型流程:

  1. 在项目根目录创建 .skills/ 目录
  2. 将 Skill 包放入其中
  3. Agent 启动时自动扫描并索引
  4. 用户描述任务时,Agent 匹配 Skill 的触发条件,自动加载

七、实战场景:用 AI + MCP + Skills 开发一个 Laravel 功能

假设要开发一个"文章管理"模块,包含 Article Model、Migration、Controller、Routes、Tests。

传统方式

手动创建 5+ 个文件,反复查文档确认命名约定和配置格式。

AI + MCP + Skills 方式

  1. AI 加载 Skills:匹配到 laravel-migration-skill、laravel-test-skill、eloquent-optimization-skill
  2. AI 通过 MCP 读取上下文:
    • Filesystem MCP:读取现有 Model 目录结构、composer.json 确认 Laravel 版本
    • Git MCP:查看最近提交,了解项目编码风格
    • Laravel MCP:运行 php artisan route:list 了解现有路由结构
  3. AI 生成代码(遵循 Skill 中的规范):
    • Migration:正确的命名、类型映射、timestamps
    • Model:正确的 fillable、casts、关联关系
    • Controller:Resource Controller 结构
    • Routes:使用 Route::resource 声明
    • Tests:Feature Test 覆盖 CRUD
  4. AI 通过 MCP 执行验证:
    • Laravel MCP:运行 php artisan migrate 确认迁移无误
    • Laravel MCP:运行 php artisan test 确认测试通过
  5. 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),提交操作需人工确认

九、总结与展望

核心观点

  1. MCP 是 AI 与开发工具之间的标准桥梁。对 PHP 开发者而言,php-mcp/server 和 php-mcp/laravel 已经足够成熟,可以投入实际使用。
  2. Skills 是领域知识的可复用封装。把框架最佳实践、项目规范写进 Skill,AI 每次生成代码都自动遵循,比每次在 prompt 里重复说明高效得多。
  3. 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 在框架规范内为你提效。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。