Magnitude homology was introduced by Hepworth and Willerton in the case of graphs, and was later extended by Leinster and Shulman to metric spaces and enriched categories. Here we introduce the dual theory, magnitude cohomology, which we equip with the structure of an associative unital graded ring. Our first main result is a ‘recovery theorem’ showing that the magnitude cohomology ring of a finite metric space completely determines the space itself. The magnitude cohomology ring is non-commutative in general, for example when applied to finite metric spaces, but in some settings it is commutative, for example when applied to ordinary categories. Our second main result explains this situation by proving that the magnitude cohomology ring of an enriched category is graded-commutative whenever the enriching category is cartesian. We end the paper by giving complete computations of magnitude cohomology rings for several large classes of graphs.