Mud Server Status Protocol  
MUD listings are often out dated and lack accurate information. Verifying that the one submitting a new MUD is a member of the MUD's administration can be quite tedious as well.
The MUD Server Status Protocol seeks to address these issues by providing a transparant protocol for MUD crawlers to gather detailed information about a MUD, including dynamic information like boot time and the current amount of online players. It also makes submitting a new mud entry very simple because it only requires a player or admin to fill in the hostname and port.
This document provides a technical description of the MSSP protocol.

The MSSP Protocol

MSSP is implemented as a Telnet option RFC854, RFC855. The server and client negotiate the use of MSSP as they would any other telnet option. Once agreement has been reached on the use of the option, option sub-negotiation is used to send information about the server to the client.

Server Commands

IAC WILL MSSP    indicates the server supports MSSP.

Client Commands

IAC DO   MSSP    indicates the client supports MSSP.
IAC DONT MSSP    indicates the client doesn't support MSSP.

Handshake

When a client connects to a server the server should send IAC WILL MSSP. The client should respond with either IAC DO MSSP or IAC DONT MSSP. If the server receives IAC DO MSSP it should respond with: IAC SB MSSP MSSP_VAR "variable" MSSP_VAL "value" MSSP_VAR "variable" MSSP_VAL "value" IAC SE.
The quote characters mean that the encased word is a string, the quotes themselves should not be send.

MSSP definitions

MSSP 70

MSSP_VAR 1
MSSP_VAL 2

Example MSSP handshake

server - IAC WILL MSSP
client - IAC DO MSSP
server - IAC SB MSSP MSSP_VAR "PLAYERS" MSSP_VAL "52" MSSP_VAR "UPTIME" MSSP_VAL "1234567890" IAC SE

Variables and Values

For ease of parsing, variables and values cannot contain the MSSP_VAL, MSSP_VAR, IAC, SE, or NUL byte. The value can be an empty string unless a numeric value is expected in which case the default value should be 0. If your Mud can't calculate one of the numeric values for the World variables you can use "-1" to indicate that the data is not available. If a list of responses is provided try to pick from the list, unless "Etc" is specified, which means it's open ended.
The same variable can be send more than once with different values, in which case the last reported value should be used as the default value. It is up to the crawler to decide how to exactly process multiple values. It's also possible to attach several values to a single variable by using MSSP_VAL more than once, with the default value reported last. This would look as following:
IAC SB MSSP MSSP_VAR "PORT" MSSP_VAL "80" MSSP_VAL "23" MSSP_VAL "3000" MSSP_VAR "CREATED" MSSP_VAL "1996" IAC SE
The quote characters mean that the encased word is a string, the quotes themselves should not be send.

MSSP Plaintext

Since it's not feasible for every mud to implement telopt negotiations a plaintext alternative is available. Whenever a new connection enters the command: MSSP-REQUEST a Mud supporting MSSP Plaintext should send the following:
\r\nMSSP-REPLY-START\r\nvariable\tvalue\r\nvariable\tvalue\r\nMSSP-REPLY-END\r\n
If a variable has multiple values you can use multiple tabs:
\r\nMSSP-REPLY-START\r\nvariable\tvalue\tvalue\r\nMSSP-REPLY-END\r\n

Official MSSP Variables

Required

NAME               Name of the MUD.
PLAYERS            Current number of logged in players.
UPTIME             Unix time value of the startup time of the MUD.
Generic

CRAWL DELAY        Preferred minimum number of hours between crawls. Send -1
                   to use the crawler's default.

HOSTNAME           Current or new hostname.
PORT               Current or new port number. Can be used multiple times,
                   most important port last.

CODEBASE           Name of the codebase, eg Merc 2.1
CONTACT            Email address for contacting the MUD.
CREATED            Year the MUD was created.
ICON               URL to a square image in bmp, png, jpg, or gif format.
                   The icon should be equal or larger than 32x32 pixels,
                   with a filesize no larger than 32KB.
IP                 Current or new IP address.
LANGUAGE           Name of the language used, eg German or English
LOCATION           Full English name of the country where the server is
                   located, using ISO 3166.
MINIMUM AGE        Current minimum age requirement, use 0 if not
                   applicable.
WEBSITE            URL to MUD website.
Categorization

FAMILY             AberMUD, CoffeeMUD, DikuMUD, LPMud,
                   MajorMUD, MOO, Mordor, Rapture,
                   TinyMUD, Custom.
