php-mcp/laravel v2.0.0 发布:全面升级的 Laravel 集成方案
php-mcp/laravel 是一个为 Laravel 框架设计的 MCP(Microservice Communication Protocol)服务集成包,它允许开发者在 Laravel 应用中轻松构建和管理微服务工具、资源和提示系统。最新发布的 2.0.0 版本带来了重大架构改进,与 php-mcp/server v2.1.0+ 完全对齐,并显著提升了开发者体验。
核心架构升级
2.0.0 版本对底层架构进行了全面重构,采用了全新的 ServerBuilder
模式来实例化服务。这一改变使得整个包能够充分利用 php-mcp/server v2.x 的架构优势,同时保持了与 Laravel 生态系统的无缝集成。
新版本引入了 Mcp
Facade (PhpMcp\Laravel\Facades\Mcp
),为开发者提供了流畅的 API 来定义工具、资源、提示和资源模板。这种定义方式不仅更加直观,还能充分利用 Laravel 服务容器的依赖注入功能。
全新的 HTTP 服务支持
本次更新最显著的变化之一是引入了两种不同的 HTTP 服务模式:
-
独立 HTTP 服务器:通过
php artisan mcp:serve --transport=http
命令可以启动一个基于 ReactPHP 的高性能独立 HTTP 服务器。这个服务器使用\PhpMcp\Server\Transports\HttpServerTransport
实现,配置位于config/mcp.php
的transports.http_dedicated
部分。 -
集成 HTTP 传输:新增的
LaravelHttpTransport
类实现了ServerTransportInterface
,能够将 Laravel 的 HTTP 请求生命周期与核心 MCP 协议处理器桥接起来。这使得开发者可以选择将 MCP 服务集成到现有的 Laravel HTTP 路由中。
改进的开发者体验
2.0.0 版本大幅改善了开发者体验,主要体现在以下几个方面:
- 流畅的注册 API:现在可以通过链式调用的方式定义各种 MCP 元素,代码更加清晰易读。
- 自动发现机制:配置项
config('mcp.discovery.auto_discover')
允许开发者控制是否自动运行发现过程,这在生产环境中特别有用。 - 交互式命令行:
mcp:serve
命令现在会交互式地提示用户选择传输方式(stdio 或 http),提升了使用便捷性。 - 服务容器集成:所有处理器现在都通过 Laravel 的服务容器解析,支持完整的依赖注入功能。
配置与命名空间变更
新版本对配置文件和命名空间进行了重大调整:
- 主命名空间从
PhpMcp\Laravel\Server
变更为PhpMcp\Laravel
,开发者需要更新所有相关的 use 语句。 - 配置文件
config/mcp.php
完全重构,更加清晰地分离了独立 HTTP 服务器和集成 HTTP 传输的配置选项。 - 新增了服务器初始化指令 (
server.instructions
) 和更精细的发现机制控制选项。
向后兼容性说明
2.0.0 版本包含了一些破坏性变更,开发者需要注意:
- 必须重新发布并合并自定义的配置文件
mcp:serve --transport=http
现在会启动独立服务器进程,而非集成到现有 HTTP 服务中- 事件处理机制有所变化,建议使用文档化的 Laravel 事件
- 移除了
ConfigAdapter
类,相关功能已由核心服务接管
升级建议
对于现有项目,建议按照以下步骤升级:
- 首先卸载旧版本包,然后安装新版本以避免命名空间冲突
- 强制重新发布配置文件并手动合并自定义设置
- 检查并更新所有 MCP 相关的代码,特别是命名空间引用
- 根据需求选择适合的 HTTP 服务模式(独立或集成)
- 测试所有 MCP 功能,确保事件监听和依赖注入正常工作
php-mcp/laravel v2.0.0 的发布标志着该项目进入了一个更加成熟稳定的阶段,为 Laravel 开发者提供了更强大、更灵活的微服务通信解决方案。新版本的架构设计和 API 改进使得集成 MCP 协议到 Laravel 应用中变得更加简单和高效。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考