mcpField
D
DreamLand MUD

DreamLand MUD

Remote
dreamland.rocksGames & Entertainment8Updated 1d ago

About DreamLand MUD

DreamLand MUD is a read-only MCP server for DreamLand text MUD players and compatible clients, providing game help, item search, news, and online information. Its content is available in English, Russian, and Ukrainian and comes from the game site and public interfaces.

Key features

  1. 01Search and browse multilingual help articles
  2. 02Filter armor, weapons, magic items, and pets
  3. 03Check players and Discord bridge presence
  4. 04Search and retrieve archived news

Use cases

  1. 01Find game rules or a specific help topic
  2. 02Filter game items by level, slot, or stats
  3. 03Check current players and recent news

MCP support

The MCP server exposes help, item search, online status, and news tools over Streamable HTTP; the endpoint requires no authentication.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://dreamland.rocks/mcp/help
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

Details

From the project README

DreamLand help MCP server

Public, read-only MCP server over the DreamLand help corpus (the same articles as https://dreamland.rocks/help.html, in English, Russian and Ukrainian), the item searcher, the news archive and who is online. It serves only what the site and the Discord bot already show.

Endpoint: https://dreamland.rocks/mcp/help (Streamable HTTP, no auth).

claude mcp add --transport http dreamland-help https://dreamland.rocks/mcp/help

Claude Desktop / claude.ai: Settings -> Connectors -> Add custom connector, URL as above.

Tools

  • help_search(query, lang, limit): ids, titles, kinds and an excerpt. Same ranking as the site and the game client (static/site/js/helpsearch.js). A leading facet word narrows it: spell fire, race elf. A phrase that matches nothing as a whole falls back to its words.

  • help_get(id | keyword, lang): the article as Markdown with links to the site, plus See also. A keyword several articles share returns the list to pick from.

  • help_categories(lang), help_list(category, kind, lang): browse.

  • item_search(type, query, level_min, level_max, slot, weapon_class, magic_type, stats, align, include_limited, sort, lang, limit): armor, weapons, magic items or pets with stats, who may use them, zone and the mob or room they come from. Same data and filters as https://dreamland.rocks/searcher.html (shared static/site/js/itemsearch.js); no vnums, limited items marked.

  • who(name, lang): who is in the game (race, clan, title, remorts), who is on the Discord bridge, this week's peak and unique players. With a name: race, clan, clan rank, remorts. The engine's public /who servlet, the one the Discord bot calls; the list is cached for 30 seconds.

  • news_list(query, limit), news_get(id): the news archive, newest first, posts as written (mostly Ukrainian). A query keeps posts with every word in the subject or text.

lang is en, ru or ua (uk works too). Untranslated text falls back to Russian, like the game.

Data and freshness

Reads static/data/help-index.json and help-body-{ru,en,ua}.json, which site.js/build-help.js writes from the game's dump, and re-reads them when the index changes. The dump is rendered for a level-1 character, so nothing immortal-only or level-gated is served. A help edit reaches the server as: content deploy -> plug reload web (or the hourly dump) -> site data build (drone, or the 30-minute timer).

News come from static/data/news-all.json, which site.js/build-news.js writes from the game's note dump (webdump news).

who asks MUD_API (default http://127.0.0.1:1235, the engine's servlet port on the same box).

Items come from static/data/db_{armor,weapon,magic,pets}.json: searcher.cpp dumps them to /tmp at boot and every 4 hours, drone copies them here. Only items placed by zone resets, outside clan and hidden zones, are in them; noident items show no stats. Each file is re-read when it changes.

Usage counters

stats.js counts, per UTC day, each tool call and each connecting client program (clientInfo.name from initialize). No IPs, no arguments. File: MCP_STATS, default ~/mcp-help-stats.json (live: /home/dreamland/mcp-help-stats.json), flushed every minute and on exit, 120 days kept.

Running

npm install
PORT=8003 HELP_DATA=../static/data node server.js
HELP_DATA=/path/to/data npm test              # starts the server and calls every tool
node test.js --fresh                          # same, on live data fetched from dreamland.rocks/data
                                              # (who asks MUD_API, default https://dreamland.rocks/api in tests)
node test.js https://dreamland.rocks/mcp/help  # same checks against a running server

Live: dreamland-help-mcp.service (copy in this directory) on 127.0.0.1:8003, nginx location /mcp/help with a 5 r/s per-IP limit (nginx.conf here). Drone runs npm install on every deploy; the server exits when its own files change and systemd restarts it on the new code.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.