galbook
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@galbookstart a new game of fog-harbor and read the opening scene"
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.
galbook
让 agent 像人一样玩 galgame / 视觉小说:一句一句读剧情,遇到选项自己选并写理由,存档、读档、回到上个选项、多周目解锁隐藏线。画面它也能看见——换场景时告诉你背景换到哪、谁站在哪一侧、什么表情;第一次见到某张 CG,图会跟着文字一起给。想知道此刻屏幕上是什么,galbook_look 看一眼就行。很多 agent 可以同时玩同一本书,各自的进度互不干扰。
English · 纯 Python 标准库,没有依赖 · MIT
怎么接(任选一种)
方式 | 适合 | 怎么起 |
纯文本 HTTP | 任何能发请求的 agent,最省 token |
|
JSON API | 想要结构化字段 | 同上, |
MCP | Claude Desktop、Codex 类、DeepSeek Harness | stdio: |
命令行 | 只有 shell 的 agent |
|
完整字段和协议在 docs/AGENTS.md;OpenAI function-calling 的工具定义用 python3 -m galbook tools 导出。
用 DeepSeek Harness(dsh)? 插件面板 → 安装 → 来源填
github:CHET-LI/DSH-galgame-galbook,重启即可(包在根目录声明了组合包,多出 16 个galbook_*工具)。连不上 GitHub 就用本地目录或galbook-1.2.6.tgz,见 dsh-plugin。
要离线包? Release 里有
galbook-1.2.6.tgz(npm 包,装完即用);源码直接用 GitHub 自动生成的 Source code (zip / tar.gz)——tar.gz 在 Linux 上没有解压乱码。
带网页:看每个 agent 玩到哪、选了什么、为什么选;人也能自己玩
导入器:QLIE、吉里吉里 KAG / TyranoScript、Ren'Py、NScripter、自带的
.gal手写格式;另外能吃 VNTextPatch 等工具导出的文本(20 多种引擎,只能线性读),还能写插件接新引擎另外附:Anthropic Skill 格式的技能文件、dsh 适配示例(integrations/deepseek-harness)、
verify_claims.py逐条自检脚本

