使用说明
Laravel调试栏MCP服务器
用于分析Laravel Debugbar日志的MCP(模型上下文协议)服务器。允许AI代理通过标准化协议访问Laravel调试数据。
版本:1.0.0
作者 谢尔盖·奥(@Sergey0002)
电报: @Sergey0002
github: https://github.com/sergey0002/Laravel-Debugbar-MCP
⚠️ 重要提示:使用限制
该软件旨在 仅在本地开发人员服务器上使用.
禁止:
- 在公共服务器上部署
- 在生产服务器上部署
兼容性
经过测试并与以下设备配合使用:
- 拉瑞维尔:7.x、8.x、9.x、10.x、11.x、12.x
- PHP: 8.0+
- Laravel调试栏:3.x+
安装
第一步:创建文件夹
创建一个 .ladebugermcp Laravel项目根目录下的文件夹:
mkdir .ladebugermcp
第二步:下载文件
下载 mcp-server.php 并将其放置在创建的文件夹中:
your-laravel-project/
├── .ladebugermcp/
│ └── mcp-server.php ← MCP server file
├── app/
├── storage/
│ └── debugbar/ ← Debugbar logs (automatic)
└── ...
步骤3:添加到Git忽略(必填!)
重要! 将文件夹添加到本地git ignore以防止意外发布:
选项A:本地排除(推荐)
echo "/.ladebugermcp/" >> .git/info/exclude
选项B:在项目.gitignore中
# MCP Debugbar server (local development tool)
.ladebugermcp/
这可以防止在公共存储库中意外发布敏感的调试数据。
MCP配置
基洛代码
将配置添加到 .kilocode/mcp.json 在项目根目录中:
{
"mcpServers": {
"laravel-debug": {
"command": "C:\\laragon\\bin\\php\\php-8.2.30-nts-Win32-vs16-x64\\php.exe",
"args": [".ladebugermcp/mcp-server.php"],
"disabled": false
}
}
}
对于VS代码(Cline、Roo代码等)
将配置添加到MCP设置中:
窗户:
{
"mcpServers": {
"laravel-debug": {
"command": "C:\\laragon\\bin\\php\\php-8.2.30-nts-Win32-vs16-x64\\php.exe",
"args": ["C:\\path\\to\\project\\.ladebugermcp\\mcp-server.php"],
"disabled": false
}
}
}
Linux/macOS:
{
"mcpServers": {
"laravel-debug": {
"command": "php",
"args": ["/path/to/project/.ladebugermcp/mcp-server.php"],
"disabled": false
}
}
}
关于路径的重要注意事项
command--PHP可执行文件的完整路径args--路径到mcp-server.php(相对或绝对)- 更改配置后 重新启动VS代码
需求
- PHP 8.0+
- 拉瑞维尔 随着 Laravel调试栏 安装
- 调试条日志必须保存到
storage/debugbar/*.json
安装Laravel调试栏
composer require barryvdh/laravel-debugbar --dev
工具
debugbar_clear
清除所有Debugbar日志。
Parameters: none
Returns: "Cleared files: N"
debugbar_get_request_tree
返回最近请求的层次树。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
limit |
integer | 50 | 日志数量 |
include_session |
boolean | false | 包含会话数据 |
include_cookies |
boolean | false | 包含Cookie |
示例响应:
{
"id": "01KHP7NYCYMXKDT5JJGPJ4TAQD",
"url": "http://example.com/crm/reports/sales",
"method": "GET",
"status": 200,
"time": "16:42:04",
"info": {
"params": { "query": "...", "request": "..." },
"performance": { "time": "660ms", "memory": "30MB" },
"controller": "App\\Http\\Controllers\\ReportController@index"
},
"referer": "http://example.com/dashboard",
"children": [...]
}
debugbar_get_logs
从日志中获取详细的结构化报告。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
log_ids |
array | [] | 日志ID(如果为空,则表示最近) |
limit |
integer | 10 | 日志数量 |
sections |
array | 模型、视图、路由、异常、消息、门 | 要提取的部分 |
可用部分:
meta-ID、URL、方法、状态、日期时间(始终包含在内)models-Eloquent模型(检索/创建/更新/删除)views-带render_count的刀片模板queries-带持续时间和源的SQL查询route-控制器、URI、动作exceptions-错误messages-记录消息gate-授权检查session-会话数据(由于大小,默认情况下禁用)
例子:
{
"meta": { "id": "...", "url": "...", "method": "POST", "status": 200 },
"models": [
{ "class": "App\\Models\\User", "retrieved": 5, "created": 0 }
],
"views": [
{ "name": "users.index", "render_count": 1 }
],
"queries": [
{ "sql": "select * from users", "duration": 0.005, "source": "UserController.php" }
],
"route": {
"class": "App\\Http\\Controllers\\UserController",
"uri": "GET /users",
"action": "index"
}
}
使用场景:浏览器测试
调试协议
使用此协议通过浏览器测试进行系统问题分析:
1.清除日志(测试前需要)
Call: debugbar_clear
Result: "Cleared files: N"
2.请求采取行动
要求用户在浏览器中执行特定操作:
请求示例:
- “打开/crm/orders页面并单击'导出'按钮”
- “转到报告部分并应用日期筛选器”
- “通过表单创建新订单”
3.获取请求树
Call: debugbar_get_request_tree
Parameters: { "limit": 20 }
树木分析:
- 通过URL查找目标请求
- 检查HTTP状态(200、302、500)
- 研究亲子关系(推荐人→ 位置)
4.详细的日志分析
Call: debugbar_get_logs
Parameters: { "sections": ["queries", "models", "exceptions"] }
典型场景
| 问题 | 要分析的部分 | 要寻找什么 |
|---|---|---|
| 慢速页面 | queries, models, views |
持续时间>100ms的SQL,N+1(检索>100) |
| 错误500 | exceptions, route |
消息、文件、行异常 |
| 额外重定向 | 请求树 | 引用者→ 位置链 |
| 权限问题 | gate, route |
闸门检查、控制器 |
规则配置示例
添加到您的规则文件中(例如。, .kilocode/rules/Правила.md):
### MCP Laravel Debug (Debugging and Logs)
Direct access to Debugbar logs via `.ladebugermcp/mcp-server.php`.
**Debugging Protocol**:
1. **Clear**: Always call `debugbar_clear` before starting a test
2. **Test**: Ask the user to perform a specific action in the browser
3. **Analyze**: Use `debugbar_get_request_tree` to analyze the request chain
4. **Details**: Use `debugbar_get_logs` when anomalies are found
**Typical Scenarios**:
- **Slow page**: `queries`, `models`, `views` — find slow SQL and N+1 issues
- **Error 500**: `exceptions`, `route` — study error stack and controller
- **Redirects**: analyze `referer` → `location` chains in request tree
- **Access rights**: `gate`, `route` — check authorization
**Tips**:
- Don't request `session` without necessity — large data volume
- Analyze queries with `duration > 100ms` — potential issues
- Check models with `retrieved > 100` — possible N+1 issues
MCP协议
服务器实现JSON-RPC 2.0协议:
初始化
{"jsonrpc": "2.0", "id": 1, "method": "initialize"}
工具/列表
{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}
工具/调用
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "debugbar_get_request_tree",
"arguments": { "limit": 10 }
}
}
许可证
MIT许可证,附加限制。看 许可证 文件。
使用风险自负。
作者 谢尔盖·奥(@Sergey0002)
电报: @Sergey0002
俄文文件
完整的俄语文档可在文件中找到 README.ru.md
