I've done some experimentation and it seems that the MSP security code blocks equal signs. I guess someone felt that equal signs never occur in mathematics?
<%@ page contentType="text/xml"%>
<%@ taglib uri="http://www.wolfram.com/msp" prefix="msp" %>
<msp:evaluate>
$$step = "<math> <mi>x</mi> <mo>=</mo> <mn>42</mn> </math>";
MSPBlock[ {$$step}, $$step]
</msp:evaluate>
I've tried different ways to express equal include = and = but the result is the same. Unfortunately the MSPBlock documentation (http://reference.wolfram.com/workbench/index.jsp?topic=/com.wolfram.eclipse.webmathematica.help/html/ref/MSPBlock.html) isn't helpful.
I think this means I need to bypass the webMathematica security system. I'll update as I figure out more for when someone in the future runs into this.
PS, there is a bug in the forum that ignores the code tag within paragraphs. The two equal signs above are supposed to display as & # 6 1 ; and & e q u a l s ; without the extra spaces. They both render correctly in the Post Preview but when the post is saved they get turned into equals.