pub(crate) fn run(s: &Session) -> Result<(), String>
Serves MCP on standard input and output until the client closes them. Standard output carries the protocol alone: nothing else may print there.