mu*index
reading
theme
MXP  [protocol]
The MUD eXtension Protocol — HTML-like markup in the text stream, giving
clickable links, images and forms. Widely specified, unevenly implemented.
https://www.zuggsoft.com/zmud/mxp.htm

Measured adoption
  122 of 886 listed games were observed offering it (13.8%)
  /games?protocol=MXP

  The games not counted here are not games without the protocol. A game is
  counted when we observed its server offering the option in a handshake; the
  rest are servers that did not offer it to us and servers whose handshake we
  have not read, and we cannot tell you which.

  By codebase, of the games we identified
    CoffeeMUD            30 of 32 offered it
    CircleMUD            9 of 47 offered it
    ROM                  9 of 55 offered it
    DikuMUD              5 of 35 offered it
    SMAUG                5 of 20 offered it
    tbaMUD               4 of 5 offered it
    Evennia              2 of 11 offered it
    PennMUSH             1 of 34 offered it
    AresMUSH             0 of 18 offered it
    CobraMUSH            0 of 2 offered it
    FluffOS              0 of 28 offered it
    MUCK                 0 of 24 offered it
    RhostMUSH            0 of 40 offered it
    TinyMUSH             0 of 9 offered it

MXP embeds a small, HTML-like markup language in the text a server sends: <send>
for a clickable command, <a href> for a link, colour and font elements, and a
mechanism for a server to define its own tags. It negotiates on telnet option
91.

Its design problem is inherent and interesting: the markup travels in the same
stream as the text, so a server has to be careful about text that looks like
markup, and a client has to be careful about what it will render. MXP defines
security levels for exactly this reason — a tag arriving in a line of chat from
another player is not the same as a tag the server emitted itself.

CLICKABILITY IS THE REASON PEOPLE WANT IT

Most of what MXP is actually used for is turning north and item names into
things you can click. For a new player that is a substantial difference, and it
is why the protocol keeps being implemented despite its complexity.

PUEBLO IS THE OTHER ONE

Pueblo [/reference/protocols/pueblo] predates MXP and does a similar job with a
different, more literally HTML-shaped approach. A client that supports one
frequently does not support the other, and the two are easy to confuse when
reading a feature list — which is a mistake we have had to be careful about in
the client tables in this section.

WHAT WE MEASURE

Servers offering telnet option 91 in a handshake we observed. MXP is less
commonly negotiated than the out-of-band protocols, partly because much of its
value is realised by servers that simply emit the markup and hope, without
negotiating at all — which we cannot see.

See also
  Pueblo — /reference/protocols/pueblo
  MUSHclient — /reference/clients/mushclient
  Mudlet — /reference/clients/mudlet