Escape Room MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Escape Room MCPPlay the escape room."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Escape Room MCP
An MCP server that turns any LLM into an escape room player.
The model wakes up inside The Clockmaker's Study. It can only perceive and change the room through MCP tools, while the server owns the authoritative game state, puzzle progression, inventory, timer, and score.
Demo
The visual is adapted from deterministic responses from the server. A Claude Desktop recording can be dropped into
assets/demo.gif and linked here without changing the game.
Related MCP server: mcp-llm
Why this exists
Demonstrate an agent discovering information, chaining tools, making mistakes, and recovering.
Provide a compact benchmark based on tool calls, elapsed time, hints, and final score.
Show why authoritative state belongs in the environment rather than in a model's conversational memory.
Offer a complete stateful MCP example without APIs, credentials, databases, or deployment infrastructure.
How it plays
The room contains a locked door, a silent grandfather clock, a bookshelf, a portrait, a desk, a bricked-up window, and a suspiciously ordinary rug. The player explores, inspects details, manipulates discovered items, and tries to open the door.
The server instructions and tool descriptions contain no solution. A capable model can discover the intended puzzle chain using only the returned narrative, and an observant model may find a legitimate shortcut.
Setup
Requirements
Python 3.11 or newer
An MCP host such as Claude Desktop, Claude Code, or MCP Inspector
Install the locked environment from the project directory:
uv sync --frozenClaude Desktop
Open claude_desktop_config.json:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Add the server, replacing the directory with an absolute path:
{
"mcpServers": {
"escape-room": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/escape-room-mcp",
"run",
"escape-room-mcp"
]
}
}
}On Windows, use either forward slashes or escaped backslashes in the JSON path. If Claude Desktop does not
inherit your shell's PATH, set command to the absolute path returned by where.exe uv.
Quit and restart Claude Desktop after changing the configuration. Then ask it:
Play the escape room. Do not ask me for help unless you run out of hints.
MCP Inspector
Launch the server directly in the Inspector UI:
npx -y @modelcontextprotocol/inspector uv --directory /absolute/path/to/escape-room-mcp run escape-room-mcpThe server uses stdio, so running uv run escape-room-mcp by itself correctly waits for an MCP client and
does not print ordinary application output to stdout.
Tools
Tool | Purpose |
| Create an isolated session and enter the room |
| Survey currently visible room features |
| Examine one object in detail |
| Try to take or pull a discovered item |
| Review currently held items |
| Use an inventory item on a room object |
| Try a four-digit string on the door keypad |
| Request one of at most three state-aware hints |
| Check time, calls, hints, and current score |
| Reset one session without creating a new ID |
Object and item names accept deterministic aliases such as clock for grandfather clock. Failed in-world
actions return narrative results instead of protocol failures, allowing the model to reason and recover.
Scoring
Each game starts at 1,000 points.
Event | Score effect |
Action call ( | -10 |
Hint delivered | -100 |
Each whole minute below 15 at escape | +5, up to +75 |
Failed action attempts still cost 10 points. look_around, status, and hint do not carry the action penalty,
but every valid tool invocation counts toward the final tool-call total.
Tool calls | Title |
10 or fewer | Master Escapist |
11 to 20 | Clever Detective |
More than 20 | Persistent Survivor |
Benchmark
Run each model in a fresh conversation with no room spoilers. Give every model the same prompt, permit autonomous tool use, and copy the metrics from the victory response. Record the exact model version and client because tool selection behavior can differ between hosts.
Model | Client | Tool calls | Time | Hints | Score |
Claude | Claude Desktop | TBD | TBD | TBD | TBD |
GPT | MCP-capable client | TBD | TBD | TBD | TBD |
Gemini | MCP-capable client | TBD | TBD | TBD | TBD |
Suggested benchmark prompt:
You are the player. Escape the room autonomously using only the available tools. Report the final result.
Architecture
MCP host
| stdio / MCP
v
FastMCP tool adapter
|
v
GameManager
+-- session A: stage, inventory, metrics, timer
+-- session B: stage, inventory, metrics, timer
+-- session C: stage, inventory, metrics, timerThe model does not own puzzle state. After start_game, every subsequent call includes an opaque session_id, and
GameManager resolves that ID to an in-memory session under a lock. This prevents conversational omissions,
retries, or hallucinated inventory from changing reality. It also allows multiple isolated games in one server
process.
The tradeoff is intentional: sessions disappear when the local server process exits. There is no persistence, expiry policy, analytics service, network transport, or embedded LLM in v1.
Development
uv sync --all-groups
uv run ruff format --check .
uv run ruff check .
uv run pytest --cov=escape_room_mcp --cov-report=term-missing --cov-fail-under=95
uv buildThe tests cover the intended chain, direct shortcut, error recovery, aliases, scoring boundaries, hint states,
session isolation, protocol schemas, in-memory MCP calls, and a packaged stdio subprocess.
License
Available Tools
10 toolsenter_codeEnter Door CodeC
Enter a candidate four-digit code on the locked door's keypad.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Code to try on the door keypad, supplied as a string so leading zeroes are preserved. | |
| session_id | Yes | Session ID returned by start_game. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false), description does not add any behavioral details like feedback on wrong code, rate limits, or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, but could include more context without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and simple parameters, description is mostly complete but misses context about game state or constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already fully describes both parameters; description does not add extra semantics beyond restating the code format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Enter' and specific resource 'candidate four-digit code on the locked door's keypad' distinguishes from siblings like status or look_around. Not perfectly differentiated but adequate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus others, no prerequisites or conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hintRequest HintA
Request a state-aware hint; at most three hints are available per game.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID returned by start_game. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: state-awareness and three-per-game limit. Annotations already indicate non-idempotent, non-read-only; description adds useful constraints without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence with no filler; all words carry meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers purpose and constraint adequately. Could mention expected return type slightly, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (session_id) with 100% schema description coverage. Description adds no extra parameter info beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Request' and resource 'state-aware hint' with a specific constraint (max three), distinguishing it from sibling tools like look_around or use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use hint versus other tools; 'state-aware' implies but does not specify conditions. No alternatives or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspectInspect Room ObjectA
Examine one visible room object in greater detail.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Name or reasonable synonym for a visible room object. | |
| session_id | Yes | Session ID returned by start_game. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations set readOnlyHint to false, implying potential side effects, but the description portrays the tool as a simple examination without clarifying any behavioral traits. It fails to explain what happens during inspection (e.g., state changes, action consumption) or address the contradiction with readOnlyHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, directly stating the tool's purpose. It is appropriately front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple inspection tool, the description is minimal but functional. However, with no output schema, it provides no information about what 'greater detail' means (e.g., format, content) leaving the agent to guess. Some additional context on return value would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The tool description adds no additional meaning beyond the schema; it does not clarify acceptable synonyms for 'target' or session ID handling. Baseline 3 is appropriate due to full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Examine one visible room object in greater detail' clearly identifies the action (examine), the resource (visible room object), and distinguishes from sibling tools like look_around which likely provide a broader view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly suggests usage when a player wants more detail on a specific object, but it does not explicitly state when to use this versus sibling tools (e.g., look_around) nor provide exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inventoryCheck InventoryA
Review the items you are currently carrying.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID returned by start_game. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With all annotations false, the description implies a safe read operation ('review'). It does not disclose side effects, but for an inventory check, no further disclosure is necessary. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded verb, no wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple inventory tool with one parameter and no output schema, the description is complete enough. Could optionally hint at output format, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (session_id described). The description adds no extra parameter meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'review' with the resource 'items you are currently carrying,' clearly specifying the action and object. It distinguishes itself from siblings like 'look_around' (environment) and 'inspect' (specific item).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are given, but the purpose is self-contained; the agent can infer usage from context. Lacks explicit guidance on when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
look_aroundLook AroundB
Survey the room and its currently visible features.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID returned by start_game. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety hints. The description does not disclose if the tool is read-only, changes state, or has any side effects. For a simple survey, this might be acceptable but still lacks transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy. Front-loaded with the action verb 'Survey'. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description adequately conveys purpose. However, missing behavioral details slightly reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with 'session_id' described as 'Session ID returned by start_game'. The description adds no additional parameter context, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool surveys the room and its visible features. It distinguishes from sibling 'inspect' which likely targets specific objects, but this differentiation is implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'inspect' or 'status'. No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pick_upPick Up ItemA
Try to take or pull an item you have discovered in the room.
| Name | Required | Description | Default |
|---|---|---|---|
| item | Yes | Name or reasonable synonym for an item in the room or inventory. | |
| session_id | Yes | Session ID returned by start_game. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so description carries burden. It says 'try' indicating possible failure but does not detail what happens on success/failure or any 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, clear sentence. Front-loaded with action and necessary context. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with full schema parameter descriptions, the description completes the picture. Lacks edge-case handling but adequate for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds that the item must be 'discovered in the room', refining the parameter meaning beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'take or pull an item you have discovered in the room.' It specifies the resource (item) and distinguishes from sibling tools like inspect or use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when a discovered item is present in the room. Does not explicitly list when not to use or provide alternatives, but context suggests it's for obtaining items.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restartRestart Escape RoomADestructive
Discard progress and restart this session from the beginning.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID returned by start_game. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, and the description adds 'Discard progress', reinforcing the destructive nature. It provides useful context about losing progress, going beyond the annotation flag alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence that is front-loaded with the key action 'Discard'. Every word earns its place, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, no output schema, annotations cover behaviors), the description is complete enough. The context of sibling tools provides further clarity on when restart is used.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add additional meaning for the session_id parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it discards progress and restarts the session. Verb 'restart' and resource 'session' are explicit, and it distinguishes from siblings like start_game (creates new session) and status (checks state).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use when you want to reset the current session. However, there is no explicit guidance on when not to use it or clear alternatives. The sibling tools suggest context, but the description does not provide direct usage recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_gameStart Escape RoomA
Start a fresh escape-room session and receive its session ID and introduction.
| Name | Required | Description | Default |
|---|---|---|---|
| player_name | No | Name to use for the player in this session. | Agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false (no hints), so description carries burden. It states the tool creates a new session, which implies mutation, but does not disclose side effects (e.g., if starting a new session ends an existing one). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the main action and output. No unnecessary words; every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description adequately covers the return value (session ID and introduction). No gaps given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'player_name' with a clear description. The tool description adds no additional parameter information beyond the schema, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool starts a fresh escape-room session and returns a session ID and introduction. It uses a specific verb ('Start') and resource ('escape-room session'), and distinguishes from siblings like 'restart' and other game interaction tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when beginning a new session, but does not explicitly state when not to use it or compare to alternatives like 'restart' (which resumes or restarts an existing session). No guidance on prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusCheck Game StatusA
Check elapsed time, tool calls, hints used, and current score.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID returned by start_game. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false and provide no guidance. The description clarifies it is a read-only query of game state, though it does not explicitly state lack of side effects. It adds value beyond annotations by listing what is checked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with key details. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is simple with one parameter, the description sufficiently covers what the tool does and what it returns (elapsed time, tool calls, hints, score). No output schema is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add extra information about the session_id parameter beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks elapsed time, tool calls, hints used, and current score. This is a specific verb + resource, and it distinguishes from sibling tools like look_around or inventory which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking game progress, but does not explicitly provide 'when to use' vs alternatives or any exclusion criteria. Since the purpose is straightforward, it still gives clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
useUse ItemB
Use an item from your inventory on a room object.
| Name | Required | Description | Default |
|---|---|---|---|
| item | Yes | Name or reasonable synonym for an item in the room or inventory. | |
| target | Yes | Name or reasonable synonym for a visible room object. | |
| session_id | Yes | Session ID returned by start_game. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, but the description adds no behavioral context beyond that. It does not disclose potential side effects like item consumption, state changes, or failure conditions, relying entirely on annotations which are incomplete for a game action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, straightforward sentence with no extraneous information. Every word is necessary and earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a potentially complex action (using an inventory item on a room object), the description lacks crucial details such as prerequisites (item in inventory, target visible), outcomes (success/failure), and side effects (item consumption). With no output schema, more explanation is needed for an AI agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all three parameters (session_id, item, target). The description adds no additional semantic value; baseline score of 3 applies since the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'use', the resource 'item from your inventory', and the target 'room object'. It effectively distinguishes from sibling tools like 'pick_up' (taking items) and 'inspect' (examining objects).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs. alternatives. The description implies usage when combining an item with a room object, but does not mention prerequisites, exclusions, or alternative tools for scenarios like examining ('inspect') or moving items ('pick_up').
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.
10 tool updates
v0.1.0- First observed
enter_code - First observed
hint - First observed
inspect - First observed
inventory - First observed
look_around - First observed
pick_up - First observed
restart - First observed
start_game - First observed
status - First observed
use
TDQS
Scored across 10 tools
Each tool has a unique and well-defined purpose, from starting the game to interacting with objects and requesting hints, with no overlap between them.
Most tools follow a verb_noun pattern (e.g., start_game, enter_code), but a few like inventory, status, and hint are nouns, creating slight inconsistency while remaining understandable.
With 10 tools, the set is well-scoped for an escape room game, covering essential actions without being too many or too few.
The tool surface covers all major escape room interactions: starting, exploring, collecting, using items, entering codes, getting hints, and checking status, with no obvious gaps.
Maintenance
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for AI dialogue using various LLM models via AceDataCloud
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- MIT
- MIT
- FlicenseBqualityDmaintenanceAn MCP server that allows users to play the 'Turtle Soup' puzzle game with LLMs acting as game hosts, providing tools to access game rules, puzzles, and comprehensive puzzle information.312-

Globalpingofficial
FlicenseNot gradedqualityBmaintenanceRemote MCP server that gives LLMs access to run network commands63-