McpStreamableHttpClient constructor

McpStreamableHttpClient(
  1. Uri endpoint, {
  2. HttpClient? httpClient,
  3. McpHttpClientFactory? subscriptionHttpClientFactory,
  4. Map<String, String> headers = const <String, String>{},
  5. McpJsonMap? clientInfo,
  6. McpJsonMap clientCapabilities = const <String, Object?>{},
  7. String defaultProtocolVersion = latestSessionProtocolVersion,
  8. Duration requestTimeout = defaultRequestTimeout,
  9. int maxRequestBytes = defaultMaxRequestBytes,
  10. int maxResponseBytes = defaultMaxResponseBytes,
  11. bool closeHttpClient = false,
})

Creates a session-based Streamable HTTP MCP client for endpoint.

Implementation

McpStreamableHttpClient(
  this.endpoint, {
  HttpClient? httpClient,
  McpHttpClientFactory? subscriptionHttpClientFactory,
  this.headers = const <String, String>{},
  McpJsonMap? clientInfo,
  this.clientCapabilities = const <String, Object?>{},
  String defaultProtocolVersion = latestSessionProtocolVersion,
  Duration requestTimeout = defaultRequestTimeout,
  int maxRequestBytes = defaultMaxRequestBytes,
  int maxResponseBytes = defaultMaxResponseBytes,
  bool closeHttpClient = false,
}) : clientInfo = _validatedMcpClientInfo(clientInfo),
     defaultProtocolVersion = _validatedMcpProtocolVersion(
       defaultProtocolVersion,
       'defaultProtocolVersion',
     ),
     requestTimeout = _validatedMcpRequestTimeout(requestTimeout),
     maxRequestBytes = _validatedMcpMaxRequestBytes(maxRequestBytes),
     maxResponseBytes = _validatedMcpMaxResponseBytes(maxResponseBytes),
     _httpClient = httpClient ?? HttpClient(),
     _subscriptionHttpClientFactory =
         subscriptionHttpClientFactory ?? HttpClient.new,
     _ownsHttpClient = httpClient == null || closeHttpClient,
     _authorizationHeader = _authorizationHeaderFrom(headers),
     _protocolVersion = _validatedMcpProtocolVersion(
       defaultProtocolVersion,
       'defaultProtocolVersion',
     );