Golemreach
What this MCP does
Provides tools to play a persistent MMORPG, including movement, combat, spells, inventory, trading, NPC interaction, expeditions, and character administration.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'loot': {'type': 'boolean', 'description': 'Pick up what the corpse holds afterwards. Default true.'}, 'stance': {'enum': ['offensive', 'balanced', 'defensive'], 'type': 'string', 'description': 'offensive = full damage, half defence. balanced = three quarters of each. defensive = half damage, full defence, which is how a knight survives a pack. Default offensive.'}, 'monster': {'type': 'string', 'description': 'Hunt the nearest creature of this kind instead, by id or name, e.g. "rat" or "cave rat".'}, 'targetId': {'type': 'string', 'description': 'The exact creature id to attack, from the CREATURES list, e.g. "m245".'}, 'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}, 'keepDistance': {'type': 'number', 'description': "Tiles to hold between you and the target while chasing. Default 0, which is melee: close and stay adjacent. Set it to your weapon's reach (4-6 for a bow, 3-5 for attack magic) and the server backs away whenever the monster gets closer than that. Capped at 6. Knights should leave it at 0."}, 'fleeBelowHealthPercent': {'type': 'number', 'description': 'Break off the fight below this percentage of health. Default 25. Dying costs 10% of your experience.'}, 'healBelowHealthPercent': {'type': 'number', 'description': 'Try to heal when health falls below this percentage. Default 55.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['spell'], 'properties': {'x': {'type': 'number', 'description': 'Target tile x, for spells that land on a position.'}, 'y': {'type': 'number', 'description': 'Target tile y.'}, 'z': {'type': 'number', 'description': 'Target tile floor. Defaults to yours.'}, 'spell': {'type': 'string', 'description': 'Spell id or incantation, e.g. "heal_light" or "exura".'}, 'targetId': {'type': 'string', 'description': 'Creature to aim at, for spells that target a creature.'}, 'direction': {'type': 'string', 'description': 'Where a wave or beam goes, from your tile: "north", "south", "east", "west" (or n/s/e/w, ne/nw/se/sw, up/down).'}, 'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'fresh': {'type': 'boolean', 'description': 'Ignore any remembered account and register a brand new one.'}, 'token': {'type': 'string', 'description': 'An existing account token, if you already have one.'}, 'vocation': {'enum': ['knight', 'paladin', 'sorcerer', 'druid'], 'type': 'string', 'description': 'Class for a NEW character; ignored when resuming. knight = most health and melee damage, no real magic, the easy start. paladin = ranged, self-sufficient. sorcerer = huge damage, dies instantly. druid = healing and ice. Default knight, which is the forgiving choice for a first character.'}, 'agentName': {'type': 'string', 'description': 'Label for your account and for spectators watching the world.'}, 'serverUrl': {'type': 'string', 'description': 'Base URL of the game server, e.g. "http://localhost:7171". Defaults to GOLEMREACH_URL or http://localhost:7171.'}, 'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}, 'characterId': {'type': 'string', 'description': 'An existing character id on that account, e.g. "ch4".'}, 'characterName': {'type': 'string', 'description': 'Name for a new character. Must be unique server-wide. Omit to get a generated one, or to resume an existing character.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'title': {'type': 'string'}, 'reward': {'enum': ['supplies', 'gold'], 'type': 'string'}, 'operation': {'enum': ['board', 'accept', 'survey', 'challenge', 'claim', 'abandon', 'title'], 'type': 'string', 'default': 'board'}, 'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}, 'expeditionId': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'x': {'type': 'number', 'description': 'Tile x to examine, used with y and z instead of target.'}, 'y': {'type': 'number', 'description': 'Tile y to examine.'}, 'z': {'type': 'number', 'description': 'Floor to examine. 0 is ground level, negative is underground.'}, 'detail': {'enum': ['minimal', 'brief', 'normal', 'full'], 'type': 'string', 'description': 'How much detail to return. "normal" (default) is the map, creatures, ground items, events and cooldowns in roughly 400 tokens. "minimal" is one status line for tight combat loops. "full" adds inventory and every event.'}, 'target': {'type': 'string', 'description': 'A creature id from your CREATURES list, e.g. "m245". Omit to look at everything around you.'}, 'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'x': {'type': 'number', 'description': 'Destination x. Give x, y and z together to travel.'}, 'y': {'type': 'number', 'description': 'Destination y.'}, 'z': {'type': 'number', 'description': 'Destination floor. 0 is ground level, -1 is the first cellar. Defaults to your current floor.'}, 'unstuck': {'type': 'boolean', 'description': 'Boxed in on every side inside a protection zone? true asks the server to free you (see the description). Ignores x, y, z and direction.'}, 'direction': {'enum': ['n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw'], 'type': 'string', 'description': 'Take a single step this way instead of travelling. A diagonal costs THREE cardinal steps, not one and not two, so cutting a corner is slower than going round it.'}, 'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}, 'stopDistance': {'type': 'number', 'description': 'Stop this many tiles short of the destination. Use 1 to stand next to something rather than on it. Default 0.'}, 'avoidCreatures': {'type': 'boolean', 'description': 'Refuse to path through tiles a monster stands on. Default true; set false when monsters are blocking the only corridor.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['npcId', 'text'], 'properties': {'text': {'type': 'string', 'description': 'What you say. Plain English.'}, 'npcId': {'type': 'string', 'description': 'The NPC, either a live creature id like "n3" or a content id like "general_store".'}, 'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['npcId', 'operation', 'itemId'], 'properties': {'count': {'type': 'number', 'description': 'How many. Default 1.'}, 'npcId': {'type': 'string', 'description': 'The merchant, as a creature id like "n5" or a content id like "general_store".'}, 'itemId': {'type': 'string', 'description': 'Item id, e.g. "health_potion" or "rat_tail".'}, 'operation': {'enum': ['buy', 'sell'], 'type': 'string', 'description': 'Which way the goods go.'}, 'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'item': {'type': 'string', 'description': 'Item id such as "health_potion", or an equipment slot name when unequipping. Omit to loot everything nearby.'}, 'mode': {'enum': ['use', 'equip', 'unequip', 'loot', 'drop'], 'type': 'string', 'description': 'What to do. Defaults to "loot" when no item is given, "use" otherwise.'}, 'count': {'type': 'number', 'description': 'How many, for dropping part of a stack.'}, 'minValue': {'type': 'number', 'description': 'When looting, skip items worth less than this many gold, so you stop hauling worthless trophies.'}, 'targetId': {'type': 'string', 'description': 'Creature to use the item on, for items that are applied to something.'}, 'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'seconds': {'type': 'number', 'description': 'How long to wait, in real seconds. Default 3, maximum 60.'}, 'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}, 'untilHealthPercent': {'type': 'number', 'description': 'Instead of a fixed wait, rest until health and mana reach this percentage (or the time runs out).'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'level': {'type': 'number', 'description': 'Rank the hunting grounds for this character level instead of your own.'}, 'limit': {'type': 'number', 'description': 'How many hunting grounds to list. Default 5.'}, 'sessionId': {'type': 'string', 'pattern': '^gs_[A-Za-z0-9_-]{43}$', 'description': 'Pass the sessionId returned by golemreach_connect with EVERY tool call, including after reconnecting. Keep it private: it grants control of your character. If you have no sessionId yet, call golemreach_connect once.'}}}
Recent tool changes
Similar MCP servers
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
apex-x1
Provides X1 and Arc token screening, liquidity and exit-risk checks, wallet and bridge data, non-custodial token operations, comm…
spriteship
Generates and manages 2D game characters, assets, animations, tilesets, UI packs, maps, and engine-ready exports for multiple gam…
Moddable Games Tools
Provides chess analysis and puzzles, board and hex-map generation, dice and probability utilities, card decks, scoring, and other…
NOT FOR HUMANS
Provides NFT ownership and marketplace status, wallet-based agent identity and claims, public agent learning records, and multipl…
argo-mcp
Manages tabletop RPG campaigns, sessions, guilds, player relationships, forums and structured campaign lore.
Clash Royale
Provides Clash Royale player, clan, war, card, ranking, and location data, along with broader structured research and data-routin…
Steam
Provides Steam data for apps, games, profiles, friends, ownership, achievements, player statistics, news, concurrent players, and…