Unfortunately we don't have that kind of functionality in a black box form yet, so you would need to develop most of it using basic ITensor building blocks.
I'm working on an infinite MPS package here: https://github.com/mtfishman/ITensorInfiniteMPS.jl but it is in very early stages and will take some time to get into a usable form. There is some nontrivial functionality implemented like gauging an infinite MPS:
and finding an infinite MPS approximation for a finite MPS:
I started working on functionality for summing up infinite Hamiltonian terms with either local Hamiltonians or MPOs, but that functionality isn't quite working yet.
If you interested in trying something quite experimental, you could try contributing to that package. To get an idea of the interface, you can search through the source code, such as:
which is code for gauging an infinite MPS,
which takes a finite MPS and variationally computes an infinite MPS approximation of the bulk of the system by maximizing the overlap. There is also:
which is the beginning implementation of the VUMPS algorithm (https://arxiv.org/abs/1701.07035), an improved iDMRG algorithm. However, there was something off about how I was summing up the Hamiltonian terms so it isn't quite working yet.
The goal is to provide basic building blocks like the InfiniteMPS/InfiniteMPO types, gauging, getting fixed points of transfer matrices, computing infinite sums of local operators, grabbing slices of an infinite MPS as a finite MPS with some boundary condition, etc. to make implementing algorithms like the one in that paper very simple.