A technique is presented to synthesize multi-body mechanisms using topology optimization. The topology of each body as well as the inter-body connections are parameterized and optimized simultaneously. A geometrically nonlinear finite element analysis is performed with a Newton-Raphson implementation to calculate the motion of the multi-body mechanisms. Density filtering allows for local feature size control, and a penalizing material interpolation scheme leads to converged solid/void solutions. The adjoint method is employed to efficiently calculate response function sensitivities, which are used in the method of moving asymptotes (MMA) to determine optimal multi-body structures. The technique is demonstrated on the design of two-body grippers and multi-body force inverters.