Laravel调试日志分析工具

通过标准协议提供Laravel Debugbar日志分析功能的本地开发工具,支持AI代理访问调试数据。

  • by sergey0002
  • PHP
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 sergey0002/Laravel-Debugbar-MCP

使用说明

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