Yii2 AI Boost-适用于Yii2应用程序的MCP服务器
Yii2 AI Boost是一个模型上下文协议(MCP)服务器,为AI助手(如Claude Code)提供全面的工具和指导方针,以加快Yii2应用程序的开发。
______________________________________________________________________
特性
- 16个MCP工具 -数据库检查和查询、配置访问、路由分析、组件自检、模型和验证检查、控制台命令发现、迁移检查、小部件检查、性能分析、PHP修补、环境检查、日志记录和基于FTS5的语义搜索
- 语义搜索 -BM25将全文搜索排名在捆绑指南+Yii2权威指南(章节级结果,而非完整文件)之上
- 框架指南 -全面的Yii2模式,涵盖控制器、模型、迁移、缓存、身份验证等
- IDE 集成 -适用于Claude Code、Cursor、Zed和其他MCP兼容编辑器
______________________________________________________________________
快速开始
对于经验丰富的开发人员:
# 1. Install
composer require codechap/yii2-ai-boost:^1.3 --dev
# 2. Run installation
php yii boost/install
# 3. (Optional) Sync guidelines to your editor (Cursor/Zed)
php yii boost/sync-rules就是这样!Claude Code和其他AI工具现在可以访问您的应用程序上下文。
______________________________________________________________________
安装
步骤1:需要该包
cd /path/to/yii2/application
composer require codechap/yii2-ai-boost:^1.3 --dev步骤2:运行安装向导
php yii boost/install安装会自动运行,并且:
- 检测您的Yii2环境
- 生成配置文件(
.mcp.json,boost.json) - 将框架指南复制到
.ai/guidelines/
步骤3:连接Claude Code和/或您的IDE
__Claude代码集成__
运行后 php yii boost/install一 .mcp.json 文件将在您的项目根目录中生成。Claude Code将自动检测并使用此配置连接到MCP服务器。
__Codex CLI配置__ @全部
__Gemini CLI配置__ @全部
__Zed配置__
对于Zed,在.ed/settings.json中创建或打开您的设置文件
{
"context_servers": {
"yii2-ai-boost": {
"enabled": true,
"command": "php",
"args" : [
"yii", "boost/mcp"
]
}
}
}生成的文件
安装后,您将拥有:
.mcp.json-Claude Code的MCP服务器配置boost.json-软件包配置和工具列表.ai/guidelines/-框架和生态系统指南(Markdown).cursor/rules/yii2-boost.mdc-(可选)为游标生成的规则.rules-(可选)为Zed生成的规则
______________________________________________________________________
用法
查看Yii2信息
php yii boost/info显示器:
- 软件包版本和配置
- 可用MCP工具列表
- 指南和配置文件的状态
同步编辑器规则
php yii boost/sync-rules自动生成:
- 光标:
.cursor/rules/yii2-boost.mdc - 泽德:
.rules(以项目根为单位)
这些文件包含Yii2的核心指南和结构参考,让你的AI编辑器在没有手动提示的情况下,将“X射线视觉”转化为Yii2的最佳实践。
启动MCP服务器(手动测试)
php yii boost/mcp⚠️ 备注:此命令由Cluade代码或编辑器自动调用。你不需要手动运行它。
服务器在STDIN上监听JSON-RPC请求,并向STDOUT输出响应。
更新指南
php yii boost/update更新指南,从GitHub下载Yii2指南,并重建FTS5搜索索引。
______________________________________________________________________
指南和编辑集成
Yii2 AI Boost附带了丰富的“上下文锚”库 .ai/guidelines/这些是Markdown文件,为Yii2组件(控制器、模型、迁移等)定义了精确的结构,防止了AI幻觉。
1.主动搜索(MCP工具)
MCP服务器包括 semantic_search 由SQLite FTS5驱动的工具。AI代理(如Claude或Gemini)可以使用它来“查找”如何在Yii2中做事。
- *用户:* “我如何创建迁移?”
- *人工智能:* 呼叫
semantic_search(query="migration")->获取BM25排名部分->编写完美的代码。
2.被动语境(编辑规则)
跑 php yii boost/sync-rules 将这些指导方针直接融入编辑的上下文中。
- 光标:创建
.mdc规则文件。 - 泽德:创建
.rules文件。
这意味着当你在Zed或Cursor中打开文件时,AI *已经知道* 它应该使用 yii\web\Controller 而不是 Illuminate\Routing\Controller.
______________________________________________________________________
什么是MCP?
这 模型上下文协议(MCP) 是一个开放标准,使人工智能助手能够与工具和数据源进行交互。MCP允许Claude Code和其他AI工具安全地访问应用程序的上下文——数据库模式、配置、路由和日志——而不会暴露敏感数据。
Yii2 AI Boost通过STDIO传输使用JSON-RPC 2.0实现了MCP v2025-11-25。这意味着Claude Code通过标准输入/输出与您的应用程序通信,无需进行网络配置。
______________________________________________________________________
可用工具
1. application_info -应用程序信息
获取有关Yii2应用程序的全面信息:
- Yii2和PHP版本
- 应用程序环境和调试状态
- 已安装的模块和扩展
2. database_schema -数据库架构
检查数据库结构:
- 列出所有具有行数的表
- 查看详细的表模式(列、类型、约束)
- 发现活动记录模型
- 查看索引和外键
3. database_query -数据库查询
对数据库执行SQL查询:
- 使用自动行限制运行SELECT查询
- 支持绑定参数
- 返回执行时间和行数
- 适用于任何已配置的数据库连接
4. config_access -配置访问权限
安全访问应用程序配置:
- 组件配置
- 模块配置
- 应用程序参数(带敏感数据编辑)
5. route_inspector -路线检查员
分析您的申请途径:
- URL规则和模式
- 带前缀的模块路由
- 控制器和动作映射
- RESTful API端点
6. component_inspector -部件检验员
内省应用程序组件:
- 列出所有已注册的组件
- 查看组件类和配置
- 检查单例与新实例的行为
- 检查组件属性
7. log_inspector -日志检查器
检查所有配置源的应用程序日志:
- 从FileTarget读取日志(文本文件)
- 从DbTarget(数据库表)读取日志
- 访问内存日志(当前请求)
- 按日志级别筛选(错误、警告、信息、跟踪、配置文件)
- 使用通配符模式按类别筛选
- 按关键字搜索日志
- 按时间范围筛选
- 查看堆栈跟踪(用于内存日志)
8. semantic_search -语义搜索(FTS5)
使用全文搜索搜索Yii2指南和文档:
- BM25使用SQLite FTS5对结果进行排名(取代基于grep的搜索)
- 节级结果(相关节,非完整文件)
- 支持短语(“活动记录”)、布尔值(迁移与数据库)、前缀(migrat\*)
- 索引捆绑指南+来自GitHub的Yii2权威指南
- 波特词干(“迁移”匹配“迁移”)
- 如果FTS5索引尚未构建,则恢复回退
9. model_inspector -模型检查员
在运行时检查活动记录模型:
- 具有数据库类型、标签和提示的属性
- 与链接详细信息和连接表的关系(hasOne/hasMany)
- 带有类名和属性的附加行为
- 具有主动和安全属性的场景
- API序列化的字段和额外字段
- 从以下位置自动发现模型
@app/models
10. validation_rules -验证规则
检查模型验证规则和约束:
- 所有带有参数和场景过滤器的验证规则
- 内置与自定义验证器分类
- 按属性分组的每个验证器的错误消息
- 约束摘要(必填、唯一、字符串长度、数字范围、电子邮件等)
- 每个场景的安全属性
- 支持按特定场景过滤
11. console_command_inspector -控制台命令检查器
发现并检查Yii2控制台命令(./yii 命令):
- 列出所有可发现的控制台控制器及其类别和描述
- 使用操作、选项和帮助文本检查单个命令
- 深入了解参数、类型和默认值的具体操作
- 从controllerMap、命名空间目录和模块中发现
- 选项别名和基于PHPDoc的帮助提取
12. migration_inspector -移民检查员
检查数据库迁移及其状态:
- 状态摘要,包括已应用/待处理计数和上次应用的迁移
- 应用了带有时间戳的迁移历史记录(按最新时间排序)
- 等待从配置的迁移路径发现迁移
- 查看单个迁移源代码并应用状态
- 支持
@app/migrations以及额外配置的路径
13. widget_inspector -小部件检查器
发现并检查Yii2小部件:
- 列出按源(框架核心、网格、应用程序)分组的可用小部件
- 使用类型、默认值和PHPDoc描述检查小部件属性
- 具有参数签名和返回类型的公共方法
- 带有类声明的事件常量(Event\_\*)
- 类层次结构链接到yii\\base\\Widget
- 短名称解析(例如,“ActiveForm”解析为yii\\widgets\\ActiveForm)
- 从@app/widgets/、@app/components/和模块中发现小部件/*/小部件/+模块/*/组件/
- 备注:Yii2允许代码库中的任何地方使用小部件。自动发现扫描上面的目录;通过传递完整的类名(例如。,
widget: "app\\custom\\MyWidget")
14. performance_profiler -性能分析器
分析查询性能和索引覆盖率:
- 解释具有特定驱动程序格式的查询计划(MySQL、PostgreSQL、SQLite)
- 自动检测全表扫描、缺失索引使用、文件排序和临时表
- 带外键列覆盖率的每表索引分析
- 类FK列缺少索引检测(\*\_id命名约定)
- 表统计(MySQL的行数、数据/索引大小、PostgreSQL的扫描计数)
- 概览模式,包括每个表的摘要和所有表中缺少的索引报告
- 支持参数化查询分析的绑定参数
15. tinker -小叮当
在Yii2应用程序上下文中执行任意PHP代码:
- 以完全访问权限运行任何PHP表达式或语句
\Yii::$app - 自动捕获返回值(先尝试表达式,然后回退到语句)
- 输出捕获
echo/print声明 - 可配置超时(默认5秒,最大30秒)
- 危险函数阻塞(退出、死亡、shell-exec、系统、exec等)
- 返回值格式为
VarDumper对于对象 - 输出截断为100KB,敏感数据自动编辑
16. env_inspector -环境检查员
检查环境变量、PHP扩展和系统配置:
- 具有自动敏感值编辑功能的环境变量
- 环境变量的前缀过滤器(例如“DB”、“APP”)
- 加载的PHP扩展按字母顺序和计数排序
- 关键的PHP配置值(memory_limit、max_execution_time、上传大小等)
- 系统信息:操作系统、架构(32/64位)、工作目录
- 可通过以下方式配置部分
include参数
核心工具架构
所有16个工具都提供了对Yii2应用程序的深入反思。它们遵循基于 BaseTool 的 抽象类,它提供:
- 自动消毒:所有工具输出中的敏感数据(密码、令牌、密钥)都会自动编辑
- 数据库发现:工具自动检测和访问配置的数据库连接
- JSON模式验证:根据定义的模式验证输入参数
- 错误处理:优雅的错误响应,不会暴露敏感细节
日志检查器的工作原理
日志检查器具有 多阅读器架构 支持三种日志存储方式:
| 阅读器 | 来源 | 最适合 | 功能 |
|---|---|---|---|
| 内存日志阅读器 | 当前请求日志(Yii::getLogger()->messages) | 开发过程中的实时调试 | 全栈跟踪,微秒时间戳 |
| FileLogReader | FileTarget文本日志(@runtime/logs/app.log) | 查看以前请求/会话的日志 | 高效的文件处理(5MB+文件),自动检测轮换 |
| DbLogReader | DbTarget数据库表({{%log}}) | 生产日志和日志聚合 | 快速索引查询,精确的时间范围过滤 |
______________________________________________________________________
工具路线图
| 阶段 | 工具 | 状态 | 描述 |
|---|---|---|---|
| 1 | 应用程序信息 | ✓ 完整 | Yii2版本、环境、模块、扩展 |
| 1 | 数据库模式 | ✓ 完整 | 表、列、索引、模型、外键 |
| 1 | 配置访问权限 | ✓ 完成 | 组件、模块和参数配置 |
| 1 | 巡检员 | ✓ 完整 | URL规则、路由、REST端点 |
| 1 | 组件检查器 | ✓ 完成 | 组件列表、类、配置 |
| 1 | 日志检查器 | ✓ 完成 | 文件、数据库和内存日志,并进行过滤 |
| 1 | 语义研究 | ✓ 完成 | 基于FTS5的搜索指南+Yii2指南 |
| 1 | 数据库查询 | ✓ 完成 | 执行数据库查询(行数有限) |
| 2 | 模型观察器 | ✓ 完成 | 活动记录模型分析、属性、关系 |
| 2 | 验证规则 | ✓ 完成 | 模型验证规则、错误消息、约束 |
| 2 | 控制台命令监视器 | ✓ 完成 | 控制台命令发现、操作、选项、参数 |
| 3 | 迁移检查器 | ✓ 完成 | 迁移状态、历史记录、待定、源代码查看 |
| 3 | widget_inspector | ✓ 完整 | 可用的小部件、属性、方法、事件、层次结构 |
| 3 | 性能文件管理器 | ✓ 完成 | 解释计划、指标分析、缺失指标检测 |
| 4 | 修补 | ✓ 完成 | 在Yii2应用程序上下文中执行任意PHP代码 |
| 4 | env-inspector | ✓ 完成 | 环境变量、PHP扩展、系统配置 |
| 5 | 语义研究 | ✓ 完成 | 在Yii2指南+指南上搜索SQLite FTS5,来源于GitHub |
______________________________________________________________________
MCP协议
Yii2 AI Boost实现了模型上下文协议(MCP)v2025-11-25:
- 运输:STDIO(本地)-从stdin读取,写入stdout
- 格式:JSON-RPC 2.0
- 工具:向AI助手展示功能
- 资源:提供静态内容(指南、配置)
JSON-RPC请求示例
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "application_info",
"arguments": {
"include": ["version", "environment", "modules"]
}
}
}示例响应
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"version": {
"yii2_version": "2.0.45",
"php_version": "8.1.2",
"php_sapi": "cli"
},
"environment": {
"yii_env": "dev",
"yii_debug": true,
"base_path": "/path/to/app",
"runtime_path": "/path/to/app/runtime"
},
"modules": {
"site": {
"class": "app\\modules\\site\\Module",
"basePath": "/path/to/app/modules/site"
}
}
}
}响应结构:
jsonrpc:始终"2.0"根据JSON-RPC规范id:回显请求ID以进行请求/响应匹配result:实际工具输出(自动编辑敏感数据)
错误响应 使用 error 而不是 result:
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32603,
"message": "Internal error",
"data": "Error details here"
}
}______________________________________________________________________
指南
该软件包下载了全面的Yii2开发指南 .ai/guidelines/core/yii2-2.0.45.md这些包括应用程序结构、控制器、模型、视图、组件、安全性、性能和控制台命令。
在人工智能工作流程中纳入指导方针
要将这些指南与Claude Code或其他AI工具一起使用,请在项目的 CLAUDE.md 文件:
@include .ai/guidelines/core/yii2-2.0.45.md您的AI助手还可以通过以下方式按需搜索其他指南 semantic_search MCP工具(数据库、缓存、身份验证、确认等)。
这确保了AI助手在项目中工作时可以访问框架最佳实践和模式。
______________________________________________________________________
故障排除
获取帮助
如果您遇到问题:
- 检查下面列出的日志文件以了解错误详细信息
- 打开一个问题:https://github.com/codechap/yii2-ai-boost/issues
- 联系X:https://x.com/codechap
日志文件
调试时,请检查以下日志文件:
- 启动日志:
@runtime/logs/mcp-startup.log--服务器初始化和工具注册 - 错误日志:
@runtime/logs/mcp-errors.log--PHP错误和异常 - 请求日志:
@runtime/logs/mcp-requests.log--JSON-RPC请求和响应 - 传输日志:
/tmp/mcp-server/mcp-transport.log--低级STDIO通信
常见问题解答
_本节将随着常见问题的出现而扩展。目前,请联系我们提出问题或疑问。_
______________________________________________________________________
需求
| 组件 | 版本 | 状态 |
|---|---|---|
| PHP | 7.4, 8.0, 8.1, 8.2, 8.3 | ✓ 已测试 |
| Yii2 | 2.0.45+ | ✓ 兼容 |
为什么选择PHP 7.4? 虽然PHP 7.4是EOL,但Yii2本身仍然支持它。作为Yii2扩展,我们保持相同的基线,以确保旧Yii2安装的开发人员不会被锁定。如果你的Yii2应用程序运行,这个工具也应该运行。
为什么没有缓存? 每次请求时,所有自检数据都会被重新获取。这是有意为之的——作为一种开发工具,您需要查看应用程序的当前状态,而不是过时的缓存数据。当您更改路由、模式或组件时,工具应立即反映出来。
备注:PHP 8.4支持待定。报告任何兼容性问题 .
开发时间表
| 阶段 | 目标 | 状态 | 工具 |
|---|---|---|---|
| 1 | 核心MVP | ✓ 完成 | 8个工具+指南+安装程序 |
| 2 | 模型与指挥反思 | ✓ 完整 | +3个工具(模型检查器、验证规则、控制台命令) |
| 3 | 扩展工具 | ✓ 完整 | +3个工具(迁移检查器、小部件检查器、性能分析器) |
| 4 | 高级工具 | ✓ 完成 | +2个工具(修补程序、环境检查器) |
| 5 | 语义搜索 | ✓ 完成 | SQLite FTS5索引、GitHub内容管道、BM25排名搜索 |
跟踪进展并做出贡献 .
许可证
BSD 3条款许可证。有关详细信息,请参阅LICENSE文件。
贡献
欢迎投稿!以下是如何开始:
- 分叉 仓库
- 克隆 使用叉子并创建一个分支(
git checkout -b feature/my-feature) - 安装 依赖关系(
composer install) - 制造 您的更改
- 测试 您的更改(
composer test) - 检查 代码样式(
composer cs-check)必要时进行修复(composer cs-fix) - 跑 静态分析(
composer analyze) - 提交 明确的信息和 推 到你的叉子
- 打开 拉取请求反对
master
指南
- 遵循PSR-12代码风格
- 在可行的情况下添加新功能的测试
- 保持更改的重点-每个PR一个功能/修复
- 如果添加新工具或更改行为,请更新文档
需要帮助的领域
- 附加测试覆盖率(尤其是集成测试)
- 来自的新工具 路线图
- 文档改进
- 带有复制步骤的Bug报告
支持与反馈
- Bug报告和功能请求:
- 直接接触: @codechap on X
______________________________________________________________________
Yii2 AI 升级 -使用AI助手使Yii2开发更智能、更快。
