STRATUMSYS-04 / fleet-primaryUTC --:--:--

STRATUM / build 0.4.1 / rust 1.79

STRATUM

A control plane for VDS and Minecraft server fleets, written in Rust and exposed through the Model Context Protocol. One agent per node, one stream per fleet, one conversation with your model.

4 / 6NODES ONLINE2FLAGGED142CONCURRENT PLAYERS
01

Fleet

0x01fra-1

mc-survival-01

Survival

ONLINE
CPU
34%
MEM
62%
DSK
51%
VER
1.21.4
UPTIME
06d 11h
PLAYERS
73 / 120
KIND
MC-SURV

0x02fra-1

mc-creative-01

Creative

ONLINE
CPU
09%
MEM
21%
DSK
28%
VER
1.21.4
UPTIME
06d 11h
PLAYERS
18 / 40
KIND
MC-CRE

0x03fra-2

mc-modded-01

Modded

WATCH
CPU
71%
MEM
84%
DSK
44%
VER
1.20.1 / Fabric 0.16
UPTIME
01d 03h
PLAYERS
41 / 60
KIND
MC-MOD

0x04nyc-1

mc-network-01

Network Hub

ONLINE
CPU
18%
MEM
31%
DSK
22%
VER
Velocity 3.3.0
UPTIME
00d 19h
PLAYERS
10 / 80
KIND
MC-PROXY

0x05fra-1

vds-fra-01

Backups + Postgres

ONLINE
CPU
12%
MEM
39%
DSK
64%
VER
Debian 12 / kernel 6.1
UPTIME
12d 04h
PLAYERS
-
KIND
VDS-LX

0x06fra-2

vds-fra-02

Build CI + cache

DEGRADED
CPU
27%
MEM
51%
DSK
89%
VER
Debian 12 / kernel 6.1
UPTIME
12d 04h
PLAYERS
-
KIND
VDS-LX
02

Live Telemetry

CPU

across fleet

29%
peak
mc-modded-01 / 71%
cores
32 eff / 64 alloc
sample
15s poll

MEMORY

used of pool

48%
peak
mc-modded-01 / 84%
alloc
94 GB / 128 GB
swap
0 B

STORAGE

used of vault

50%
peak
vds-fra-02 / 89%
backup
/srv/backups 124GB free
scrub
ok 4m ago
03

Log Stream

$ tail -f /var/log/stratum
18:11:42.104INFO server.bootstrap mc-survival-01 listening on 0.0.0.0:25565 (rcon=42011)
18:11:41.877INFO server.tick mc-survival-01 tick=12492 entities=4823 chunks=812 mspt=18.4
18:11:40.012WARN watchdog.cpu mc-modded-01 sustained 71 percent over 120s window
18:11:38.501INFO player.join mc-survival-01 +18 (eu-west, lobby) total=73 of 120
18:11:37.219INFO fs.scrub vds-fra-01 /srv/backups ok free=124GB prune=0
18:11:35.984INFO mcp.invoke tool=logs.read origin=claude-3.7-sonnet args=lines=40
18:11:34.000INFO alerts.dispatch 4 channels online: slack, telegram, email, pushover
18:11:30.450DEBUGnet.dns mc-network-01 resolved 3 SRV records for backend lobby
18:11:29.812INFO server.bootstrap vds-fra-02 systemd unit stratum-agent active (pid=8721)
18:11:28.001INFO alert.send channel=slack msg="mc-modded cpu high" id=al_8c4b
18:11:27.000WARN disk.headroom vds-fra-02 free=15GB of 150GB past 80 percent threshold
18:11:24.812INFO world.snapshot mc-creative-01 /srv/backups/mc-creative-01-2026-06-24.snap (3.2GB)
18:11:22.001CRIT tls.handshake admin-mac-01 cert expired 38m ago, refusing control channel
18:11:20.500INFO mcp.invoke tool=server.snapshot origin=copilot-cli args=host=vds-fra-01
18:11:18.011INFO player.leave mc-survival-01 -7 (eu-west, lobby) total=66 of 120
18:11:15.443INFO agent.rotate vds-fra-02 pickup new scrape cycle in 27s
18:11:13.012DEBUGscrape.cpu mc-modded-01 sample=%71.4 cores=4 user=58.4 sys=12.6 iow=0.4
18:11:10.992INFO channel.heartbeat slack ok telegram ok email ok pushover ok (latency=42ms p50)
18:11:08.001INFO fleet.reconcile 6 nodes registered, 0 drift, fleet checksum=7e9a80
04

Alert Center

  • CRITICAL00:01

    [vds-fra-02] TLS handshake failed from admin-mac-01. Certificate expired 38 minutes ago.

    id=a-901
  • WARN00:12

    [mc-modded-01] CPU at 71 percent sustained over 8 minutes. Chunk entity count creeping.

    id=a-900
  • WARN01:04

    [vds-fra-02] Disk usage crossed 80 percent, holding for 6 hours.

    id=a-898
  • INFO00:32

    [mc-survival-01] Player spike resolved: 73 of 120 concurrent, join rate returned to baseline.

    id=a-897

// Transmit alert

CHANNEL
POST /api/alert/send
05

MCP Surface

01 / server.list

TOOL

Return every node in the registered fleet with role, region, and uptime.

params = {}

02 / server.snapshot

TOOL

Pull a single point-in-time read of CPU, memory, disk, and player roster.

params = { host: string }

03 / logs.read

TOOL

Tail the wrapped systemd journal with level and host filters.

params = { host, lines, level?, since? }

04 / logs.search

TOOL

Indexed full-text search across every log buffer on a node.

params = { query, host?, since? }

05 / alert.send

TOOL

Fan an alert out to slack, telegram, email, or a custom webhook.

params = { severity, source, message, channels[] }

06 / player.list

TOOL

Return the live player roster with ping, world, and join timestamp.

params = { host }

07 / world.backup

TOOL

Snapshot the live world to /srv/backups and rotate the previous label.

params = { host, label? }

06

Install

// QUICK START

Install one binary per host, register a fleet, and point any Model Context Protocol client at the stdio endpoint. No stateful daemon required: the agent serves, gathers, and exits cleanly.

  • ASingle Rust static binary, no glibc coupling.
  • BSystemd unit, runs as the unprivileged stratum user.
  • CSpeaks MCP over stdio and HTTP, your choice per client.

$ shell

# install
$ cargo install stratum-mcp --locked

# register the fleet
$ stratum init \
      --token "$STRATUM_TOKEN" \
      --fleet ./fleet.toml

# launch the agent
$ stratum connect
  -> fleet checksum 7e9a80
  -> 6 nodes registered
  -> MCP endpoint  http://localhost:7280/mcp
  -> ready, awaiting client

Source builds from github.com/anomalyco/stratum. BSD-3-Clause.

STRATUM v0.4.1 (RUST 1.79)END OF TRANSMISSIONSIGNAL LOCKED --:--:--