initialize method
Runs the initialize/notifications/initialized handshake. Throws
McpRequestException on failure.
Implementation
Future<McpInitializeResult> initialize({Duration? timeout}) async {
final result = await request('initialize', {
'protocolVersion': mcpProtocolVersion,
'capabilities': const <String, dynamic>{},
'clientInfo': mcpClientInfo,
}, timeout: timeout ?? requestTimeout);
if (result is! Map<String, dynamic>) {
throw const McpRequestException('Failed to initialize MCP: no response');
}
status = McpClientStatus.ready;
notify('notifications/initialized', const <String, dynamic>{});
final serverInfo = result['serverInfo'];
if (serverInfo is Map<String, dynamic>) {
return McpInitializeResult(
serverName: serverInfo['name'] as String?,
serverVersion: serverInfo['version'] as String?,
);
}
return const McpInitializeResult();
}