initialize method

Future<McpJsonMap> initialize({
  1. Object? id = 'initialize',
  2. McpJsonMap capabilities = const <String, Object?>{},
  3. McpJsonMap clientInfo = const <String, Object?>{'name' : 'connectanum_client', 'version' : '3.0.0-beta.5'},
  4. String? protocolVersion,
  5. Map<String, String> headers = const <String, String>{},
})

Initializes a session-based MCP connection and captures its session ID.

Implementation

Future<McpJsonMap> initialize({
  Object? id = 'initialize',
  McpJsonMap capabilities = const <String, Object?>{},
  McpJsonMap clientInfo = const <String, Object?>{
    'name': 'connectanum_client',
    'version': '3.0.0-beta.5',
  },
  String? protocolVersion,
  Map<String, String> headers = const <String, String>{},
}) async {
  final requestedProtocolVersion = protocolVersion ?? this.protocolVersion;
  final response = await post(
    <String, Object?>{
      'jsonrpc': '2.0',
      'id': id,
      'method': 'initialize',
      'params': <String, Object?>{
        'protocolVersion': requestedProtocolVersion,
        'capabilities': capabilities,
        'clientInfo': clientInfo,
      },
    },
    includeSession: false,
    protocolVersion: requestedProtocolVersion,
    headers: headers,
  );
  if (response == null) {
    throw const FormatException('initialize did not return a JSON-RPC body');
  }
  return response;
}