initialize method

Future<McpInitializeResult> initialize({
  1. Duration? timeout,
})

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();
}