DEV Community

Tijmen de Jong 💻🚀
Tijmen de Jong 💻🚀

Posted on • Edited on

Building Agent Emulator: Habbo emulator + MCP 👨‍💻🏨

Running AI agents in a self-hosted Habbo Hotel (via MCP)

> This setup is outdated we are currently improving our services, check github for the latest setup README.md

I built a self-hosted Habbo setup where AI agents can interact with the hotel in real time: spawn users, chat, move between rooms, send alerts, and more.

The project is habbo-agent-platform, based on Arcturus + Nitro + an MCP server layer.

It started as a "Claude in Habbo" experiment, but the current version is broader: it works with any MCP-compatible client (Claude Code, Cursor, and others).

What this is

The stack has three parts:

  1. Hotel stack (Docker)

    • Arcturus emulator
    • MariaDB
    • Nitro web client
  2. MCP server (habbo-mcp)

    • Node.js/TypeScript
    • Talks to Arcturus over RCON
    • Reads/writes relevant data via MySQL
  3. Any MCP-compatible client

    • Calls tools exposed by habbo-mcp
    • Can trigger actions like account creation, messages, moderation, economy changes

Architecture

MCP Client (Claude Code / Cursor / etc)
        |
        v
habbo-mcp server  ---- MySQL (players, room/chat data)
        |
        v
RCON TCP
        |
        v
Arcturus emulator (Docker)
        |
        v
Nitro frontend (browser)
Enter fullscreen mode Exit fullscreen mode

What changed recently (important)

The repo is now much more production-friendly than the first version:

  • Multi-arch GHCR images (amd64 + arm64)
  • Faster publish workflow (Buildx cache in GitHub Actions)
  • Portainer-friendly compose with env-driven ports/subnet
  • Automatic DB bootstrap when core tables are missing
  • Automatic Nitro asset conversion on first run
  • HTTPS/WSS-ready Nitro URL generation via env vars
  • Optional SSH auto-tunnel in MCP for remote hotel management
  • README restructured for starter onboarding (Docker/Portainer-first)

Quick start (recommended path)

git clone https://github.com/tndejong/habbo-agent-platform.git
cd habbo-agent-platform
Enter fullscreen mode Exit fullscreen mode

Create .env.registry:

HABBO_OWNER_OR_ORG=tndejong
HABBO_PUBLIC_HOST=127.0.0.1
HABBO_PUBLIC_PROTOCOL=http
HABBO_NITRO_PORT=1080
HABBO_GAME_PORT=3000
HABBO_RCON_PORT=3001
HABBO_DB_PORT=13306
Enter fullscreen mode Exit fullscreen mode

Start:

docker compose --env-file .env.registry -f docker-compose.registry.yaml up -d
Enter fullscreen mode Exit fullscreen mode

Then open:

http://127.0.0.1:1080?sso=123

First run can take a while: Java build + Nitro conversion + initial setup.

MCP client config (minimal env)

Use these values in your MCP client:

MCP_API_KEY=<your-key>
RCON_HOST=127.0.0.1
RCON_PORT=3001
DB_HOST=127.0.0.1
DB_PORT=13306
DB_NAME=arcturus
DB_USER=arcturus_user
DB_PASSWORD=arcturus_pw
HABBO_BASE_URL=http://127.0.0.1:1080
Enter fullscreen mode Exit fullscreen mode

Remote server management via SSH tunnel

If your hotel runs on a VPS and DB/RCON are local-only there, MCP can auto-open an SSH tunnel.

Example:

SSH_TUNNEL_ENABLED=true
SSH_TUNNEL_HOST=<server-ip>
SSH_TUNNEL_PORT=22
SSH_TUNNEL_USER=<ssh-user>
SSH_TUNNEL_KEY_PATH=/path/to/private_key
SSH_TUNNEL_LOCAL_RCON_PORT=43001
SSH_TUNNEL_REMOTE_RCON_PORT=13001
SSH_TUNNEL_LOCAL_DB_PORT=43306
SSH_TUNNEL_REMOTE_DB_PORT=13306
Enter fullscreen mode Exit fullscreen mode

And then point MCP runtime to local forwarded ports:

RCON_HOST=127.0.0.1
RCON_PORT=43001
DB_HOST=127.0.0.1
DB_PORT=43306
Enter fullscreen mode Exit fullscreen mode

Example in-hotel bot action

I can now do things like:

  • deploy an NPC bot into the active room at (5,5)
  • make it say:
    • "Welcome to Habbo agent platform what can i do for u today?"

That all goes through MCP tools (deploy_bot, talk_bot) against the running emulator.

Production notes

  • sso=123 is fine for local tests, not for real user auth.
  • Keep DB/RCON private (localhost/internal network only).
  • Prefer proxying Nitro through Nginx Proxy Manager on 80/443.
  • Use VPN/IP allowlists if the hotel is internal-only.
  • Keep secrets out of committed files.

Visual

Habbo Agent Platform Bot Welcome

Links

Top comments (0)