v2.1.1 — Laravel Boost subprocess compatibility
Fixed
- MCP tools now return
Response(text content with JSON-encoded payload) instead ofResponseFactory(structured content). This fixes aBadMethodCallException: Method Laravel\Mcp\ResponseFactory::isError does not existraised when the tools are executed in a subprocess bylaravel/boost'sExecuteToolCommand, which assumes aResponsereturn value and calls->isError()on it directly.
The payload is preserved — clients that read the content[0].text field can still json_decode it. The trade-off is the loss of the formal MCP structuredContent field in the JSON-RPC response, which is required until laravel/boost is patched upstream to handle ResponseFactory (see vendor/laravel/boost/src/Console/ExecuteToolCommand.php).
Tests
- All 7 MCP tools updated and re-tested (
Responseinstead ofResponseFactory, payload extracted viajson_decode((string) $response->content(), true)) - New
BoostExecuteToolCompatibilityTestsimulates the boost subprocess flow: invokeshandle()thenisError()on every tool
Compatibility
- No breaking changes for direct MCP server usage
- The 7 tools introduced in v2.1.0 keep their schemas and parameter contracts