I've made such a system for a client once.

What I did was create a few php scripts that fetch the list of servers (with an optional selection, like only deathmatch games), add a server to the list, remove a server from the list (note that you will also have to put in a timeout for servers that 'forget' to remove themselves from the list.

Then just run those scripts on a webserver with a database and call those webpages from c-script with the GSHTTP plugin (search for it).

If you go with the MySQL plugin, make sure you give the database user only the privileges it needs, because the MySQL plugin sends entire queries to the server. A hacker might send a query that corrupts your database. If you use the php approach, you can disallow TCP traffic for your database, so that only the queries that are created by your php script can be executed (still have to be carefull with SQL injection then!).