NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #3933 most downloaded on Packagist
Laravel SDK for building Model Context Protocol (MCP) servers - Seamlessly integrate MCP tools, resources, and prompts into Laravel applications
Last release 6 months ago
29 Mar 2026
Ships unpredictably
gaps range from 8 days to 9 months
Nearly every release is documented
notes for 9 of 9 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
9 releases · first in 2025
Feat: Add stateless mode support for HTTP transports by @CodeWithKyrian in #36
Full Changelog: 3.1.0...4.0.0
Full Changelog: https://github.com/php-mcp/laravel/compare/3.1.0...4.0.0
One column per month.
Add PHPUnit 12 support and fix test compatibility issues by @tkaratug in #26
Full Changelog: 3.0.0...3.1.0
Full Changelog: https://github.com/php-mcp/laravel/compare/3.0.0...3.1.0
Upgraded to php-mcp/server ^3.0 with latest MCP protocol support( 2025-03-26 )
2025-03-26)php-mcp/server ^3.0README)composer require php-mcp/laravel:^3.0
php artisan vendor:publish --provider="PhpMcp\Laravel\McpServiceProvider"Full Changelog: 2.1.1...3.0.0
Fix STDIO transport stream errors on client disconnect by @CodeWithKyrian in #23
Full Changelog: 2.1.0...2.1.1
Full Changelog: https://github.com/php-mcp/laravel/compare/2.1.0...2.1.1
Update README.md by @taylorotwell in #5
Full Changelog: 2.0.0...2.1.0
Full Changelog: https://github.com/php-mcp/laravel/compare/2.0.0...2.1.0
This release marks a major overhaul , bringing it into full alignment with php-mcp/server v2.1.0+ and introducing a significantly improved, more "Lara
This release marks a major overhaul, bringing it into full alignment with php-mcp/server v2.1.0+ and introducing a significantly improved, more "Laravely" developer experience.
Mcp Facade (PhpMcp\Laravel\Facades\Mcp).Mcp::tool(...)->description(...)).routes/mcp.php (configurable).mcp:serve:
php artisan mcp:serve --transport=http command now launches a standalone, high-performance ReactPHP-based HTTP server using \PhpMcp\Server\Transports\HttpServerTransport.config/mcp.php under transports.http_dedicated.--host, --port, --path-prefix) can override config defaults.LaravelHttpTransport for Integrated HTTP:
PhpMcp\Laravel\Transports\LaravelHttpTransport class implements ServerTransportInterface to bridge Laravel's HTTP request lifecycle with the core MCP Protocol handler.config('mcp.discovery.auto_discover') (default: true) now controls whether discovery runs automatically or not. You can set it to false in production..mcp:serve: If --transport is not specified, the command now interactively prompts the user to choose between stdio and http.\PhpMcp\Server\Server::make() (ServerBuilder) for all server instantiation, fully leveraging php-mcp/server v2.x architecture.PhpMcp\Laravel\Server to PhpMcp\Laravel.config/mcp.php):
ServerBuilder options.http_dedicated vs. http_integrated transports.cache.ttl) and discovery (discovery.save_to_cache_on_discover) keys.server.instructions for the initialize MCP response.discovery.exclude_dirs and discovery.definitions_file.McpServiceProvider:
\PhpMcp\Server\Server instance using Laravel's services for logging, caching (with fallback to core FileCache), container, and event loop.definitions_file via McpRegistrar.Registry notifiers to dispatch Laravel events for list changes.McpController (Integrated HTTP): More robustly handles the integrated server behavior, working with a custom LaravelHttpTransport.mcp:discover: Now directly calls Server::discover() with configured/CLI parameters. force option behavior clarified.mcp:list: Fetches elements from the live, fully configured Registry from the resolved Server instance.mcp:serve: Refactored to use core StdioServerTransport or HttpServerTransport directly.php-mcp/server to ^2.2.0McpController.PhpMcp\Laravel\Server\Adapters\ConfigAdapter: No longer needed due to changes in php-mcp/server v2.x.PhpMcp\Laravel\Server to PhpMcp\Laravel. Update all use statements and FQCN references in your application. You may have to uninstall and reinstall the package to avoid conflicts.config/mcp.php file has been significantly restructured. You must republish and merge your customizations:
php artisan vendor:publish --provider="PhpMcp\Laravel\McpServiceProvider" --tag="mcp-config" --forcemcp:serve for HTTP: The --transport=http option for mcp:serve now launches a dedicated ReactPHP-based server process. For serving MCP via your main Laravel application routes, ensure the http_integrated transport is enabled in config/mcp.php and your web server is configured appropriately.ToolsListChanged, etc.).PhpMcp\Laravel\Server\Adapters\ConfigAdapter is removed.Full Changelog: 1.1.1...2.0.0
McpServiceProvider File And loadElements function are not found by @tsztodd in #2
Full Changelog: https://github.com/php-mcp/laravel/compare/1.1.0...1.1.1
This release updates the package for compatibility with php-mcp/server v1.1.0.
This release updates the package for compatibility with php-mcp/server v1.1.0.
php-mcp/server: ^1.1.0.McpServiceProvider to correctly provide ConfigurationRepositoryInterface, LoggerInterface, and CacheInterface bindings to the underlying Server instance when resolved from the Laravel container.ServeCommand and McpController to inject the Server instance and instantiate TransportHandler classes according to php-mcp/server v1.1.0 constructor changes.php-mcp/server v1.1.0.Full Changelog: 1.0.0...1.1.0
This release updates the package for compatibility with php-mcp/server v1.1.0.
php-mcp/server: ^1.1.0.McpServiceProvider to correctly provide ConfigurationRepositoryInterface, LoggerInterface, and CacheInterface bindings to the underlying Server instance when resolved from the Laravel container.ServeCommand and McpController to inject the Server instance and instantiate TransportHandler classes according to php-mcp/server v1.1.0 constructor changes.php-mcp/server v1.1.0.Full Changelog: https://github.com/php-mcp/laravel/compare/1.0.0...1.1.0
Initial Release
Welcome to the first release of php-mcp/laravel! This package provides seamless integration of the core php-mcp/server package with your Laravel application, allowing you to expose application functionality as Model Context Protocol (MCP) tools, resources, and prompts using simple PHP attributes.
Welcome to the first release of php-mcp/laravel ! This package provides seamless integration of the core php-mcp/server package with your Laravel appl
Welcome to the first release of php-mcp/laravel! This package provides seamless integration of the core php-mcp/server package with your Laravel application, allowing you to expose application functionality as Model Context Protocol (MCP) tools, resources, and prompts using simple PHP attributes.
#[McpTool], #[McpResource], etc.) within your Laravel application structure. Leverage Laravel's Dependency Injection within your MCP element classes.config/mcp.php) for fine-grained control over discovery, transports, caching, and capabilities.mcp:discover), listing discovered elements (mcp:list), and running the server via stdio (mcp:serve)./mcp/message, /mcp/sse by default) and a controller for handling MCP communication over HTTP, enabling browser-based clients and other HTTP consumers.mcp:discover after changes).mcp:discover) for production environments, ensuring optimal performance via caching (integrates well with deployment workflows).ToolsListChanged, ResourcesListChanged, PromptsListChanged) when element lists change, allowing for custom integrations or notifications.Installation is straightforward using Composer. See the README Installation Guide for full details.
# 1. Require the package
composer require php-mcp/laravel
# 2. Publish the configuration file (optional but recommended)
php artisan vendor:publish --provider="PhpMcp\Laravel\Server\McpServiceProvider" --tag="mcp-config"#[McpTool], #[McpResource], etc., within directories specified in config/mcp.php (e.g., app/Mcp). Inject dependencies as needed. See Defining MCP Elements.php artisan mcp:discover during your deployment process. See Automatic Discovery vs. Manual Discovery.php artisan mcp:serve and configure your client to execute this command (using the full path to artisan).transports.http.enabled is true, run your Laravel app on a suitable web server (Nginx+FPM, Octane, etc. - not php artisan serve), exclude the MCP route from CSRF protection, and configure your client with the SSE URL (e.g., http://your-app.test/mcp/sse). See Running the Server for critical details.php artisan serve development server is not suitable for the HTTP+SSE transport due to its single-process nature. Use a proper web server setup like Nginx/Apache + PHP-FPM or Laravel Octane.web middleware group for the HTTP transport, you must exclude the MCP message route (default: mcp or mcp/*) from CSRF protection in your application to avoid 419 errors.Please report any issues or provide feedback on the GitHub repository.
Your coding agent can read these notes before it upgrades. Set up the MCP server →