Well, now, nothing really: MPI has been around since 1994, and 5 years in computing is an epoch. And even when it was originally released, it was based on ideas that were around since early 80s. However, in its day MPI capitalised on what people knew about message passing programming already and offered:
MPI_Send(buffer, count, datatype, destination, tag, communicator)
At roughly the same time people played also with parallel programming languages (and still do) and with other parallel programming concepts, e.g., shared memory, NUMA shared memory, simulated shared memory, parallel objects, CORBA, ISIS, RPCs, and more.
MPI was a conservative endeavour: