Geologist

Geologist allows you to talk to your minecraft server using HTTP. Get stats and issue rcon commands via a clean HTTP interface.

Install

npm install -g geologist

Usage

You'll need to provide geologist a few pieces of information to start it.

geologist
usage: geologist --port [port] --minecrafthost [host] --queryport [query port] --rconport [rcon port] --rconpassword [rcon password]

Options:
  --port           [required]
  --minecrafthost  [required]
  --queryport      [required]
  --rconport       [required]
  --rconpassword   [required]

If node isn't in your path, you can run geologist using something like the following:

/opt/node/bin/node `which geologist`

Examples

First, run geologist on your minecraft server and pass in the appropriate parameters:

geologist --port 9000 --minecrafthost localhost --queryport [query port] --rconport [rcon port] --rconpassword [rcon password]

Next, we'll retrieve the server's stats:

curl localhost:9000/stats
{"splitnum":"splitnum","key_val_start":128,"hostname":"Welcome to Your Server","gametype":"SMP","game_id":"MINECRAFT","version":"1.1","plugins":"","map":"yourmap","numplayers":"1","maxplayers":"4","hostport":"yourport","hostip":"yourip","key_val_end":256,"player_":["drewolson"]}

Now, let's issue a command. You can pass any valid rcon command, but we'll make it rain:

curl -X POST --data "command=toggledownfall" localhost:9000/command
{"size":44,"reqID":1,"type":0,"data":"Toggling rain and snow, hold on..."}

In a nutshell, perform a GET on /stats for the server stats, perform a POST on /command and provide a command in the post body to send rcon commands to your server.

Thanks

Thanks to the following projects, which I've essentially vendored and exposed via express: