01 Docker — Minecraft already running (recommended)

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.

02 Bare metal — install Minecraft too

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
03 Connect
Bedrock client your-host:19132
Java client your-host:25565
MCP agent http://127.0.0.1:3100/mcp
Dashboard http://127.0.0.1:3100/dashboard
Liveness probe http://127.0.0.1:3100/health
Readiness probe http://127.0.0.1:3100/ready

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.

04 Attach an MCP client

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.

05 Key config vars
MINECRAFT_AUTH offline for Floodgate/cracked, microsoft for online-mode Java
MCP_AUTH_TOKEN bearer token; the installers generate one automatically. Gates every route when set, fail-closed
MCP_DEFAULT_BOT auto-connects on boot with capped backoff retry (default MCPTestBot)
MCP_BOT_IMPL mineflayer — the only supported runtime. MCP_BOT_IMPL=bedrock is retired and refuses to start
MCP_MAX_BOTS cap on concurrently connected bots (default 4)
MCP_MAX_SESSIONS cap on concurrent MCP client sessions, idle-evicted after 30 min (default 32)
MCP_MAX_QUEUE_LENGTH per-bot queued-step backlog cap (default 256)
MCP_ALLOWED_ORIGINS comma-separated browser origins allowed when using a reverse proxy
MCP_BIND_ADDRESS host interface Docker publishes on — loopback-first (default 127.0.0.1)