⚠️ 版权:本仓库只有代码和自己写的演示故事。游戏的剧本、图片、音乐归原作者/厂商所有。请只导入你自己合法拥有的游戏,导出的剧本和图片不要上传或分发。galbook 不带任何解包/解密工具,也不会运行游戏的 exe。
Related MCP server: naninovel-mcp
30 秒试玩
git clone <本仓库> galbook && cd galbook
python3 -m galbook demo --books books # 装两本自带演示:fog-harbor(中文)、fog-harbor-en(英文)
python3 -m galbook serve --books books # http://127.0.0.1:8765/play/让一个 agent 去玩——它只需要会发 HTTP GET:
GET http://127.0.0.1:8765/play/t ← 玩法说明(给 agent 看)
GET http://127.0.0.1:8765/play/t/fog-harbor/alice?do=new
GET http://127.0.0.1:8765/play/t/fog-harbor/alice?do=next
GET http://127.0.0.1:8765/play/t/fog-harbor/alice?do=choose&i=2&reason=她看起来很累返回是纯文本:
【序章】第 4 句
你是来送最后一班信件的邮差。信封上写着:「致灯塔守夜人·汐」。
汐:「这么大的雾还送信?……你胆子不小。」
—— 选项:你会怎么做? ——
1. 「我陪你去。」
2. 「我在这儿帮你看着灯。」
3. 「信送到了,我该走了。」
选:/play/t/fog-harbor/alice?do=choose&i=编号&reason=一句理由 (已自动存档 auto)一群不同性格的 agent 一起玩(不用模型也能跑,用 --decider llm 接任何 OpenAI 兼容接口):
python3 examples/party.py --book fog-harbor多元选项(给不同的 agent、不同的玩法)
选项 | 怎么开 | 作用 |
H 场景 |
| 折叠成一行提示 / 全文 / 完全跳过 |
铁人模式 |
| 这一局不能存档、读档、回溯:选了就认 |
提示 |
| 选项后标〔新内容〕〔选过〕,方便刷全结局;默认关(更像第一次玩) |
语言 |
| 文本接口用英文 |
人设 |
| 每次遇到选项都会提醒 agent 自己的人设 |
随机 |
| 掷骰子(做对照组、压测) |
收集 |
| 结局 / 路线 / CG / 已读进度 |
像不像人 |
| 选前读了几句、理由率、思考时间、是不是总选第一个 |
跳过已读 |
| 二周目快进到没读过的地方 |
画面 | 默认(书里有图时)/ | 画面一变多一行 |
接到你的 agent
任何能发 HTTP 的 agent:上面的文本接口。说明页
/play/t(英文/play/t?lang=en)可以直接塞进 system prompt。MCP(stdio)(Claude Desktop、Cursor、Cline、dsh 等):
python3 -m galbook mcp --books books --data play-data --book fog-harbor --agent alice,配置见 examples/mcp_config.example.jsonMCP(Streamable HTTP):
serve自带POST /mcp?book=…&agent=…,一个服务给很多 agent,配合令牌用DeepSeek Harness:
python dsh-plugin/install.py一条命令装好(自动找 profile、备份、填路径),细节和另外两种接法见 dsh-plugin 与 integrations/deepseek-harness技能:.agents/skills/galbook/SKILL.md,复制到
~/.agents/skills/(dsh)或.claude/skills/即可OpenAI function calling:
python3 -m galbook tools --format openai > tools.json,执行时调galbook.tools.call_tool(...)命令行:
GALBOOK_BOOKS=books GALBOOK_DATA=play-data GALBOOK_BOOK=fog-harbor GALBOOK_AGENT=alice python3 -m galbook do next n=20(输出最后一行就是下一步命令)
详见 docs/AGENTS.md。
公开部署:默认只听 127.0.0.1。要给别人用请开令牌:--token 共享口令,或 --tokens tokens.json({"口令": "alice", "管理员口令": "*"},每个口令只能用自己的名字玩)。
导入你自己的游戏
python3 -m galbook detect 解包目录 # 认引擎、告诉你缺什么
python3 -m galbook build --src 解包目录 --out books/我的书/story --assets-dir books/我的书引擎 | 支持程度 |
QLIE( | 分支 ✅(选项、路线、通关解锁) |
吉里吉里 KAG / TyranoScript( | 分支 ✅ |
Ren'Py( | 分支 ✅( |
NScripter / ONScripter( | 分支 ✅ |
| 分支 ✅,自己写故事或手工移植 |
AdvHD、Artemis、BGI、CatSystem2、Majiro、RealLive、Softpal、SystemNNN、YU-RIS、Silky's 等 | 线性 📖:先用 VNTextPatch 抽成 JSON 再 |
其他 | 写插件(几十行),见 docs/IMPORTERS.md |
封包(.xp3、.pack、.rpa…)要先用 GARbro 等工具自己解开。各引擎的细节和已知限制见 docs/ENGINES.md。
文档
docs/AGENTS.md:接入 agent(文本接口、JSON、MCP、OpenAI 工具、令牌)
docs/ENGINES.md:各引擎能做到什么、怎么准备文件
docs/IMPORTERS.md:
.gal格式说明、文本导出格式、写插件docs/SCHEMA.md:中间格式(story.json / 指令 / 存档)
dsh-plugin/README.md:装进 DeepSeek Harness(一条命令、可卸载)
测试
python3 -m unittest discover -s tests -v在 Python 3.9 / 3.12 / 3.13(Linux)和 Python 3.12(小主机)/ 3.14(Windows)上跑过同一套用例。
许可
代码 MIT(见 LICENSE)。galbook/demo/ 里的演示故事和图是 CC0。
Available Tools
16 toolsgalbook_booksA
List playable books (slug, title, engine, routes). / 列出能玩的书
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, but 'List' plus the zero-parameter schema makes the read-only nature self-evident. The description adds the useful disclosure of what each entry contains (slug, title, engine, routes), though it says nothing about ordering, filtering, or size of the result set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence plus its Chinese equivalent, with the resource front-loaded and the returned fields compactly parenthesized. Nothing is padded and nothing needs reordering.
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?
With no output schema and no annotations, the description carries the whole burden, and it does cover the essential return fields for a zero-argument listing tool. It stops short of noting ordering, count, or what a caller should do with the returned slug next, which would fully close the gap.
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 takes no parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The parenthetical field list instead documents return shape, which is a bonus rather than a substitute for parameter docs.
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 a specific verb+resource ('List playable books') and even enumerates the fields returned (slug, title, engine, routes), so an agent knows exactly what it gets. No sibling is named as an alternative, but no sibling overlaps this discovery role, so differentiation is implicit rather than stated.
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?
There is no explicit when-to-use guidance, no prerequisite (e.g. 'call before galbook_new or galbook_load to find a slug'), and no mention of alternatives. The agent must infer from the name alone that this is the discovery entry point for the galbook_* family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_chooseC
Pick an option at a choice and say why. / 选选项并写理由
| Name | Required | Description | Default |
|---|---|---|---|
| i | No | option number from 1, or "random" | |
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 | |
| reason | No | one sentence: why your persona picks this |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden, and it discloses almost nothing. It does not say that choosing mutates story/save state, whether the action is irreversible, what happens with "random", whether reason is mandatory, or what the caller gets back.
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 text is short and front-loaded, which is good, but it is under-specified rather than genuinely concise, and the bilingual duplication doubles length without adding information. Every word does not earn its place given the gaps left open.
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 4-parameter tool with no annotations and no output schema, the agent needs to know the outcome of a choice and its side effects, and none of that is present. All parameters being optional (0 required) also goes unexplained, leaving the caller guessing which fields are truly needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains i (including "random"), book slug, agent name constraints, and the one-sentence reason format. The description adds only the loose expectation of "say why", which duplicates the reason parameter rather than adding new meaning; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Pick an option at a choice and say why" gives a concrete verb (pick) and a domain-specific resource (an option at a choice), so the intent is inferable. However, it never distinguishes itself from siblings like galbook_click, galbook_next, or galbook_look, which could plausibly also advance or select within the story.
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?
There is no guidance on when this tool applies versus galbook_click or galbook_next, nor any mention of prerequisites such as needing a pending choice or a configured book. The only implied condition is circular: use it at a choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_clickC
Click the screen. / 点一下画面
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 |
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, yet it discloses nothing about consequences: whether the click advances the story, consumes a choice opportunity, has side effects, or fails when no scene is loaded. Only the bare notion of an interaction is conveyed.
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?
It is extremely short and front-loaded with no filler, but this brevity is under-specification rather than disciplined conciseness. The bilingual duplication adds no information beyond the single English sentence.
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?
With no annotations, no output schema, and a behavior that is entirely opaque, the description should explain what a click does and what the agent gets back. Instead it provides only a one-line action label, leaving the tool's role in the galbook workflow undefined.
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 both parameters (book, agent) have clear inline descriptions including their optionality when server defaults are set. The description adds no additional meaning, but the schema already does the work, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Click the screen" essentially restates the tool name galbook_click, describing a physical action rather than the game-state effect (advance dialogue, dismiss overlay, etc.). It gives no way to distinguish it from siblings such as galbook_next, galbook_choose, or galbook_look, which an agent must choose among.
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?
There is no when-to-use guidance at all: no statement of when clicking is preferred over galbook_next or galbook_choose, no prerequisites, and no exclusion conditions. The agent is left to infer the interaction model from the sibling list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_galleryC
Collection progress: endings, routes, CG, read ratio. / 收集进度
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It usefully enumerates what is reported (endings, routes, CG, read ratio), but never states that this is a read-only, side-effect-free operation, nor how defaults for book/agent are applied server-side.
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 short fragments with zero padding, and the key content categories are front-loaded. The extreme brevity borders on under-specification rather than efficient conciseness.
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?
With no annotations and no output schema, the description should clarify read-only behavior, defaulting, and the shape/scope of the progress report. It only lists result categories, leaving an agent without enough to confidently distinguish this from galbook_status or galbook_profile.
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 both parameters (book slug, agent player name) are fully documented in the schema, including that they may be omitted when server defaults exist. The description adds no additional meaning about them, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Collection progress: endings, routes, CG, read ratio' names a resource domain (collection/completion stats) and enumerates its contents, so an agent can infer it reports gallery/unlock progress. However, there is no verb and no explicit statement that it retrieves progress for a specific book, leaving the scope partially to inference from the name 'gallery' and the sibling 'galbook_books'.
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?
There is no guidance on when to call this versus siblings such as galbook_status, galbook_books, or galbook_profile, and no stated prerequisites. An agent must guess whether this is a per-book completion view or a global summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_helpC
How to play like a human (rules and tips). / 玩法说明
| Name | Required | Description | Default |
|---|---|---|---|
No 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 disclosure burden, yet it says nothing about whether this is a read-only documentation fetch, how large the returned guidance is, or whether it changes any game state. It only implies 'this returns tips', which is barely more than the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short line with the intent front-loaded and no wasted wording. The bilingual repetition adds a little redundancy but is cheap and aids matching for non-English agents.
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 zero-parameter help tool the surface area is small, so the definition is close to adequate, but with no annotations and no output schema an agent still lacks any sense of what the help covers or when to reach for it among the fifteen sibling tools.
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 takes zero parameters, so there is nothing for the description to disambiguate beyond what the empty schema already shows. Baseline 4 applies; no parameter-related gaps exist.
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 says it is a rules-and-tips/help document ('How to play like a human (rules and tips)'), which conveys a help resource rather than a game action, distinguishing it implicitly from siblings like galbook_next or galbook_choose. However, the phrasing is vague – 'play like a human' could be read as persona/style guidance rather than game rules, and it never says what the returned content actually covers.
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?
There is no statement of when to call this tool – not at session start, not when confused about rules, and no mention of alternatives. An agent must guess the trigger condition on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_loadC
Load a slot (auto is written at every choice). / 读档
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| slot | No | auto / quick / 1-99 | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden, and it discloses only one trait: that the 'auto' slot is written at every choice. It says nothing about whether loading overwrites current progress, whether loading is reversible, what happens if the slot is empty, or what the tool returns, all of which matter for a state-mutating load.
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 short and front-loaded, but it is terse to the point of under-specification rather than economy. The bilingual duplication ('/ 读档') adds characters without adding information for an agent.
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 zero-annotation, mutation-style load with no output schema, the description should cover what state is restored, what happens to unsaved progress, and error behavior for missing slots. It covers none of this, leaving the agent to call a state-changing tool on inference alone.
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 100%, so the schema already documents book, slot, and agent, making 3 the baseline. The description adds only marginal meaning by explaining the 'auto' value, which the schema already lists as an accepted slot, so it does not go meaningfully beyond structured fields.
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 gives a verb plus resource ('Load a slot'), which is specific enough to know it restores saved state, but it does not distinguish this from siblings like galbook_saves (listing saves) or galbook_rewind (stepping back), which an agent must choose between. The parenthetical about 'auto' narrows one slot value rather than clarifying the tool's overall role.
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?
There is no explicit statement of when to use this versus galbook_saves, galbook_rewind, or galbook_new. The agent must infer that loading is the inverse of galbook_save by name similarity alone, and no prerequisites (e.g. book must exist, slot must have been saved) are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_logC
Backlog of recent lines and choices made. / 回想
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | ||
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. "Backlog" implies a read-only retrieval, but the description does not confirm read-only behavior, state whether results are scoped to a book or agent, explain default behavior when book or agent is omitted, or mention the 300-line cap.
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 short and front-loaded, and the bilingual "回想" adds a compact gloss rather than a long explanation. However, its brevity comes at the cost of under-specification for a three-parameter retrieval tool.
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 tool with no annotations, no output schema, three parameters, and no required fields, the description is too sparse. It does not explain the return shape, ordering, default book/agent resolution, or how n changes the result, leaving the agent to infer critical behavior.
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 description adds no parameter-level meaning beyond the schema, and the n parameter has no schema description at all. With only 67% schema coverage, the description should clarify that n controls the number of recent lines returned and explain how the optional book and agent defaults work, but it does neither.
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 phrase "Backlog of recent lines and choices made" identifies the resource as recent interaction history, so the agent can infer it retrieves a log. However, the verb is only implied through a noun phrase, and there is no explicit differentiation from sibling tools such as galbook_status, galbook_saves, or galbook_next.
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 gives no guidance on when to call this tool versus alternatives like galbook_status or galbook_saves. It also does not mention defaults, prerequisites, or the practical situation in which a recent-history backlog is useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_lookB
Look at the current screen: the CG, or each character on stage (position + face code), as images. / 看一眼现在的画面
| Name | Required | Description | Default |
|---|---|---|---|
| bg | No | also include the background | |
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It does disclose the return medium, images, plus what each image represents, position and face code, which is valuable since there is no output schema; however, it says nothing about cost or latency of image returns, error behavior when no CG is on screen, or whether the call is side-effect free.
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 core purpose is front-loaded in one clause with the content enumeration immediately after. The trailing bilingual restatement is redundant for an English reading but compact and plausibly useful for a bilingual agent, and nothing else is wasted.
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 zero-annotation, no-output-schema tool, the description covers what is returned but not the operational picture: no note on when an image set is empty, how many character images to expect, or what happens if no book is set. Adequate but with visible gaps.
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 100%, so all three parameters, including the bg toggle and the book and agent slugs, are already documented in the schema. The description only loosely gestures at the background inclusion and adds no format or default semantics beyond it, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a specific verb and resource, 'look at the current screen', and enumerates what is captured: the CG, or each character's position and face code, as images. This distinguishes it from state-oriented siblings such as galbook_status and galbook_log, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the word 'current' signals timing, meaning the agent uses it to inspect the present visual state. There is no explicit statement of when to prefer it over galbook_gallery, galbook_status, or galbook_log, and no preconditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_newC
Start a new playthrough. / 新游戏
| Name | Required | Description | Default |
|---|---|---|---|
| h | No | adult scenes: fold(default)/full/skip | |
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| lang | No | UI text language | |
| mode | No | ironman = no save/load/rewind | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 | |
| hints | No | mark options 'picked before' / 'new' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and says nothing. It does not disclose whether an existing playthrough is discarded, whether a save slot is created, whether the server-side default book/name is used, or what ironman mode actually locks out beyond the terse enum hint in the schema.
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 words plus a Chinese gloss, front-loaded with the action; nothing is wasteful. The brevity is efficient, though it borders on under-specification that is penalized in other dimensions rather than here.
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?
This is a state-initializing tool with six parameters, no annotations, and no output schema, so the description must explain consequences and defaults. It instead provides a two-word label, leaving the agent unable to tell what gets reset or how the omitted book/agent defaults resolve.
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 100% and all six parameters including three enums are documented in the schema itself, so the baseline is 3. The description adds no extra meaning, such as the effect of hints or the fallback behavior when book/agent are omitted.
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?
"Start a new playthrough" gives a specific verb (start) and resource (playthrough), and the word "new" implicitly separates it from galbook_load / galbook_saves, which resume existing progress. It is clear but does not explicitly name or contrast with those siblings.
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?
There is no statement of when to call this versus galbook_load, galbook_next, or galbook_choose, nor any precondition such as needing a book slug or having no active session. The agent must infer usage from the one-line description and sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_nextC
Read the next n lines; stops at a choice or ending. / 往下读
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | lines to read (default 20) | |
| img | No | attach images, but only for a CG you see for the first time and the ending screen / 只在第一次见到的 CG 和结局那屏附图 | |
| vis | No | one [screen] line when the picture changes (default: on if the book has images) | |
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 | |
| skip_read | No | fast-forward lines you have already read |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose one genuine behavioral trait — that reading halts at a choice or ending — but never says that the call advances or mutates the reading position, whether it is safe to repeat, or that a player name / book must be resolved first. That is thin coverage for a state-advancing 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 core clause is front-loaded and there is no padding beyond the redundant bilingual restatement. It is short, but the ' / 往下读' duplication earns no place because it conveys nothing new.
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?
Six optional parameters, no annotations, and no output schema mean the agent gets no description of the returned text, how lines are delimited, or what happens when an ending is hit. The stopping rule is the only behavioral detail offered, which leaves the definition under-specified for a tool that drives narrative progress.
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 100%, so the parameters are already documented, and the baseline of 3 applies. The description only echoes the meaning of 'n' and says nothing about img, vis, book, agent, or skip_read that would supplement 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?
States a concrete verb and resource: 'Read the next n lines', plus the stopping rule 'stops at a choice or ending'. An agent can tell this advances through book content rather than making choices (galbook_choose) or inspecting state (galbook_status). It stops short of 5 because it does not explicitly differentiate itself from near-neighbours like galbook_look or galbook_log.
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?
There is no when-to-use guidance, no prerequisites, and no named alternative. The Chinese '往下读' simply repeats the English instruction instead of adding guidance, so an agent must infer the calling context entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_personaB
Set or show your persona; it is shown to you at every choice. / 人设
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| text | No | omit to show; empty string to clear | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose one real behavioral trait: the persona is injected into every subsequent choice prompt, which is meaningful side-effect information. It omits persistence scope (per book? per agent?), what happens on overwrite, and what a show call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded clause with no padding; the bilingual "人设" tag is a harmless gloss rather than wasted space. It is arguably too terse for the behavioral depth it hints at, but nothing present is redundant.
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 three-optional-parameter tool with no annotations and no output schema, the description should explain what showing returns and how persona state is scoped across books and agents. It conveys the core mechanic (persistent persona shown at each choice) but leaves the retrieval shape and scoping undefined.
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 100%, so the schema already documents book, text, and agent, including the "omit to show; empty string to clear" semantics. The description adds no meaning beyond that, which is the expected baseline for a fully documented 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?
"Set or show your persona" states a specific verb pair and resource, and the clarification that it is shown at every choice pins down the scope of the effect. It does not differentiate itself from siblings like galbook_profile or galbook_status, so an agent must infer the boundary, but the core action is unambiguous.
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 never says when to set versus when to show, nor how this relates to galbook_profile or the other persona-adjacent siblings. The only usage signal ("shown to you at every choice") is a consequence, not a routing rule, and the set/show switch is only discoverable from the schema's "omit to show".
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_profileD
Stats and human-likeness numbers. / 记录
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden, and it discloses essentially nothing: not whether the call mutates state, what identity/auth the agent must assume, or what shape the "numbers" come back in. The phrase "human-likeness numbers" hints at content but gives no behavioral profile for an unannotated 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?
It is short, but shortness here is under-specification rather than concision: two disconnected fragments joined by a slash, with no stated subject for "Stats". Nothing is front-loaded because there is no substantive lead sentence.
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?
With no annotations, no output schema, and two optional parameters whose defaults are the only real subtlety, the description is the sole source of behavioral context and supplies none of it. An agent would have to experiment to learn what a "profile" contains and whether calling it is safe.
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 100% and both parameters (book slug, agent name) are documented in the schema with their own fallback-to-default notes. The description adds no meaning beyond that, but per the coverage rule the schema doing the work sets the baseline at 3.
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?
"Stats and human-likeness numbers" gestures at a profile-like read tool but never names the resource being profiled (a player? a book? the agent's session?) or the verb. The Chinese fragment "记录" (record/log) is ambiguous and, if anything, suggests a write operation, which conflicts with the stats-reading reading. Against 15 sibling tools with distinct names, an agent cannot confidently tell what this returns.
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?
There is no guidance at all on when to call this versus galbook_status, galbook_log, or galbook_persona, which are the obvious neighbors for state/statistics. No prerequisites, no exclusions, no mention of whether it must be called before or after other lifecycle tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_rewindC
Go back to the previous choice to choose again. / 回到上个选项
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 | |
| steps | No | how many choice points back (default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose whether rewinding restores prior state, whether it undoes recorded choices in galbook_log, what happens if steps exceed history, or whether server-side default book/agent settings are applied.
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 and front-loaded, with the core action stated immediately and the bilingual version adding no ambiguity. It could be stronger if the concise statement also carried one sentence of operational context, but there is no wasted wording.
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 state-mutating navigation tool with no annotations and no output schema, the description is too thin. It does not explain the resulting state, error behavior when no prior choice exists, or how it differs from loading a save or making a new choice.
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 100%, so the input schema already documents book, agent, and steps. The description adds no parameter detail beyond the schema baseline, such as how multiple steps interact with history boundaries or what 'previous choice' means in terms of the server's state model.
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 states a specific action: going back to a previous choice so the player can choose again. This is clearer than a tautology and distinguishes it somewhat from siblings like galbook_next and galbook_choose through the word 'previous'. However, it does not explicitly name or contrast itself with those adjacent navigation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by saying 'Go back to the previous choice to choose again', but it provides no explicit when-to-use guidance, no exclusions, and no named alternatives. An agent must infer whether to call galbook_rewind versus galbook_choose, galbook_next, or galbook_load when correcting a choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_saveC
Save to a slot. / 存档
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| note | No | ||
| slot | No | quick or 1-99 | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden and delivers almost nothing. It never states that this writes persistent state, whether saving to an occupied slot overwrites it, whether the server-configured default book/agent are applied, or what a successful save returns — all of which matter for a mutation 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 single short sentence is front-loaded and free of filler, but here brevity crosses into under-specification rather than efficiency — the same byte budget could have carried a use-case clause or an overwrite warning.
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?
A four-parameter mutation tool with no annotations and no output schema needs the description to explain persistence, overwrite behavior, and defaults; none of that is present. The description is not complete enough for an agent to call this confidently without probing sibling tools.
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 75%, so the schema already documents book, slot, and agent, while note is undocumented everywhere. The description adds no parameter meaning beyond restating "slot", so it does not compensate for the one gap or explain the interaction between slot format (quick vs 1-99) and the optional defaults.
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?
"Save to a slot" names a verb and a resource, so the basic intent (write a save file) is inferable, but "slot" is left unqualified and there is no differentiation from siblings like galbook_load, galbook_saves, or galbook_rewind that operate on the same save data. The bilingual gloss repeats the same phrase rather than clarifying it.
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 when-to-use or when-not-to-use guidance is given, and no alternative is named. An agent cannot tell from the description whether this creates a new save, overwrites an existing one, or how it relates to galbook_saves/galbook_load.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_savesC
List save slots. / 存档列表
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description has to carry the whole behavioral burden, and it says nothing about defaults. The schema notes that book and agent fall back to server-side defaults, but the description never explains whether listing is scoped to one book, one agent, or everything visible to the caller.
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 short bilingual fragments with zero filler and the verb-resource phrase front-loaded. It is efficient, but the extreme brevity is closer to under-specification than to disciplined concision.
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 tool with no annotations, no output schema, and two optional parameters that silently fall back to server defaults, the description should explain what a listing returns or what scope it covers. Nothing beyond the bare purpose is stated, so an agent has to guess at how to interpret the result.
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 100%, and both parameters (book slug, agent name) are fully documented in the schema, including the note that they can be omitted when server defaults exist. The description adds nothing beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a verb plus a resource ("List save slots"), so the basic action is inferable. However, it does not say whose save slots are listed, what a slot contains, or how this differs from galbook_save / galbook_load / galbook_rewind, which all operate on the same save concept.
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?
There is no when-to-use guidance and no mention of alternatives, even though galbook_load and galbook_save sit right next to it in the sibling set. An agent gets no signal for deciding between listing saves and loading or creating one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
galbook_statusC
Where am I in the story, pending choice, recent lines. / 现在玩到哪
| Name | Required | Description | Default |
|---|---|---|---|
| book | No | 书的 slug(见 galbook_books)。服务端设了默认书时可省略 | |
| agent | No | 你的玩家名(1-40 位字母数字/中日文/_-.)。服务端设了默认名时可省略 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full disclosure burden, and it does not state that this is a non-mutating read, whether calling it advances or alters the story, or how the server-side default book/agent fallback behaves when parameters are omitted.
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 short fragments, front-loaded with the content most likely needed. The Chinese half is a near-duplicate of the English rather than added information, a minor redundancy but not damaging.
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 two-optional-parameter read tool with full schema coverage this is roughly adequate, and the description does sketch the return contents since no output schema exists. However, without annotations it should still say the call is read-only and safe to poll, which it omits.
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 both parameters are documented in the schema, including the optional-default semantics. The description adds nothing about parameters, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource it returns — current story position, pending choice, recent lines — which is more than a label restatement. But it uses no verb ('where am I') and does not distinguish itself from near neighbors such as galbook_log or galbook_profile, so an agent must infer that this is the lightweight state read.
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 when-to-use statement, no prerequisites, and no mention of alternatives. The agent is left to guess whether to call this versus galbook_log before answering a 'where am I' question, or after galbook_load to confirm state.
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.
16 tool updates
v1.2.6- First observed
galbook_books - First observed
galbook_choose - First observed
galbook_click - First observed
galbook_gallery - First observed
galbook_help - First observed
galbook_load - First observed
galbook_log - First observed
galbook_look - First observed
galbook_new - First observed
galbook_next - First observed
galbook_persona - First observed
galbook_profile - First observed
galbook_rewind - First observed
galbook_save - First observed
galbook_saves - First observed
galbook_status
TDQS
Scored across 16 tools
Most tools are distinct (save/load/saves/rewind are clear), but several pairs overlap: galbook_status vs galbook_log both surface recent lines, galbook_gallery vs galbook_profile both report stats/progress, and galbook_click vs galbook_next both relate to advancing the screen. Descriptions help somewhat but boundaries are not crisp.
All tools use a uniform galbook_ prefix plus a single lowercase token, with no camelCase/snake_case mixing, so the pattern is highly predictable. It is not a strict verb_noun scheme (mixing verbs like choose/click with nouns like books/saves/status), but the style is consistent throughout.
16 tools is slightly above the comfortable 3-15 band but each maps to a real VN-player action (new, read, choose, save/load, rewind, inspect). The few redundant-feeling tools (click vs next, gallery vs profile) nudge it just over an ideal scope.
The surface covers the VN lifecycle well: start, list books, read, choose, save/load/list, rewind, log, persona, collection progress, and visual inspection. Minor gaps exist (no delete/rename save slot, no quit/exit or skip/auto mode), but agents can work around them.
Maintenance
Related MCP Connectors
Play and build AI RPG worlds: your agent tells the story, Worldtable keeps HP, items and the map.
Memory, reflection and safety for AI agents. Hosted or local, no vector database.
A living memory and world-building layer for your AI: cards, worlds, personas and agent dispatch.
The game engine built for AI. Any agent makes a multiplayer game and publishes it.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to create complete Ren'Py visual novel games with AI-generated images, dialogue, branching stories, and web deployment.64MIT
- AlicenseNot gradedqualityDmaintenanceA Unity C# plugin that enables AI assistants to write, edit, and test visual novel scripts via the Model Context Protocol, with tools for script CRUD, playback control, input simulation, and visual verification.2MIT
- FlicenseAqualityDmaintenanceAn MCP server that provides a visual novel world engine, enabling AI clients to drive interactive galgame experiences with narrative consistency.31-
- FlicenseNot gradedqualityBmaintenanceEnables AI agents and other clients to play Ren'Py visual novel games by reading story text and making choices.-