post method

Future<McpJsonMap?> post(
  1. McpJsonMap message, {
  2. bool streamable = true,
  3. bool includeSession = true,
  4. String? protocolVersion,
  5. Map<String, String> headers = const <String, String>{},
})

Posts one JSON-RPC message through the active MCP session.

Implementation

Future<McpJsonMap?> post(
  McpJsonMap message, {
  bool streamable = true,
  bool includeSession = true,
  String? protocolVersion,
  Map<String, String> headers = const <String, String>{},
}) async {
  _validateJsonRpcRequestId(message, label: 'request');
  final effectiveProtocolVersion = _validatedMcpProtocolVersion(
    protocolVersion ?? this.protocolVersion,
    'protocolVersion',
  );
  final preparedMessage = _prepareMessageForProtocol(
    message,
    effectiveProtocolVersion,
  );
  final response = await _postPayload(
    preparedMessage,
    streamable: streamable,
    includeSession:
        includeSession && effectiveProtocolVersion != latestProtocolVersion,
    protocolVersion: effectiveProtocolVersion,
    extraHeaders: headers,
  );
  if (response == null) {
    return null;
  }
  return _jsonMapFrom(response, label: 'JSON-RPC response');
}