Factor + math.unicode, 35 bytes
[ [1,b] swap '[ _ ^ -1 ^ ] map Σ ] Explanation:
It's a quotation (anonymous function) that takes two integers from the data stack (in m, n order) as input and leaves a fully-reduced mixed fraction (it's simply the way that Factor is) on the data stack as output.
[1,b] swapMake a range from1tonand bringmto the top of the stack.'[ _ ^ -1 ^ ]Push a quotation to the stack formapto use later.'[ _says to slot whatever is on top of the data stack (m) into the_.mapApply a quotation to each element of a sequence, mapping the results into a sequence of the same size.^Raise a sequence element to thempower.-1 ^Take the reciprocal. This is shorter thanrecipand1 swap /.ΣSum.