Skip to main content
Glama

zork mcp

A text adventure interpreter as an MCP server. The AI is the player, it explores, solves puzzles, fights trolls, and collects treasure, turn by turn, through tool calls.

Games

  • colossal dungeon, a Zork style dungeon: a grue in the dark, a toll collecting troll, a locked grate, five treasures.

  • brainrot manor, a meme palace. Collect the aura artifacts. Become the main character.

Related MCP server: DMCP

Tools

  • list_games, available games

  • start_game(gameId), start/restart, returns your first room

  • act(command), look, go north, take the lantern, use lantern, attack troll with sword, inventory...

  • hint, a nudge for the current room

  • score, treasures, moves, win status

Run

npm install && npm run build && node dist/index.js

Example session

  1. start_game("colossal-dungeon")

  2. act("take the lantern")act("use lantern")

  3. act("go north"), a troll blocks you...

  4. act("attack troll with sword")

  5. ...find all 4 treasures to win

Add a game

Games are pure data, see src/games.ts. Rooms, items with use-effects, hints, and treasures are all declarative; no engine changes needed.

Available Tools

5 tools
actA

Send a command to the current game: move, look, take, use, examine... Returns the game's response.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesNatural-language command, e.g. 'go north', 'take the lantern', 'use lantern', 'look', 'inventory'

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits on its own. It states that it sends a command and returns the game's response, which implies a state-changing operation, but it does not explicitly mention side effects, prerequisites (e.g., must have an active game), or failure behavior. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant information. Every word contributes to understanding the tool's purpose and output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description is mostly complete: it explains the action and the return value. It omits an explicit note about requiring an active game, but the phrase 'current game' and the existence of a 'start_game' sibling mitigate this gap. Slight incompleteness prevents a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides a detailed description of the single 'command' parameter with concrete examples (e.g., 'go north', 'take the lantern'). The tool description adds generic examples but no additional meaning beyond what the schema covers, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends a command to the current game, with a specific verb ('send') and resource ('command to the current game'). The examples (move, look, take, use, examine) distinguish it from sibling tools like list_games and start_game by focusing on in-game actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use: when the agent needs to perform an action in the game. It clearly indicates the context ('current game') but does not explicitly mention when not to use it or alternatives, though sibling names and the phrase 'current game' provide contextual guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hintA

Get a hint for the current room.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It only says 'Get a hint' without revealing whether this affects game state, has a cooldown, or is limited per room. This under-discloses potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is a single, front-loaded sentence that conveys the essential information without waste. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description is mostly sufficient: it states the action and scope. However, it does not describe what the hint looks like or any behavioral consequences, making it slightly incomplete for an agent that needs to anticipate outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no parameter semantics to explain. The description adds no parameter information, which is fine because there is nothing to describe. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (get) and resource (hint for the current room), making its purpose unmistakable. It is distinct from sibling tools like `act` or `score` which serve different game actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when the agent needs a hint in the current room, but does not explicitly state when to prefer it over alternatives or any prerequisites/restrictions. No alternative tools are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_gamesA

List the text-adventure games available to play.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral disclosure. It clearly states that the tool lists available games, which suggests a read-only operation, but it does not explicitly confirm that it has no side effects or describe the format of the returned list. This is adequate for a simple list tool but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no wasted words. It front-loads the verb and resource, making it immediately scannable and easy to understand.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and a simple list operation, the description is sufficient. It tells the agent what the tool does without requiring an output schema. A minor gap is the lack of detail about what fields are returned for each game, but the core purpose is fully covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema confirms this. The baseline for zero parameters is 4, and the description does not need to add parameter information. It adds no confusion and adequately supports the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'List' with a clear resource 'text-adventure games available to play,' which precisely identifies the tool's function. It is immediately distinct from siblings like start_game, act, hint, and score, which are action-oriented rather than listing games.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used to discover available games, but it does not explicitly state when to use it over alternatives or mention any prerequisites (e.g., 'use this before starting a game'). The use case is easy to infer, but the description does not provide explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scoreA

Show your current score, treasures collected, and move count.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The verb 'Show' implies a read-only operation, but the description does not explicitly state that it does not modify game state or any other behavioral constraints. It is adequate for a simple status tool but lacks explicit safety guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action ('Show') and lists the outputs. Every word earns its place, with no redundant or ambiguous phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has no parameters, and no output schema. The description fully explains what the user will receive (score, treasures, move count), making it complete for its purpose. No additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema is trivially described (100% coverage). The description does not need to explain parameter semantics, and the baseline for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Show') and three distinct outputs (score, treasures, move count). It implicitly distinguishes from sibling tools like start_game and act, which involve state changes, while score is a status query.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used to check current game state, but it does not explicitly state when to use it versus alternatives or mention any prerequisites. Usage is implied by the context of the game, but no explicit guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_gameB

Start (or restart) a text-adventure game. The AI is the player — explore with 'look', move with 'go north' etc., take items, and collect treasures to win.

ParametersJSON Schema
NameRequiredDescriptionDefault
gameIdNoGame id from list_games (default: colossal-dungeon)colossal-dungeon

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits, but it only says 'Start (or restart)', which hints at state reset but does not explain what the tool returns (e.g., initial room description) or that restarting discards existing progress. The gameplay instructions are about the AI's behavior, not the tool's side effects or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise but includes a lengthy gameplay directive ('explore with look, move with go north etc.') that is not directly about the tool's invocation. This extra instruction could belong in the 'act' tool description, making the tool's own description slightly over-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description covers the core purpose and gives some gameplay context. However, it does not explain what the tool returns (e.g., narrative text) or how it connects to sibling tools like 'act', leaving the overall workflow partially implied rather than explicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully documents the single 'gameId' parameter with a clear description and default value (100% schema coverage). The tool description adds no additional parameter semantics, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool starts or restarts a text-adventure game, using a specific verb ('Start') and resource ('text-adventure game'). This distinguishes it from sibling tools like 'act' (for in-game actions) and 'list_games' (for listing available games), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is the entry point for gameplay, as it instructs the AI to 'explore with look, move with go north, etc.' after starting. However, it does not explicitly contrast with sibling tools (e.g., 'use act for actions after starting') or state when not to use it, such as when a game is already running.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.0
    • First observedact
    • First observedhint
    • First observedlist_games
    • First observedscore
    • First observedstart_game

TDQS

A4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing games, starting a game, issuing commands, getting hints, and viewing score. No two tools overlap in functionality.

Naming Consistency5/5

All tool names are single verbs that directly describe their action: list, start, act, hint, score. This is a consistent and predictable pattern.

Tool Count5/5

Five tools is well-scoped for a text-adventure MCP server. Each tool serves a necessary function in the gameplay loop without redundancy.

Completeness4/5

The core game lifecycle is covered: discover, start, play, assist, and track progress. Minor features like saving/loading are missing but not essential for basic play.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A MCP server enabling LLMs to roll dice
    1
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that enables AI agents to act as dynamic dungeon masters for text-based RPGs with dynamically generated rule systems and comprehensive game state management.
    10 npm
    11
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A proof-of-concept MCP server that enables LLMs to read local text files and fetch real-time weather data through external tools.
    -
  • F
    license
    C
    quality
    C
    maintenance
    An MCP server that exposes Discord bot actions as tools for LLM clients.
    29
    1
    -