A general purpose MC SCF program with a direct, fully second-order and step-restricted algorithm is presented. The direct character refers to the solution of an MC SCF eigenvalue equation by means of successive linear transformations where the norm-extended hessian matrix is multiplied onto a trial vector without explicitly constructing the hessian. This allows for applications to large wavefunctions. In the iterative solution of the eigenvalue equation a norm-extended optimization algorithm is utilized in which the number of negative eigenvalues of the hessian is monitored. The step control is based on the trust region concept and is accomplished by means of a simple modification of the Davidson-Liu simultaneous expansion method for iterative calculation of an eigenvector. Convergence to the lowest state of a symmetry is thereby guaranteed, and test calculations also show reliable convergence for excited states. We outline the theory and describe in detail an efficient implementation, illustrated with sample calculations.