DEV Community

Tijmen de Jong 💻🚀
Tijmen de Jong 💻🚀

Posted on

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

Running Claude AI Agents Inside a Habbo Hotel — via MCP

I built something a bit weird and a lot of fun: a local Habbo Hotel emulator where Claude AI agents can walk around, talk to players, hand out credits, moderate rooms, and manage accounts — all through an MCP server.

Here's how it works and how you can run it yourself.


What is this exactly?

Habbo Hotel is a browser-based virtual world from the early 2000s. There are open-source emulators (I'm using Arcturus Morningstar) that let you run your own private hotel locally.

The twist: I connected Claude to it using the Model Context Protocol (MCP) — Anthropic's standard for giving AI agents tools to interact with external systems. Instead of connecting Claude to a database or an API, I connected it to a virtual hotel.

Claude can now:

  • Create player accounts and generate login URLs
  • Talk, shout or whisper as any online player
  • Give credits, duckets, diamonds, and badges
  • Teleport players between rooms
  • Kick and mute players
  • Read room chat logs
  • Broadcast hotel-wide alerts
  • Set player ranks

All triggered naturally in conversation, using Claude Code hooks.


The architecture

Claude (Claude Code + MCP client)
        │
        ▼
  habbo-mcp server  ──── MySQL (player data, chat logs)
        │
        ▼
  RCON TCP socket
        │
        ▼
  Arcturus emulator  (Docker)
        │
        ▼
  Nitro frontend  (browser client)
Enter fullscreen mode Exit fullscreen mode

Three pieces:

1. The emulator stack (Docker)
Arcturus + MariaDB + Nitro React frontend, all in Docker Compose. One command starts a fully functional private Habbo hotel accessible in your browser.

2. The MCP server (Node.js / TypeScript)
A small MCP server that exposes hotel actions as tools. It talks to Arcturus over RCON (a raw TCP protocol Arcturus uses for server-to-server commands) and directly queries MySQL for read operations.

3. Claude Code with hooks
Claude Code connects to the MCP server and can use all 16 tools. With hooks you can trigger Claude automatically on events — for example, have it greet every new player that logs in, or moderate chat in real time.


Running it locally * Comming soon!

Clone the repo and run the setup script:

git clone ***/habbo-agent-emulator
cd habbo-agent-emulator
./setup.sh
Enter fullscreen mode Exit fullscreen mode

That one command:

  • Checks you have Docker, Node.js 18+, and npm installed
  • Generates a random MCP API key
  • Writes habbo-mcp/.env with all connection details
  • Patches rcon.allowed in the emulator config automatically
  • Runs npm install
  • Prints the exact JSON block to paste into ~/.claude/settings.json

Then start the hotel:

cd emulator && just start-all
Enter fullscreen mode Exit fullscreen mode

First run takes a few minutes to build. After that, open http://localhost:1080/?sso=123 in your browser, restart Claude Code, run /mcp and you should see habbo listed with all tools ready.

No manual config editing, no hunting for the right IP — the script handles the annoying parts.

What's next

The repo is going public on GitHub soon. A few things I want to explore:

  • Autonomous NPCs — persistent Claude agents that live in the hotel, have a personality, and respond to players naturally
  • Event-driven hooks — trigger Claude on chat messages, room joins, or trades
  • Multi-agent setups — multiple Claude instances playing different roles (host, guide, moderator)

MCP makes all of this surprisingly straightforward. The protocol is simple, the tool definitions are just JSON schema, and Claude is genuinely good at deciding when and how to use them.


If you're into retro web games, AI agents, or just want to see Claude tell someone to "go touch some pixels" in a virtual hotel lobby — stay tuned.

GitHub link coming soon.

Top comments (0)