libmuscle.mcp.transport_client module

class libmuscle.mcp.transport_client.TransportClient[source]

Bases: object

A client that connects to an MCP server.

This is a base class for MCP Transport Clients. An MCP Transport Client connects to an MCP Transport Server over some communication protocol, requests messages from it, and returns responses.

call(request: bytes) Tuple[bytes, Tuple[ProfileTimestamp, ProfileTimestamp, ProfileTimestamp]][source]

Send a request to the server and receive the response.

This is a blocking call. Besides the result, this function returns a tuple with three timestamps (floats in seconds since the epoch). These were taken when the function was first called, when data became available and the transfer started, and when the transfer stopped.

Parameters:

request – The request to send

Returns:

The received response, and the timestamps

static can_connect_to(location: str) bool[source]

Whether this client class can connect to the given location.

Parameters:

location – The location to potentially connect to.

Returns:

True iff this class can connect to this location.

close() None[source]

Closes this client.

This closes any connections this client has and/or performs other shutdown activities as needed.