Contract for a peer MCP server connection.
Implement this behaviour to swap the concrete peer (e.g. replace a
real peer MCP server with a test double via mox).
Summary
Callbacks
@callback connect( Taskweft.MCP.Client.connection_spec(), keyword() ) :: {:ok, Taskweft.MCP.Client.t()} | {:error, term()}
@callback disconnect(Taskweft.MCP.Client.t()) :: :ok