What is the Minecraft Server Management Protocol?
The Server Management Protocol is a Java Edition dedicated-server API introduced in 1.21.9. It carries JSON-RPC 2.0 messages over WebSocket, so dashboards and automation can work with typed players, bans, settings, game rules, and server state instead of parsing console text.
Minecraft 26.2 uses protocol version 3.0 and can expose rpc.discover before the game server has fully started. Discovery is the safest way for a client to learn the methods and notifications supported by the exact server it reached.
This explorer is a reference and payload builder, not a remote control panel. It intentionally uses a placeholder secret and performs all editing locally in your browser.
Management API versus RCON
RCON sends console commands and returns unstructured text. The management API returns typed JSON and can push join, leave, save, gamerule, and status events, which makes it a stronger fit for control panels, monitoring, and bots.
The API is Java Edition only and disabled by default. A production client should validate discovered schemas, handle standard JSON-RPC error objects, reconnect with backoff, and treat stop, clear, set, ban, kick, and operator writes as privileged actions.
Port 0 asks Minecraft to choose a random port; it does not disable the service. TLS defaults to enabled, and browser clients also need an allowed Origin plus the minecraft-v1 WebSocket subprotocol.
Frequently asked questions
Can this page connect to my live Minecraft server?
No. It builds examples locally and never asks for your real secret. Use the generated snippet in a trusted local tool, or use a maintained client library.
Why are params shown as a JSON array?
The Minecraft API methods use positional JSON-RPC parameters. Even a method with one logical argument sends that value inside the params array.
Does the protocol work on Bedrock Edition?
No. Minecraft Server Management Protocol is currently a Java Edition dedicated-server feature.
Should I hard-code the method list in a server panel?
Use rpc.discover at runtime when possible. The protocol has already changed across 1.21.9, 1.21.11, and 26.2.