RUN YOUR
OWN SERVER
Already have a Minecraft Java server running? Docker is the only requirement. Starting from nothing? The bare-metal installer below brings up Java, PaperMC, and Geyser too — it just needs a Linux host with sudo.
Point OreMind at a Java server you already run — a dedicated server or a single-player world opened to LAN. Node and Java aren't needed on this side, just Docker. The installer generates a bearer token and won't report success until the bot has actually joined your world.
git clone https://github.com/christopherdeck/oremind.git cd oremind bash scripts/install-linux.sh # Linux .\scripts\install-windows.ps1 # Windows (PowerShell 5.1+)
Minecraft on another host or port? Add --minecraft-host / --minecraft-port. Online-mode server? Use a separate licensed Java account and add --minecraft-auth microsoft --default-bot <account> for a one-time Microsoft device sign-in. No existing Java server yet? Add --full-stack to also let Docker run a bundled PaperMC + Geyser + Floodgate.
One script installs Java 21, the latest PaperMC build, Geyser + Floodgate, accepts the EULA, wires the two core systemd units, generates an MCP bearer token, and waits for the configured bot to pass the readiness check. Set INSTALL_CHAT_BRIDGE=1 to install the optional third unit.
sudo apt install -y git sudo mkdir -p /opt/minecraft-bot-mcp && sudo chown "$USER":"$USER" /opt/minecraft-bot-mcp git clone https://github.com/christopherdeck/oremind.git /opt/minecraft-bot-mcp cd /opt/minecraft-bot-mcp bash scripts/deploy-java.sh
MCP binds to loopback by default. For remote access, keep bearer auth on and use an SSH tunnel or an authenticated TLS reverse proxy — don't open port 3100 directly.
Read MCP_AUTH_TOKEN from .env after a Docker install, or from /etc/default/minecraft-bot-mcp after a bare-metal install. Configure your client with the local Streamable HTTP endpoint and bearer header:
{
"mcpServers": {
"oremind": {
"url": "http://127.0.0.1:3100/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
Client configuration filenames differ. Once connected, call minecraft_bots first; then use minecraft_join if no bot is active. See the agent playbook for safe operating patterns.