GENRE              Adult, Fantasy, Historical, Horror,
                   Modern, None, Science Fiction
GAMEPLAY           Adventure, Educational, Hack and Slash,
                   None, Player versus Player, Roleplaying,
                   Simulation, Social, Strategy                                   
STATUS             Alpha, Closed Beta, Open Beta, Live
GAMESYSTEM         d20, D&D, Etc. Use Custom if using a
                   custom gamesystems. Use None if not available.
INTERMUD           AberChat, I3, IMC2, MudNet, Etc.
                   Can be used multiple times if you support several
                   protocols, most important protocol last. Leave empty
                   if no Intermud protocol is supported.
SUBGENRE           LASG, Medieval Fantasy, World War II,
                   Frankenstein, Cyberpunk, Dragonlance, Etc.
                   Use None if not available.
World

AREAS              Current number of areas.
HELPFILES          Current number of help files.
MOBILES            Current number of unique mobiles.
OBJECTS            Current number of unique objects.
ROOMS              Current number of unique rooms, use 0 if roomless.

CLASSES            Number of player classes, use 0 if classless.
LEVELS             Number of player levels, use 0 if level-less.
RACES              Number of player races, use 0 if raceless.
SKILLS             Number of player skills, use 0 if skill-less.
Protocols

ANSI               Supports ANSI colors ? 1 or 0
MCCP               Supports MCCP ? 1 or 0
MCP                Supports MCP ? 1 or 0
MSP                Supports MSP ? 1 or 0
MXP                Supports MXP ? 1 or 0
PUEBLO             Supports Pueblo ?  1 or 0
VT100              Supports VT100 interface ?  1 or 0
XTERM 256 COLORS   Supports xterm 256 colors ?  1 or 0
Commercial

PAY TO PLAY        Pay to play ? 1 or 0
PAY FOR PERKS      Pay for perks ? 1 or 0
Hiring

HIRING BUILDERS    Game is hiring builders ? 1 or 0
HIRING CODERS      Game is hiring coders ? 1 or 0
Links

If you want a link added, or added MSSP to your Mud, you can email me at mudclient@gmail.com. I'll add muds that correctly report a substantial section of the official variables to the MSSP crawler.

Clients (for debugging MSSP support)

GnomeMud Mud Client - Requires compilation with --enable-debug-logger=TRUE
TinTin++ Mud Client - Requires using '#config {debug telnet} on' to display MSSP output from a MUD server.

Codebases

AckFUSS - As of version 4.4.0.
FluffOS - As of version 2.16.
NakedMud - As of version 3.8.
PennMUSH - As of version 1.8.3p9. (private branch)
SmaugFUSS - As of version 1.9. (Plaintext MSSP implementation)
SWFotE FUSS - As of version 1.4. (Plaintext MSSP implementation)
SWR FUSS - As of version 1.3. (Plaintext MSSP implementation)
WickedMUD - As of version 1.0.

Crawlers

Azereth Mudcrawler
MSSP Mud Crawler

Directories

MudStats.com
MudBytes.net

Extensions

MudBytes Extended Variable list

Telnet Servers

apothica.mine.nu:5150
azereth.game-host.org:6464
carlnet.ee:4000
carnival.slayn.net:4123
chaoticushosting.com:1234
cruentus.genesismuds.com:7070
discworld.atuin.net:4242
kingdomsofahln.com:7777
lbom.game-host.org:8888
materiamagica.com:23
mush.pennmush.org:4201
nanvaent.org:23
patrickmn.com:5000
pokemonadventures.game-host.org:4202
rlmud.org:5001
mud.rohonline.net:3333
sandstorm.arthmoor.com:9696
slackhalla.org:4321
slothmud.org:6101
128.148.32.193:4000
202.134.238.80:7777
218.215.27.221:6666

Plaintext Servers

6dragons.org:4000
forbiddenfire.com 4567
godwars2.org:3000
gungfu2.net:8000
hellmoo.org:7777
imud.net:4242
legendsofthejedi.com:5656
maidendesmodus.com:4000
malevolentwhispers.org:1070
mg.mud.de:23
mudsite.com:2500
swgi.org:8060
t-n-k-games.com:1600
trigunmud.com:4567
www.landsofdraknor.net

Snippets

MUD Telopt Handler - Handles MCCP, MSSP, NAWS, and TTYPE.
PennMUSH MSSP - MSSP Patch for the PennMUSH codebase.
SMAUG MSSP Plaintext - Plaintext MSSP implementation for the SMAUG codebase.