Drake wraps a number of commercial solvers (+ a few custom solvers) to provide a common interface for convex optimization, mixed-integer convex optimization, and other non-convex mathematical programs.
The MathematicalProgram class handles the coordination of decision variables, objectives, and constraints. The MathematicalProgram::Solve() method reflects on the accumulated objectives and constraints and will dispatch to the most appropriate solver. Alternatively, one can invoke specific solver by instantiating its MathematicalProgramSolverInterface and passing the MathematicalProgram directly to the MathematicalProgramSolverInterface::Solve() method.
Our solver coverage still has many gaps, but is under active development.
Mixed-Integer Convex Optimization
indicates that this is a commercial solver which requires a license (note that some have free licenses for academics).
Note: Drake must be able to locate each solver on your system during the configuration step (when you run cmake), otherwise that solver will be disabled. To simplify this process, we have attempted to make solvers available as a part of the Drake superbuild, but we are unable to publicly share the distributions for commercially licensed solvers.