setServerInfo('integration-server', '1.0.0') ->addTool( static function (RequestContext $context, string $text): string { try { $result = $context->getClientGateway()->sample($text, maxTokens: 64); } catch (ClientException $e) { return $e->getMessage(); } assert($result->content instanceof TextContent); return sprintf('%s said: %s', $result->model, $result->content->text); }, name: 'summarize', description: 'Summarizes text by asking the client to sample.', ) ->addTool( static function (ClientGateway $client, string $text): string { try { $result = $client->sample($text, maxTokens: 64); } catch (ClientException $e) { return $e->getMessage(); } assert($result->content instanceof TextContent); return sprintf('%s said: %s', $result->model, $result->content->text); }, name: 'summarize_via_gateway', description: 'Summarizes text through a directly injected gateway.', ) ->build() ->run(new StdioTransport());