Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TMW_PORTNoOverride port only. Default `6901`.6901
TMW_WORLDNoWorld name (blank for default).
TMW_SERVERNoLogin server. Accepts `host` or `host:port`. Default `server.themanaworld.org:6901`.server.themanaworld.org:6901
TMW_PASSWORDNoAccount password
TMW_USERNAMENoAccount name
TMW_CHAR_NAMENoCharacter name. If omitted, the account's first character is used.
TMW_CLIENT_DATANoSkip the update-host download and read game data from this directory instead. Dev-only convenience.
TMW_DASHBOARD_PORTNoBind the browser dashboard on 127.0.0.1:PORT. Off by default.
TMW_CREDENTIALS_FILENoAbsolute path to a `credentials.json`. Useful when your MCP host runs `tmw-mcp` from a cwd that doesn't contain one.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{
  "claude/channel": {}
}

Tools

Functions exposed to the LLM to take actions

NameDescription
stateA

Get current game state: character info, position, HP/SP, nearby beings, floor items.

inventoryB

List inventory items.

onlineA

Get list of all players currently online.

sayC

Send a public chat message in-game.

whisperC

Send a private message to a player.

party_chatB

Send a message to party members.

party_leaveB

Leave the current party.

walkB

Walk to coordinates (x, y) using A* pathfinding. Sends a channel notification on arrival or failure.

faceB

Change facing direction (0=south, 2=west, 4=north, 6=east).

sitC

Sit down.

standC

Stand up.

attackB

Attack a being by ID (starts continuous attack).

stop_attackA

Stop auto-attack and hunting.

huntA

Continuously hunt monster(s) by name. Comma-separated for multiple types. Pass empty string to stop.

respawnB

Respawn after death.

party_replyC

Accept or reject a party invitation.

attack_rangeA

Override weapon attack range (normally auto-detected from server). 1=melee, 2=scythe/polearm.

ferry_exitA

Auto-exit the ferry after N bell rings. E.g. bells=1 exits at next stop, bells=2 skips one stop then exits.

pickupC

Pick up a floor item by ID.

shop_buyB

Open a shop NPC's buy list. Use after clicking a shop NPC (0x00c4 event). The buy list will appear in game state.

shop_sellB

Open a shop NPC's sell list. Use after clicking a shop NPC (0x00c4 event).

buyC

Buy items from shop. Must open buy list first with tmw_shop_buy.

sellB

Sell items to shop. Must open sell list first with tmw_shop_sell.

equipC

Equip an item by inventory index.

useC

Use an item by inventory index.

dropC

Drop an item on the ground. Amount 0 = drop entire stack.

npcC

Click on an NPC to start dialog.

npc_nextA

Continue NPC dialog (click Next).

npc_closeA

Close NPC dialog. If npc_id is 0 (default), closes the NPC tracked by the client; pass an explicit id to close a specific NPC when the client state is stale (e.g., after clicking a storage NPC that never sent a dialog packet).

close_storageA

Send CMSG_CLOSE_STORAGE (0x00f7) to the server. Required after clicking a storage NPC; without it, the server leaves sd->state.storage_open set and silently drops walks and item-use packets.

npc_chooseC

Choose an NPC menu option (1-based index).

npc_input_strC

Submit text input to an NPC dialog.

npc_input_intC

Submit integer input to an NPC dialog.

trade_requestC

Request a player-to-player trade with the given player name.

trade_acceptB

Accept an incoming trade request.

trade_rejectB

Reject an incoming trade request.

trade_add_itemC

Add an inventory item to the trade offer (amount=0 means entire stack).

trade_add_zenyC

Add zeny (GP) to the trade offer.

trade_lockB

Lock your side of the trade (indicate readiness to commit).

trade_commitA

Commit the trade after both sides have locked.

trade_cancelB

Cancel the current trade.

followB

Follow a player by name or ID. Pass empty string to stop.

emoteC

Send an emote.

statB

Increase a stat: str, agi, vit, int, dex, or luk.

mapB

Show ASCII minimap around current position.

restartA

Hard-restart the TMW bot daemon. Sends a clean quit to the map server so re-login succeeds immediately. Useful when the bot is wedged or after a code change.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 46 tools

Disambiguation4/5

Most tools target clearly distinct game actions, with descriptions that clarify sequencing and context. Some potential confusion exists between pairs like npc_close/close_storage, shop_buy/buy, and attack/hunt, but these are mitigated by explicit instructions in the descriptions.

Naming Consistency3/5

All tools use snake_case, but the naming pattern is mixed: many are single verbs (walk, attack), several are nouns (state, inventory), and others are verb_noun (trade_commit, npc_next). This inconsistency reduces predictability, though names remain readable.

Tool Count2/5

46 tools is well above the typical 3-15 range and exceeds the 25+ threshold for 'too many'. While the domain is complex, many tools could be consolidated or grouped (e.g., trade operations, NPC dialog steps) to reduce surface area.

Completeness4/5

The surface covers core gameplay: state, movement, combat, chat, party, trade, shop, inventory, NPC dialog, and stats. Minor gaps include no party_invite tool and no explicit skill/ability management, but the core lifecycle is well covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues