以下是 Laravel 集成 MCP 协议的实战指南,结合生产级最佳实践:
一、环境配置
-
基础安装
使用 Composer 安装官方集成包并发布配置:composer require php-mcp/laravel php artisan vendor:publish --provider="PhpMcp\Laravel\McpServiceProvider"
-
协议配置
修改config/mcp.php
关键参数:'transports' => [ 'sse' => [ 'route' => '/mcp/sse', // SSE 端点路径 'middleware' => ['auth:api'] // JWT 认证中间件 ] ], 'cache_ttl' => 3600 // 元素发现缓存时间
二、核心开发
-
工具声明
通过属性注解暴露业务逻辑:use PhpMcp\Laravel\Server\Attributes\McpTool; class FinanceTools { #[McpTool(name: "currency_convert", description: "货币汇率转换")] public function convert(float $amount, string $from, string $to): array { $rate = $this->exchangeService->getRate($from, $to); return ['result' => $amount * $rate]; } }
-
资源注册
在routes/mcp.php
定义可读资源:use PhpMcp\Laravel\Facades\Mcp; Mcp::resource('stock_data', function ($request) { return Stock::where('symbol', $request->symbol) ->whereBetween('date', [$request->start, $request->end]) ->get(); });
三、生产部署
环节 | 实施方案 | 技术要点 |
---|---|---|
负载均衡 | Nginx 轮询 3 个 MCP 节点 | 配置 upstream 健康检查 |
会话持久化 | Redis 存储 SSE 连接状态 | 使用 predis 驱动 |
性能监控 | 集成 Laravel Telescope 追踪工具调用 | 过滤 mcp:* 事件 |
四、调试技巧
-
Artisan 命令
php artisan mcp:list-tools # 查看已注册工具 php artisan mcp:serve --stdio # 本地调试模式
-
日志分析
在.env
中配置专用日志通道:LOG_MCP_CHANNEL=daily LOG_MCP_LEVEL=debug
五、安全规范
- CSRF 豁免:在
VerifyCsrfToken
中间件排除 MCP 路由 - 速率限制:通过
throttle:60,1
中间件控制调用频率 - 数据校验:在工具方法内使用 Laravel Validator 校验输入