-
Notifications
You must be signed in to change notification settings - Fork 51
Closed
Description
My project already had "react/promise" v2.11.0 installed, which does not offer React\Promise\Promise::catch(), causing an error when it is called on this line
Lines 172 to 173 in b017170
| $this->transport->sendToClientAsync($clientId, $framedMessage) | |
| ->catch( |
[2025-06-11T10:59:53.698173+00:00] default.ERROR: Unexpected error during response preparation/sending. {"clientId":"stdio","responseId":"7","exception":"Error: Call to undefined method React\\Promise\\Promise::catch() in /myProject/vendor/php-mcp/server/src/Protocol.php:173
Stack trace:
#0 /myProject/vendor/php-mcp/server/src/Protocol.php(132): PhpMcp\\Server\\Protocol->sendResponse('stdio', Object(PhpMcp\\Server\\JsonRpc\\Response))
#1 /myProject/vendor/evenement/evenement/src/EventEmitterTrait.php(143): PhpMcp\\Server\\Protocol->handleRawMessage('{\"method\":\"reso...', 'stdio')
#2 /myProject/vendor/php-mcp/server/src/Transports/StdioServerTransport.php(174): PhpMcp\\Server\\Transports\\StdioServerTransport->emit('message', Array)
#3 /myProject/vendor/php-mcp/server/src/Transports/StdioServerTransport.php(127): PhpMcp\\Server\\Transports\\StdioServerTransport->processBuffer()
#4 /myProject/vendor/evenement/evenement/src/EventEmitterTrait.php(143): PhpMcp\\Server\\Transports\\StdioServerTransport->{closure:PhpMcp\\Server\\Transports\\StdioServerTransport::listen():125}('{\"method\":\"tool...')
#5 /myProject/vendor/react/stream/src/ReadableResourceStream.php(157): Evenement\\EventEmitter->emit('data', Array)
#6 /myProject/vendor/react/event-loop/src/StreamSelectLoop.php(246): React\\Stream\\ReadableResourceStream->handleData(Resource id #1)
#7 /myProject/vendor/react/event-loop/src/StreamSelectLoop.php(213): React\\EventLoop\\StreamSelectLoop->waitForStreamActivity(NULL)
#8 /myProject/vendor/php-mcp/server/src/Server.php(158): React\\EventLoop\\StreamSelectLoop->run()
#9 /myProject/packages/shopforce-model-context-protocol/php/php-mcp-server.php(37): PhpMcp\\Server\\Server->listen(Object(PhpMcp\\Server\\Transports\\StdioServerTransport))
#10 {main}"
{
"file":"/myProject/vendor/php-mcp/server/src/Protocol.php",
"line":187,
"class":"PhpMcp\\Server\\Protocol",
"callType":"->",
"function":"sendResponse",
}
Apparently this project requires "react/promise" ^3.0: https://github.com/reactphp/promise/blob/3.x/CHANGELOG.md#300-2023-07-11, might be good to:
- add this requirement explicitly composer.json
- or support lower version of "react/promise" by detecting whether "Promise::catch" exists... ?
Metadata
Metadata
Assignees
Labels
No labels