LorAI MCP
The LorAI MCP server lets an AI agent fully control and automate gameplay in Library of Ruina via game state monitoring, battle automation, UI navigation, static data queries, and debug tools.
Game State & Diagnostics
health_check— Verify the in-game mod HTTP bridge is onlineget_game_state— Retrieve the full current game state (navigation, progression, floors, inventory, battle info)get_state_layer— Fetch a specific layer of game state (e.g.battle,floors,navigation)get_battle_units— Get detailed HP, speed dice, hand cards, and emotion level for all battle unitsget_emotion_candidates— List available emotion card choices duringRoundEndPhaseget_stage_info— Get controller state for a specific stageget_action_status— Check status of async/deferred actions
Static Data Queries
get_static_data_list— List all available static game data files (cards, books, enemies, passives, etc.)get_game_data_item/get_game_data_items— Retrieve one or multiple items from a static collection by ID
UI Navigation
navigate— Navigate to a specific UI phase (e.g. Sephirah, Invitation, BattleSetting)start_game— Click Continue/New Game on the title screenskip_story— Skip the current story or event scene
Battle Automation
start_battle— Full flow: navigate to stage, auto-select books, prepare and start the battlebattle_loop— Auto-play an entire battle end-to-end (handles dice, card placement, emotion cards, phase stuck detection, story skips)play_round— Play a single battle round (stop dice → auto-play cards → confirm)select_emotion_card— Manually select an emotion card by indexclick_battle_result— Click the battle result button after a battle endsclose_battle_scene— Close the battle scene and return to the main UI
Low-Level / Debug
act— Execute any raw game action by namelist_methods/call_method— List or call public methods on game objects via reflectionkill_all_enemy— Instantly kill all enemy units (debug/cheat)
Click on "Install 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., "@LorAI MCPstart a battle in Urban Nightmare"
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.
LorAI MCP
让 AI 智能体玩《废墟图书馆》。
通过 MCP 协议将游戏状态、战斗操作、UI 导航全部暴露给 LLM——AI 读血量、看手牌、选情绪卡、出牌打怪,全自动。
AI Agent ←MCP→ Python Server ←HTTP→ C# Mod (in-game)安装
面向人类用户
复制以下提示并粘贴到你的 LLM 智能体(kimi-code、Claude Code、Cursor 等):
按照以下安装指南安装和配置 LorAI MCP,游戏安装路径是:<填你的游戏路径,例如 D:\steam\steamapps\common\Library Of Ruina> https://raw.githubusercontent.com/hongyue0721/lorAI-mcp/refs/heads/master/docs/guide/installation.md
安装完成后,用 health_check 工具验证 MCP 连通。
面向 LLM 智能体
获取安装指南并按照说明操作。第一步:向用户询问 Library of Ruina 的游戏安装路径。
curl -s https://raw.githubusercontent.com/hongyue0721/lorAI-mcp/refs/heads/master/docs/guide/installation.md拿到路径后,安装指南中的 <游戏路径> 占位符全部替换为用户提供的路径。
卸载
要移除 LorAI MCP:
按照 https://raw.githubusercontent.com/hongyue0721/lorAI-mcp/refs/heads/master/docs/guide/installation.md 中的「卸载」章节执行卸载步骤。
Related MCP server: Pokemon MCP Server
前置条件
依赖 | 说明 |
Steam | 安装 Library of Ruina (1.1.0.6a13) |
Python 3.10+ | MCP Server 运行环境 |
.NET Framework 4.7.2 | C# Mod 编译(需 Developer Pack 或 VS Build Tools) |
游戏内 Mod 加载器 |
它能做什么
读取游戏状态 — 关卡列表、角色血量、手牌、骰子、buff、敌人信息
自动战斗 — AI 决策出牌、推进回合、处理情绪卡选择
UI 导航 — 选楼层、进邀请、开战、结算、跳剧情
静态数据查询 — 卡牌、书籍、敌人、被动能力的完整数据
反射调试 — 列出/调用任意游戏方法,深度控制
项目结构
lorAI-mcp/
├── lor_mcp/ # Python MCP Server
│ ├── server.py # FastMCP 入口 + 基础 tools
│ ├── tools.py # Guided tools(战斗自动化)
│ ├── setup.py # MCP 一键注册脚本
│ ├── proxy_server.py # HTTP 代理回退
│ └── config.py # 环境变量配置
├── LorAIHost/ # C# Mod(HTTP bridge + 状态导出 + 战斗自动化)
│ ├── LorAIHostMod.cs # ModInitializer 入口
│ ├── HttpServer.cs # HTTP 服务(端口 17127)
│ ├── StateExporter.cs # 游戏状态导出
│ ├── ActionHandler.cs # Action 分发
│ ├── AdvancedActions.cs # 选书/情绪卡/phase 推进
│ ├── BattleActions.cs # 出牌/确认/结束战斗
│ └── ...
├── docs/guide/installation.md # 安装指南(给智能体读的)
└── pyproject.toml配置
环境变量 | 默认值 | 说明 |
|
| 游戏 bridge 地址 |
|
| Python 代理回退地址 |
|
| 工具集( |
| (Steam 默认路径) | 代理服务器的游戏数据目录 |
许可证
Available Tools
23 toolsactA
Execute a game action through the Mod HTTP bridge.
Available actions: navigate - navigate UI phase (params: phase=) selectSephirah - select a sephirah floor (params: sephirah=) getFloor - get floor data (params: sephirah=) startStage - set stage on invitation panel (params: stageId=) runStage - run a stage end-to-end (params: stageId=) startBattle - start the battle from BattleSetting panel startGame - click Continue/New Game on title screen prepareBattle - auto-select books and prepare battle (params: stageId=) autoPlay - game's built-in auto card placement confirmCards - confirm card placement (ApplyLibrarianCardPhase only) playBattleRound - atomic autoPlay + confirmCards endBattle - force-end current battle closeBattleScene - close the battle scene clickBattleResult - click battle result button gameOver - trigger game over killAllEnemy - kill all enemy units (debug) getStageInfo - get stage controller info (params: stageId=) getBattleUnits - export all battle unit data getEmotionCandidates - get emotion card candidates selectEmotionCard - select emotion card by index (params: index=) forceAdvancePhase - force-advance a stuck phase (params: phase=) skipStory - skip current story endStory - end current story advanceStory - advance current story listMethods - list methods on a type (params: type=) callMethod - call method via reflection (params: type=, method=) getGameState - diagnostic singleton dump
When LOR_MCP_TOOL_PROFILE == 'guided', prefer the specific tools from tools.py. params: comma-separated key=value pairs, e.g. "stageId=3,sephirah=Malkuth" Commas inside [...] or {...} are preserved (not split on).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description bears full burden. It explains actions and parameter format but does not disclose side effects, authorization needs, or rate limits. The list of actions provides reasonable 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?
The description is long due to the extensive action list, but it is structured well with a clear purpose statement and bullet list. However, some redundancy (e.g., repeated parameter formats) could be trimmed.
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 complexity of a generic action executor with multiple sub-actions, the description is quite complete: it lists actions, their parameters, and param format. An output schema exists, so return values are covered externally.
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 description coverage is 0%, but the description compensates by listing all actions and their expected parameters, along with format examples for the 'params' string, adding significant meaning beyond the 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?
The description clearly states 'Execute a game action through the Mod HTTP bridge' and lists many specific actions, distinguishing it from sibling tools by noting it is a generic low-level tool with preference for specific tools in guided mode.
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?
Guidance is provided by stating that when LOR_MCP_TOOL_PROFILE is 'guided', specific tools should be preferred. This implies act is a fallback, but it does not explicitly state when not to use act.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
battle_loopA
Auto-play through an entire battle until it ends.
Handles: round-start dice, auto card placement, emotion card selection, phase stuck detection, and story skips (including BattleStoryPhase in suppression battles).
Emotion card strategy: calls get_emotion_candidates, picks the Positive card with highest emotionLevel. For smarter selection, the LLM can interrupt and call select_emotion_card manually.
Returns {"result": "victory"|"timeout"|"not_in_battle", "rounds": N}.
| Name | Required | Description | Default |
|---|---|---|---|
| max_rounds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses handling of multiple phases, stuck detection, and story skips. However, it lacks details on prerequisites (e.g., must be in a battle) or side effects like resource consumption.
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 relatively concise, with a clear front-loaded purpose and bullet-pointed details. Each sentence adds value. It could be slightly more structured, but it avoids verbosity.
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 complexity of auto-battle, the description covers key aspects like emotion card strategy, phase handling, and return values. It could mention limitations (e.g., battle types not supported) but is otherwise comprehensive.
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?
The only parameter 'max_rounds' (default 60) has 0% schema description coverage, and the description does not explain its purpose or impact. The parameter is self-explanatory but the description should add meaning, especially given the lack of schema descriptions.
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 auto-plays an entire battle until it ends, listing specific phases handled (round-start dice, auto card placement, etc.). It distinguishes itself from siblings like 'play_round' which only plays a single round, and 'start_battle' which initiates but doesn't auto-play.
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 mentions that for smarter emotion card selection, the LLM can interrupt and call 'select_emotion_card' manually, providing a clear use case. However, it does not explicitly state when not to use this tool or contrast it with alternatives like 'play_round'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
call_methodA
Call an arbitrary method on a game object via reflection.
For advanced debugging. args is a JSON array of typed arguments, e.g. '[{"type":"string","value":"6"}]'.
Common targets:
StageController: SkipRoundStartUI, StopSpeedDiceRoll, CompleteApplyingLibrarianCardPhase, KillAllEnemy
UIController: OnClickGameStart, PrepareBattle
| Name | Required | Description | Default |
|---|---|---|---|
| object_type | Yes | ||
| method_name | Yes | ||
| args | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains the reflection mechanism and the args format with examples. However, it lacks details on potential side effects, authentication requirements, or error behavior, which would be important for a powerful reflection tool.
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 concise with three well-structured sentences: purpose, parameter explanation, and examples. No unnecessary information.
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 has an output schema (not detailed), the description need not explain return values. For a reflection tool with 3 parameters and 0% schema coverage, the description is quite complete, but still could provide better definitions for the required parameters.
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?
The input schema has 0% description coverage, so the description must compensate. It provides thorough explanation for the 'args' parameter (JSON array format with typed values), but for 'object_type' and 'method_name' it only offers examples, leaving their exact definition unclear.
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 it calls an arbitrary method via reflection for advanced debugging, with specific examples of common targets and methods, which distinguishes it clearly from sibling tools like 'kill_all_enemy' or 'list_methods'.
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 explicitly marks this tool as 'for advanced debugging' and lists common targets, providing clear context for use. However, it does not explicitly state when not to use it or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
click_battle_resultA
Click the battle result button after a battle ends.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions the action (clicking) without details on side effects, required state, error handling, or what happens after clicking. This is insufficient for a tool with no 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?
The description is a single concise sentence that states the action and context without any wasted words. It is front-loaded and every word contributes to understanding.
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 a simple click with no parameters and an output schema exists, the description is largely sufficient. It could be improved by noting whether the tool blocks until the action is complete or any return value behavior, but overall it meets minimal needs.
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?
The tool has no parameters (empty input schema, 100% schema coverage). The description adds meaning by explaining the action itself, which is adequate for a parameterless tool. Baseline for 0 parameters is 4.
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 clicks the battle result button and specifies when to use it ('after a battle ends'). It distinguishes from sibling tools like 'close_battle_scene' by focusing on the result button, but does not explicitly contrast with other click actions.
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 context ('after a battle ends') but provides no explicit guidance on when not to use it or alternatives among sibling tools. The timing is clear, but exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_battle_sceneA
Close the battle scene and return to the main UI.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as side effects, reversibility, or state changes beyond the basic 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?
The description is a single concise sentence with no wasted words, front-loading the purpose effectively.
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 no parameters and existence of an output schema, the description is mostly complete for a simple action, though it lacks details about preconditions or expected results.
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?
The tool has no parameters, so the description does not need to add meaning. Baseline 4 is appropriate as the description is sufficient for this case.
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 it closes the battle scene and returns to the main UI, providing a specific verb and resource that distinguishes it from sibling tools like start_battle or battle_loop.
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 after battle to return to main UI but does not explicitly state when to use it versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_action_statusA
Check the status of deferred (async) actions.
Note: The /action-status endpoint may not be available in all mod versions. Returns completed action results and pending action IDs if supported.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It mentions the return content (completed results and pending IDs) and a limitation (endpoint availability), but does not describe side effects, error conditions, or authentication requirements.
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 two sentences plus a note, front-loaded with the purpose, and contains no superfluous information.
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 (no params, output schema provided), the description covers purpose, availability caveat, and return content. It is nearly complete, though could mention that async actions must have been created beforehand.
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?
No parameters exist, and schema coverage is 100% (vacuously). The description adds no parameter details, which is acceptable since there are none.
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 'Check the status of deferred (async) actions,' using a specific verb and resource. It distinguishes itself from sibling tools like get_battle_units or get_game_state by focusing on async action status.
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 provides a caution about endpoint availability ('may not be available in all mod versions'), which is useful guidance. However, it does not explicitly state when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_battle_unitsA
Get detailed data for all current battle units (players + enemies).
Returns HP, break, speed dice, hand cards, emotion level for each unit. Only works during an active battle.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It discloses tool is read-only (implied by 'Get detailed data'), lists return fields, and includes the active-battle requirement. No mention of side effects or permissions, but these are not expected given the tool's nature.
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?
Two sentences: first states purpose, second lists return fields and constraint. No wasted words, front-loaded with core function.
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?
Output schema exists, so return values are documented externally. Description adds critical context (active battle only) and lists fields, making it complete for this simple tool.
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 zero parameters, so description does not need to add parameter information. Baseline is 4, and no param info is required.
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 tool retrieves detailed data for all current battle units (players and enemies). It lists specific fields (HP, break, speed dice, hand cards, emotion level), which distinguishes it from sibling tools like get_game_state or get_stage_info.
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?
Description specifies 'Only works during an active battle,' providing clear context for when to use. It does not explicitly mention alternatives or when not to use, but the constraint is sufficient for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_emotion_candidatesA
Get current emotion card candidates during RoundEndPhase.
Returns list of candidate cards with: index, id, name, state (Positive/Negative), emotionLevel, targetType. Returns {active: false} if emotion card UI is not currently shown.
The LLM should call this when battle.phase is RoundEndPhase and the phase seems stuck, then decide which card to pick.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool returns either a list of candidate cards with detailed fields or an {active: false} object when UI is not shown. No side effects are mentioned, which is sufficient for a read-only operation.
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?
Three concise sentences: purpose, output description, and usage guidance. 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 no parameters and a known output schema, the description covers all necessary information: what it does, what it returns, and when to use it.
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?
Tool has no parameters, so the baseline is 4. The description does not need to add param info; it focuses on purpose and output.
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 retrieves emotion card candidates during RoundEndPhase and specifies the return format, distinguishing it from sibling tools like select_emotion_card.
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 explicitly instructs when to call this tool (when battle.phase is RoundEndPhase and stuck) and what to do after (decide which card to pick), providing clear decision logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_game_data_itemA
Return a single item from a static game data collection.
First calls /static/{collection} to get the full collection, then finds the item by id. For efficiency, prefer get_game_data_items when you need multiple items.
Collections: cards, books, enemies, passives, decks, stages, drop_books, card_drop_tables, gifts, emotion_cards, emotion_ego, formations, quests, floor_levels, final_rewards, tooltips, titles, credits
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | ||
| item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that tool first fetches full collection then filters by id, a key behavioral trait. Lists possible collections. No annotations provided, so description carries full burden.
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?
Front-loaded purpose, then implementation detail, efficiency tip, and reference list. Each sentence adds value, 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?
Covers purpose, behavior, usage guidance, and collection enumeration. Output schema exists, so return values are handled. No missing crucial info given 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?
Description lists valid collection values, adding meaning to the empty schema. However, item_id format not specified. With 0% schema coverage, description partially compensates but not fully.
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?
States 'Return a single item from a static game data collection' with specific verb and resource. Distinguishes from sibling get_game_data_items by mentioning plural vs single.
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?
Explicitly advises to prefer get_game_data_items for multiple items, providing clear context for when not to use this tool. Implicitly suggests use for single item lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_game_data_itemsA
Return items from a static game data collection by comma-separated ids.
More efficient than calling get_game_data_item multiple times.
Example: get_game_data_items(collection='cards', item_ids='1,2,3')
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | ||
| item_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only indicates basic read behavior without disclosing traits like error handling, ordering, or limits. Limited transparency beyond the obvious.
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?
Three sentences with clear structure: function, efficiency benefit, and example. No wasted words; fully front-loaded.
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 that an output schema exists, the description does not need to detail return values. It adequately covers the core functionality and efficiency benefit. Could mention that collection is a static data category, but overall complete enough.
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 has no descriptions (0% coverage). The description adds meaning for 'item_ids' by stating they are comma-separated and provides an example. However, the 'collection' parameter is not explained, and no enumeration of valid collections is given.
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 returns items from a static game data collection, specifying the verb 'Return' and the resource. It also distinguishes itself from the sibling tool 'get_game_data_item' by noting efficiency for multiple IDs.
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 explicitly states it is more efficient than calling get_game_data_item multiple times, giving clear guidance on when to use this tool. No exclusion criteria are provided, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_game_stateA
Get the full current game state from the bridge.
Returns: navigation, progression, floors, inventory, availableStages, battle. Key fields for decision-making:
navigation.activeScene: Title | Main | Battle | Story
navigation.currentUIPhase: Sephiroth | Invitation | BattleSetting | BattleResult | ...
battle.phase: RoundStartPhase_UI | ApplyLibrarianCardPhase | RoundEndPhase | EndBattle | ...
battle.inBattle, battle.roundTurn
availableStages.stages[]: id, chapter, floorNum, stageType
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The verb 'get' implies read-only, but no explicit statement about safety or side effects. Without annotations, the description should be more explicit about behavioral traits.
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 concise (two sentences plus a bullet list), front-loads the purpose, and adds key fields without unnecessary detail.
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 complexity of the game state and that an output schema exists, the description's enumeration of key fields is sufficient. It could list all sections more comprehensively, but for decision-making it covers the essentials.
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?
No parameters exist, so the description adds value by explaining the output structure and key fields beyond the schema which only specifies no parameters.
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 retrieves the full game state, lists the returned sections, and distinguishes from sibling tools that get specific layers or items.
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 use for decision-making by highlighting key fields, but does not explicitly state when to use this tool versus alternatives like get_state_layer or get_game_data_item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stage_infoA
Get info about a specific stage by ID.
Returns stage controller state: wave, round, isEndContents.
| Name | Required | Description | Default |
|---|---|---|---|
| stage_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a read-only operation ('Get info', 'Returns') with no side effects. However, it lacks details on potential errors, authorization needs, or limits. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no wasted words. The key information (purpose and return fields) is front-loaded. Every sentence 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?
Given the simplicity of the tool (one parameter, read-only, output schema exists), the description covers the core functionality. Could mention error handling or success/failure conditions, but overall sufficient.
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 description coverage is 0%, and the description only adds 'by ID' to imply the purpose of stage_id. For a single integer parameter, this is minimal additional value beyond the schema itself.
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 'Get' and resource 'info about a specific stage by ID'. It also lists the specific returned fields (wave, round, isEndContents), distinguishing it from sibling tools like get_game_state or get_state_layer.
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. Missing context about prerequisites or typical usage scenarios. The description does not mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_state_layerA
Return a specific layer of the game state.
Valid layers: navigation, progression, floors, inventory, availablestages, battle
| Name | Required | Description | Default |
|---|---|---|---|
| layer | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only mentions valid layers. It does not disclose error behavior, side effects, read-only nature, or what happens with invalid input.
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 extremely concise: two sentences with no wasted words. It front-loads the purpose and then provides the necessary detail.
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 one-parameter tool with an output schema, the description is fairly complete. It covers the purpose and parameter values. Minor omission: no mention of error handling or return structure, but the output schema likely covers the latter.
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?
The input schema has 0% description coverage, but the tool description fully compensates by listing all valid values for the single parameter, adding significant meaning beyond the 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?
The description clearly states the tool returns a specific layer of the game state and lists all valid layer values, distinguishing it from siblings like get_game_state which likely returns the entire 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?
The description provides valid layer values but does not explicitly state when to use this tool versus alternatives or when not to use it. The context implies it's for retrieving a subset of the game state, but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_static_data_listA
List all available static game data files exported by StaticDataExport mod.
Returns file names and sizes for: cards, books, enemies, passives, decks, stages, etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It describes the output (file names and sizes) but does not disclose behavioral traits like side effects or auth needs, which for a read-only list are minor gaps.
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 two sentences with no redundant information. Every sentence adds value, and it is front-loaded with the core purpose.
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 low complexity (no parameters, simple list operation), the description fully covers what the tool does and what it returns, especially with an output schema present.
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?
The tool has no parameters, and schema coverage is 100%. The description adds no parameter info, but for zero parameters, a baseline of 4 is appropriate as there is nothing to explain.
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 'List' and the resource 'all available static game data files', distinguishing it from sibling tools like get_game_data_item which retrieve specific data.
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 listing file names and sizes but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_checkA
Check whether the Library of Ruina game Mod HTTP bridge is online and reachable.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It indicates a read-only health check but does not disclose details like whether it is idempotent, what errors might occur, or the exact nature of the response. The description is minimally adequate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, short sentence that is front-loaded and conveys the purpose without any fluff. Every word 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?
The tool is simple with zero parameters and an output schema (not shown). The description adequately covers the core purpose, but could be more complete by hinting at the output format or typical usage context. Still, it is sufficient given the tool's low 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?
No parameters exist, so the description is not required to add parameter-specific information. The baseline score of 4 is appropriate since the schema already covers everything.
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 that the tool checks the online status and reachability of the Library of Ruina game Mod HTTP bridge. The verb 'check' and the specific resource are well-defined, distinguishing it from sibling tools that perform game actions.
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 before other operations, but lacks explicit guidance on when to use this tool vs alternatives. No exclusions or alternative tools are mentioned, leaving usage context implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kill_all_enemyA
Kill all enemy units (debug cheat). For testing only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states it kills all enemy units but does not mention side effects, irreversibility, or impact on game state, which is important for a cheat tool.
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 extremely concise at two sentences, front-loading the action and purpose. No redundant 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 zero parameters and an output schema (present per context signals), the description covers the core purpose and usage context. It could mention return value format or confirmation, but the output schema likely handles that.
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?
There are no parameters (schema coverage 100%), so the description need not add parameter info. It does not repeat trivial details and maintains the baseline score.
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 'Kill all enemy units' with the specific context 'debug cheat' and 'For testing only.' It distinguishes itself from sibling tools like battle_loop and play_round by indicating it's not for normal gameplay.
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 labels the tool as a 'debug cheat' and 'for testing only,' implying appropriate usage context but does not explicitly state when to use or avoid alternatives. No mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_methodsA
List available public methods on a game object type via reflection.
| Name | Required | Description | Default |
|---|---|---|---|
| object_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It discloses the tool uses reflection to list methods, implying a read-only and potentially dynamic operation. While it does not explicitly state it is non-destructive, the action 'list' combined with 'reflection' strongly suggests no side effects. This provides adequate transparency for a listing tool.
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 of 10 words, which is extremely concise. It front-loads the action and key details without any redundancy or filler. Every word contributes to the 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?
Given the tool's simplicity (one parameter, output schema exists) and the context of sibling tools, the description provides enough for basic understanding. However, it lacks guidance on what 'game object type' means or whether there are common pitfalls (e.g., case sensitivity). Still, for a straightforward listing tool, it is nearly complete.
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?
The schema has 0% description coverage, and the description does not elaborate on the single parameter 'object_type' beyond implying it is a game object type. The parameter name is self-explanatory, but the description adds no extra meaning (e.g., valid values, format, or examples). This is insufficient for an agent to reliably construct correct input.
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 a specific verb 'list' and resource 'public methods on a game object type', and mentions the method 'via reflection'. It clearly distinguishes from sibling tools like 'call_method' which invokes methods, and 'get_game_data_item' which retrieves data items.
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 versus alternatives. It does not mention prerequisites, such as needing an object type, or that it is intended for discovery before using 'call_method'. The description leaves usage context entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
play_roundA
Play one battle round: stop dice -> auto-play cards -> confirm.
Waits for ApplyLibrarianCardPhase before acting. Use this for fine-grained control instead of battle_loop.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it waits for ApplyLibrarianCardPhase before acting and lists the sequence of operations, but with no annotations, it lacks details on side effects, failure modes, or permissions.
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?
Three short sentences conveying all essential info without redundancy or unnecessary details.
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 parameterless tool with an output schema, the description covers purpose, behavior, and usage context adequately. Could mention output format but not critical.
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?
No parameters exist, so the description naturally adds no parameter info. Baseline score of 4 applies per guidelines.
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 'play one battle round' and the specific resource, with step-by-step actions (stop dice, auto-play cards, confirm). It distinguishes from sibling 'battle_loop' by offering fine-grained control.
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?
Explicitly advises to use this tool for fine-grained control instead of battle_loop, providing clear when-to-use guidance and a direct alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_emotion_cardA
Select an emotion card by candidate index.
Call get_emotion_candidates first to see the options, then call this with the chosen index (0-based).
Handles SelectOne cards by auto-targeting the first alive player.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses auto-targeting behavior for SelectOne cards, adding value beyond schema. However, lacks details on error handling (e.g., invalid index) or side effects, and no annotations to supplement.
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?
Two sentences: first states purpose, second provides workflow and special behavior. No filler, every sentence adds value.
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?
Covers core workflow and key behavior. With output schema present, return value details are acceptable. Could mention edge cases like out-of-range index, but overall complete for its 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?
Only parameter is 'index'. Description adds crucial context: 0-based indexing and prerequisite step. Schema has no description (0% coverage), so description compensates well.
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 (select) and the resource (emotion card by index). It distinguishes from sibling tool get_emotion_candidates by specifying that this tool is called after viewing options.
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?
Provides explicit workflow: call get_emotion_candidates first, then use this with chosen index. Also mentions handling of SelectOne cards. Missing explicit when-not-to-use but guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skip_storyB
Skip the current story/event scene.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description solely bears the responsibility. It does not disclose behavioral traits like whether skipping is irreversible, if it triggers an animation or loading, or if it requires a specific game state.
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, concise sentence that is well front-loaded. However, it could be slightly more informative without adding much length.
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?
Despite the tool's simplicity, the description lacks completeness. It does not mention any return value (though output schema exists) or potential side effects, and given the number of sibling tools, usage context is missing.
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?
With no input parameters, the schema coverage is 100%, and the description adds no further meaning. A baseline of 4 is appropriate since no parameter information is needed.
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 ('skip') and the target ('current story/event scene'), which is specific and distinguishes it from sibling tools like 'act' or 'navigate'.
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 is provided on when to use this tool versus alternatives, such as when to skip vs. when to read or interact with the story. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_battleA
Start a battle for the given stage with automatic book selection.
Flow: navigate Invitation -> prepareBattle (auto-selects best books by composite score: HP + breakLife + resistances) -> wait for BattleSetting -> startBattle -> wait for Battle.
For high-difficulty stages where auto-selection picks bad books, pass explicit book_ids to override auto-selection.
| Name | Required | Description | Default |
|---|---|---|---|
| stage_id | Yes | Stage ID (e.g. 1, 2, 10001). | |
| wait_seconds | No | Max seconds to wait for battle to start. | |
| book_ids | No | Optional list of explicit book IDs to use. If None, auto-selects the best books from available inventory. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description provides a detailed flow: navigate -> prepareBattle (auto-selects best books) -> wait for BattleSetting -> startBattle -> wait for Battle. It also explains the auto-selection criteria and override capability.
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 concise with two paragraphs. The first sentence front-loads the main purpose, and subsequent sentences add detail without 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 presence of an output schema, the description is fully complete: it explains the flow, parameters, and auto-selection logic, leaving no gaps for an AI agent.
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 adds significant meaning: explains the auto-selection logic (composite score of HP, breakLife, resistances) and clarifies when to use book_ids, going beyond the 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?
The description clearly states the tool's purpose: 'Start a battle for the given stage with automatic book selection.' It uses specific verbs and distinguishes from siblings like battle_loop and play_round.
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 explains when to use explicit book_ids (high-difficulty stages) but does not explicitly compare to sibling tools or state 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.
start_gameA
Click Continue on the title screen and wait for the main UI.
The HTTP bridge may go down during scene transition; this tool retries until the scene is no longer Title.
| Name | Required | Description | Default |
|---|---|---|---|
| wait_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the HTTP bridge may go down during scene transition and that the tool retries until the scene is no longer Title. Without annotations, this is crucial behavioral context.
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 two concise sentences with no fluff. Front-loaded with the primary action, followed by essential retry behavior.
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?
While the core purpose and retry mechanism are covered, missing parameter documentation and lack of differentiation from siblings leave gaps. The output schema exists, so return values are not required.
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 description coverage is 0%, and the description does not mention the 'wait_seconds' parameter at all, leaving its purpose and effect undocumented. The description fails to compensate for the schema gap.
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 clicks 'Continue' on the title screen and waits for the main UI, specifying the exact action and resource. It distinguishes from siblings like 'skip_story' which handles story scenes.
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 the game is at the title screen, but does not explicitly state when to use this tool vs alternatives. No exclusions or when-not-to-use guidance is provided.
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. Dates show when Glama detected each change.
1 tool update
- Changed
start_battle1 field changed- added
Input schema / properties / book_idsAdded value: +{ + "anyOf": [ + { + "items": { + "type": "integer" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional list of explicit book IDs to use. If None,\n auto-selects the best books from available inventory." +}
23 tool updates
v0.1.0- First observed
act - First observed
battle_loop - First observed
call_method - First observed
click_battle_result - First observed
close_battle_scene - First observed
get_action_status - First observed
get_battle_units - First observed
get_emotion_candidates - First observed
get_game_data_item - First observed
get_game_data_items - First observed
get_game_state - First observed
get_stage_info - First observed
get_state_layer - First observed
get_static_data_list - First observed
health_check - First observed
kill_all_enemy - First observed
list_methods - First observed
navigate - First observed
play_round - First observed
select_emotion_card - First observed
skip_story - First observed
start_battle - First observed
start_game
TDQS
There is significant overlap between the generic 'act' tool and many specific tools (e.g., navigate, start_battle, battle_loop). Both 'act' and separate tools provide similar actions, causing confusion. Also, 'get_game_data_item' and 'get_game_data_items' are nearly identical.
Naming is inconsistent: top-level tools use snake_case (e.g., battle_loop), but sub-actions within 'act' use camelCase (e.g., startBattle). Some tools are verbs (navigate), others are phrases (click_battle_result). No uniform verb_noun pattern.
With 23 tools, the set is on the higher end but can be justified for complex game automation. However, redundancy (e.g., multiple battle control tools) suggests it could be streamlined without loss.
The tool set covers navigation, battle, game data querying, and debugging reasonably well. However, there is no direct tool for inventory management or configuration, and some critical actions like saving/loading are missing.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Python MCP server that helps AI interact with Gacha games through screenshot capture and click automation, enabling game analysis and automated actions.-
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to play Pokémon games by providing a functional interface for game interaction. It allows for seamless integration with AI clients to execute gameplay tasks and manage game states.3-
- FlicenseNot gradedqualityDmaintenanceAn MCP server for the Genius Invokation TCG simulator that allows AI models to interact with the game through a structured interface. It provides comprehensive tools for querying game states, accessing indexed card data, and executing gameplay actions like elemental tuning and character selection.-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to play Slay the Spire 2 by exposing game state and actions through an MCP server, supporting combat, rewards, and run management.306-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hongyue0721/lorAI-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server