You can use PuLP to read the MPS file, add the constraint, and export the new problem as an MPS file :
The syntax is var, prob = LpProblem.fromMPS("prob.mps") to read
the MPS file.
Then use prob += to add your constraint.
And finally prob.writeMPS("new_prob.mps") to export the new MPS
file.
If you are minimizing, the constraint would be something like prob+= obj <= best_sol - tol, where obj is the objective function which you have to fetch, best_sol is your best known solution, and tol is your tolerance.
EDIT
Once you have loaded the MPS file as a pulp.LpProblem object, it is straightforward to know wether it is a minimization problem or not with the attribute pulp.LpProblem.sense which returns 1 for minimization, -1 for maximization.
More generally, with pulp.LpProblem.to_dict, you can access all attributes of the problem, including the objective coefficients.