Skip to main content
Glama

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)

BaseMod

游戏内 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

配置

环境变量

默认值

说明

LOR_API_BASE_URL

http://localhost:17127

游戏 bridge 地址

LOR_PROXY_FALLBACK_URL

http://localhost:17128

Python 代理回退地址

LOR_MCP_TOOL_PROFILE

guided

工具集(guided 加载战斗自动化)

LOR_GAME_DATA_DIR

(Steam 默认路径)

代理服务器的游戏数据目录


许可证

MIT

Available Tools

23 tools
actA

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
paramsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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}.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_roundsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
object_typeYes
method_nameYes
argsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
collectionYes
item_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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')

ParametersJSON Schema
NameRequiredDescriptionDefault
collectionYes
item_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stage_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
layerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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

For a simple one-parameter tool with 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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
object_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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

The description uses a specific verb 'list' 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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stage_idYesStage ID (e.g. 1, 2, 10001).
wait_secondsNoMax seconds to wait for battle to start.
book_idsNoOptional list of explicit book IDs to use. If None, auto-selects the best books from available inventory.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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

The description clearly states the tool's 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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
wait_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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. 1 tool update
    • Changedstart_battle1 field changed
      • addedInput schema / properties / book_ids
        Added 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."
        +}
  2. 23 tool updatesv0.1.0
    • First observedact
    • First observedbattle_loop
    • First observedcall_method
    • First observedclick_battle_result
    • First observedclose_battle_scene
    • First observedget_action_status
    • First observedget_battle_units
    • First observedget_emotion_candidates
    • First observedget_game_data_item
    • First observedget_game_data_items
    • First observedget_game_state
    • First observedget_stage_info
    • First observedget_state_layer
    • First observedget_static_data_list
    • First observedhealth_check
    • First observedkill_all_enemy
    • First observedlist_methods
    • First observednavigate
    • First observedplay_round
    • First observedselect_emotion_card
    • First observedskip_story
    • First observedstart_battle
    • First observedstart_game

TDQS

B3.3/5.0
Disambiguation2/5

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 Consistency2/5

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.

Tool Count3/5

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.

Completeness3/5

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

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Python MCP server that helps AI interact with Gacha games through screenshot capture and click automation, enabling game analysis and automated actions.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An 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.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables 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

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