Yii2 MCP服务器
Yii2框架的模型上下文协议(MCP)服务器,为Claude Code提供数据库模式检查、控制台命令执行和项目管理工具。
特性
数据库工具
- db_list_tables:列出所有数据库表及其详细信息(行、大小、注释)
- db_describe_table:获取特定表的详细架构信息
- db_table_关系:分析外键关系
- db_execute_query:使用结果安全执行SELECT查询
数据库优化与分析(新增)
- db_analyze_table:全面的表分析,包括碎片化、索引效率和存储引擎建议
- db_get_index_建议:基于表结构和查询模式的智能索引推荐
- db_profile_query:使用执行计划和优化建议查询性能分析
- db_monitor_连接:实时数据库连接监控并发出警报
Yii2控制台工具
- yii_list_命令:列出所有可用的Yii控制台命令及其说明
- yii_command_帮助:获取特定命令的详细帮助
- yii_nexecute_命令:执行安全控制台命令(危险命令被阻止)
- yii_list_迁移:显示迁移状态(已应用和待处理)
模型和项目工具
- yii_list_models:列出所有具有关系的ActiveRecord模型
- yii分析模型:分析特定的模型类
- 工程结构:获取项目目录结构概述
- 模块信息:特定模块的详细信息
- 配置检查:检查应用程序配置文件
高级模块分析
- 模块详细分析:全面的模块分析,包括控制器、模型、资产、小部件、作业、服务和特征
- 资产列表捆绑包:列出所有包含CSS/JS文件和依赖项的资产包
- 资产分析依赖关系:分析资产依赖链和注册顺序
- widget_list:发现小部件及其相关资产包
迁移管理
- 迁移_创建:创建新的数据库迁移
- migration_diff:根据模型/数据库差异生成迁移
- migration_rollback:安全回滚迁移
- migration_generate_from_model:从ActiveRecord模型生成迁移
代码生成工具
- generate_crud:生成CRUD控制器和视图
- 发电机模型:从数据库表生成ActiveRecord模型
- generate_api:生成REST API控制器
- generate_form:生成表单类
缓存管理
- cache_clear:使用选项清除应用程序缓存
- cache_inspect:检查缓存配置和状态
- cache_性能:分析缓存性能和命中率
RBAC(基于角色的访问控制)
- rbac_权限树:可视化权限层次结构
- rbac_user_access:检查用户权限和访问级别
- rbac_role_analysis:分析角色分配和权限
- rbac_access_debug:调试访问控制问题
队列系统管理
- queue_job_status:监视队列作业状态和进度
- 队列重试失败:重试失败的队列作业
- queue_worker_status:检查队列工作器状态
- queue_clear_failed:从队列中清除失败的作业
日志记录和调试
- 日志错误分析:分析错误日志和模式
- log_performance_issues:识别日志中的性能瓶颈
- log_search:搜索应用程序日志
- log_tail:实时日志监控
高级数据库分析
- db_index_建议:高级索引优化建议
- db_query_profiler:详细的查询性能分析
- db_table_analysis:深入的表格结构分析
- db_connection_monitor:实时数据库连接监控
测试和质量保证
- test_run:执行测试套件
- test_generate:生成测试用例
- 测试平均报告:生成代码覆盖率报告
性能分析
- 性能文件:应用程序性能分析
- 资产性能分析:前端资产性能分析
安装
选项1:NPM安装(推荐)
npm install -g yii2-mcp-server然后从Yii2项目目录中配置Claude Code:
cd /path/to/your/yii2/project
claude mcp add yii2 yii2-mcp-server选项2:手动安装
- 克隆并安装
git clone https://github.com/ArtMin96/yii2-mcp-server.git
cd yii2-mcp-server
npm install
npm run build- 配置Claude代码
使用Claude CLI:
cd /path/to/your/yii2/project
claude mcp add yii2 node /path/to/yii2-mcp-server/dist/index.js手动JSON配置:
{
"mcpServers": {
"yii2": {
"command": "node",
"args": ["/path/to/yii2-mcp-server/dist/index.js"],
"cwd": "/path/to/your/yii2/project"
}
}
}配置
MCP服务器会自动检测您的Yii2项目配置:
数据库配置
服务器按以下顺序查找数据库配置:
.env文件(用于环境变量,如DB_HOST,DB_DATABASE等等)config/db.php文件(恢复到默认MySQL设置)
项目检测
- 必须从包含以下内容的目录中运行
yii控制台脚本 - 自动扫描
modules/,models/,config/目录 - 支持标准Yii2目录结构
使用示例
配置后,您可以通过Claude Code使用这些工具:
# Database Analysis
Use db_list_tables tool
Use db_describe_table with table_name: "user"
Use db_table_relationships with table_name: "user"
# Database Optimization (NEW)
Use db_analyze_table with table_name: "user"
Use db_get_index_suggestions with table_name: "user"
Use db_profile_query with query: "SELECT * FROM user WHERE status = 'active'"
Use db_monitor_connections with alert_threshold: 50
# Yii2 Console Commands
Use yii_list_commands
Use yii_list_migrations
# Project Structure
Use project_structure
Use yii_list_models with module: "fastnet"
# Advanced Module Analysis
Use module_detailed_analysis with module_name: "fastnet"
Use module_detailed_analysis with module_name: "billing"
# Asset Bundle Analysis
Use asset_list_bundles
Use asset_list_bundles with module_filter: "rbac"
Use asset_analyze_dependencies
Use asset_analyze_dependencies with asset_name: "AppAsset"
# Widget Discovery
Use widget_list
Use widget_list with module_filter: "fastnet"
# Migration Management
Use migration_create with table_name: "user_profiles"
Use migration_diff to generate from model changes
Use migration_rollback with steps: 1
# Code Generation
Use generate_crud with table_name: "posts"
Use generate_model with table_name: "categories"
Use generate_api with model_class: "User"
# Cache Operations
Use cache_clear with component: "db"
Use cache_inspect
Use cache_performance
# RBAC Analysis
Use rbac_permission_tree
Use rbac_user_access with user_id: 1
Use rbac_role_analysis with role: "admin"
# Queue Management
Use queue_job_status
Use queue_retry_failed with job_id: 123
Use queue_worker_status
# Logging & Debugging
Use log_error_analysis with hours: 24
Use log_search with pattern: "database error"
Use log_tail with lines: 50
# Testing
Use test_run with suite: "unit"
Use test_coverage_report
# Performance Analysis
Use performance_profile with duration: "5m"
Use asset_performance_analysis模块分析功能
全面的模块理解:
- 控制器、模型、视图结构
- 资产包及其依赖关系
- 小部件和自定义组件
- 队列作业和服务类
- 特征和效用类别
- Bootstrap配置
资产捆绑情报:
- CSS和JavaScript文件映射
- 依赖树分析
- 循环依赖检测
- 最佳注册顺序
- 源路径分辨率
小部件发现:
- 小部件到资产捆绑关系
- 模块特定的小部件组织
- 依赖关系映射
安全功能
- 只读数据库访问:只允许SELECT查询
- 指挥安全:危险命令(如
migrate/fresh)被封锁 - 配置安全:不公开敏感配置值
- 超时保护:命令有30秒的超时限制
- 交互式命令检测:需要用户输入的命令被标记
需求
- Node.js 18+
- 具有控制台访问权限的Yii2项目
- MySQL数据库
- PATH中提供了PHP CLI
故障排除
常见问题
- “未找到Yii脚本”
- 确保从Yii2项目根目录运行 - 检查一下 yii 控制台脚本存在并且可执行
- 数据库连接错误
- 验证您的 .env 文件具有正确的数据库凭据 - 确保MySQL正在运行且可访问 - 检查配置中指定的数据库是否存在
- 权限错误
- 确保服务器具有对项目文件的读取权限 - 检查PHP CLI是否可用,是否可以执行Yii脚本
调试模式
对于开发和调试,您可以直接运行服务器:
npm run dev这将监视文件更改并自动重建。
发展
服务器使用TypeScript构建,由以下部分组成:
src/index.ts-主MCP服务器设置和工具路由src/database.ts-数据库连接和模式检查src/yii2.ts-Yii2控制台命令执行和项目分析src/config.ts-配置管理和项目检测
贡献:
- 分叉存储库
- 进行更改
- 跑
npm run build编写 - 使用您的Yii2项目进行测试
- 提交拉取请求
许可证
麻省理工学院许可证-您可以在项目中自由使用!
