Civ6 MCP CN
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., "@Civ6 MCP CNshow me the game overview and list my units"
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.
Civ6 MCP CN
让 AI 通过 MCP 读取《文明 VI》局面、执行操作,并持续检查回合决策有没有遗漏。
English · 安装与排障 · 上游与改动来源 · 参与贡献
本项目是 Liam Wilkinson / civ6-mcp 的独立维护衍生版本,保留原作者 MIT 许可证。这个版本重点整理中文叙事、Windows 连接稳定性、原版规则集兼容与长期决策辅助;MCP 接口、FireTuner 协议实现等基础能力来自上游。
当前为 0.1.0 首个公开版本。离线测试结果见 验证记录。本轮没有连接真实游戏验证,不能把单元测试通过解释成已实证通关或稳定支持全部规则集。
能做什么
能力 | 说明 |
读写游戏状态 | 查询单位、城市、地图、科技、外交,执行移动、生产、研究和回合推进 |
决策纪律 | 回合完成度门禁、闲置平民提醒、城市扩张检查、战斗风险拦截 |
长期状态 | 世界模型、计划、日记、复盘与跨局教训,减少上下文压缩后的遗忘 |
战略辅助 | 局势分档、分数差距分析、文明套件、科技/政策/区域建议 |
多客户端连接 | 单个本地 HTTP 服务共享 FireTuner 连接;也提供 stdio 与命令行入口 |
游戏操作通过 FireTuner/Lua 接口完成,核心读写不需要视觉模型。部分菜单操作、截图及恢复功能依赖可选平台组件。建议与门禁属于启发式辅助,仍需检查真实游戏反馈。
Related MCP server: civ6-mcp
先决条件
Python 3.12+,以及能安装 Python 依赖的环境。
已安装并自行拥有的《文明 VI》;开启 Tuner,载入单人存档。
一个支持 MCP 的客户端。模型账户和 API 由客户端自行配置;本仓库不提供账户或 API 额度。
Windows 是本地改动的主要使用环境;macOS/Linux 支持继承自上游,衍生版本尚未逐个平台实机复测。
**规则集边界:**随仓库提供的规则快照来自 RULESET_STANDARD。风云变幻、迭起兴衰及 MOD 的机制不应直接套用这些静态数值;请根据加载的规则集重新导出数据,参见 安装与排障。
1. 安装
公开仓库:2962348318-del/civ6-mcp-cn。从仓库页面下载 ZIP 并解压,或运行 git clone https://github.com/2962348318-del/civ6-mcp-cn.git。随后在项目根目录运行:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
.\.venv\Scripts\python.exe scripts/doctor.pymacOS/Linux 将 Python 路径替换为 .venv/bin/python。
已安装 uv 时,也可以使用:
uv sync --frozen
uv run python scripts/doctor.pydoctor.py 只检查依赖、规则文件和工具注册,不会连接或启动游戏。如需 Windows OCR/菜单自动化组件,执行 python -m pip install -e ".[launcher-windows]",其中 python 应为当前虚拟环境的解释器。
2. 连接游戏
在游戏选项中打开 Tuner,关闭自动结束回合,重启游戏并载入存档。Windows 安装要求与上游说明见 安装与排障。Tuner 会禁用成就。
推荐用一个共享服务,避免多个客户端竞争游戏的 4318 端口:
.\.venv\Scripts\python.exe tools/serve_http.py --port 8123在 MCP 客户端中填入:
{
"mcpServers": {
"civ6": {
"type": "http",
"url": "http://127.0.0.1:8123/mcp"
}
}
}客户端若只支持 stdio,使用 stdio 示例,将解释器、项目路径替换为自己的绝对路径。共享 HTTP 与独占 stdio 二选一;关闭 SDK 的 FireTuner GUI,保持一个游戏连接拥有者。
3. 开始使用
先让客户端调用 get_game_overview,核实规则集、回合和玩家,再调用 get_units、get_cities。接手已有对局时,先读 get_diary。完整回合流程见 AGENTS.md。
没有游戏也能查看工具列表和参数:
.\.venv\Scripts\python.exe tools/civ.py --list
.\.venv\Scripts\python.exe tools/civ.py --schema unit_action连接准备好后,可从命令行读取概览:
.\.venv\Scripts\python.exe tools/civ.py get_game_overview这条实际调用会尝试复用本地 HTTP 服务,或启动队列 driver 并连接游戏。与离线自检的行为不同。
开发与测试
.\.venv\Scripts\python.exe -m pip install pytest
.\.venv\Scripts\python.exe -m pytest -q默认只收集 tests/;scripts/test_connection.py 是需要真实游戏的手动脚本。CI 执行离线测试、导入检查及安装包检查,不声称覆盖完整对局。
src/civ_mcp/ MCP 服务、Lua 查询、连接与策略模块
tests/ 离线单元与回归测试
tools/ HTTP 服务与命令行/队列工具
docs/gamedata/ 原版规则快照,构建 wheel 时随包分发
data/strategy/ 文明策略模板
examples/ 可移植配置示例运行状态默认写入用户目录 .civ6-mcp;CIV_MCP_WORKSPACE 可以指定独立目录。命令行 driver 的临时队列写入项目 var/。这些运行文件均不应提交到公共仓库。
开源与来源
保留 LICENSE 中的原作者版权及 MIT 授权;衍生版本的范围见 NOTICE 和 来源记录。游戏客户端、个人存档、真实对局日志、本机账号配置与 Git 历史均不在本次源码导出中。随包规则快照是规则数据,不包含游戏安装文件或美术资源。
Civilization VI 及相关名称属于其权利人。本项目是社区工具,与 Firaxis、2K、OpenAI 及上游作者没有官方隶属或背书关系。
Available Tools
99 toolsappoint_governorA
Appoint a new governor.
Args:
governor_type: e.g. GOVERNOR_THE_EDUCATOR (Pingala), GOVERNOR_THE_DEFENDER (Victor)
Requires available governor points. Use get_governors to see options.
| Name | Required | Description | Default |
|---|---|---|---|
| governor_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the key behavioral requirement (governor points) and provides example values. It does not detail outcomes or reversibility, but is adequate for a simple appointment action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words; the main action is front-loaded and the parameter description is concise yet informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the prerequisite and parameter examples, and an output schema exists to document return values. It could mention restrictions like not appointing if a governor already exists, but overall is complete for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description adds concrete examples (e.g., GOVERNOR_THE_EDUCATOR (Pingala), GOVERNOR_THE_DEFENDER (Victor)), which is essential for correct parameter selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Appoint a new governor' with specific examples, defining the action and resource. It distinguishes from sibling tools like promote_governor and get_governors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions prerequisite 'Requires available governor points' and directs to get_governors for options, telling the agent when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assess_attackARead-only
战前评估:这座敌城能不能打。四档判定(可打/需准备/不推荐/会全灭)+理由+替代方案。
城防值/城血/城墙**自动向引擎实读**(城在视野内即可),连同我方兵力、
守军、补给线一起算出"每回合净伤"和破城回合数:净伤 ≤ 城市回血(20/回合)
直接判 🔴——这正是罗马局 T177-191 伦敦的情形(CS55 火枪手打城防 80,
每击 10-15 伤,城市回满)。城不在视野时城防读不到,此时【不会给绿灯】。
参数只在你有更新的侦察情报时才需要显式传(显式值优先)。宣战前必调。
| Name | Required | Description | Default |
|---|---|---|---|
| city_x | Yes | ||
| city_y | Yes | ||
| wall_hp | No | ||
| city_name | No | ||
| population | No | ||
| wall_max_hp | No | ||
| defense_strength | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, and the description adds genuinely new behavioral rules: values are auto-read from the engine when the city is in sight, city defense cannot be read out of sight, and no green light will be given in that case. It also discloses the decision math (net damage vs 20/turn regen) that explains when a 🔴 verdict is produced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verdict tiers and the mandatory pre-war call, which is the right ordering. The Rome/London anecdote is illustrative but adds length that a shorter rule statement could have carried.
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?
An output schema exists, so return values need not be explained, and the description covers preconditions, visibility constraints, and the verdict semantics well. The remaining gap is the unexplained optional parameters, which for a 7-param tool matters.
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 0%, so the description must carry the parameter burden. It does convey the critical override semantic (engine-read defaults, explicit values take priority, overrides only needed with fresh scouting), but it never explains individual fields such as wall_hp vs wall_max_hp, defense_strength, population, or city_name.
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 and resource ('战前评估:这座敌城能不能打') and immediately names the output shape (four-tier verdict + reasons + alternatives). It is clearly distinguishable from siblings like suggest_siege_plan or get_power_balance because it is a go/no-go judgement on a specific city.
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?
'宣战前必调' gives an explicit mandatory trigger, and the description explains when parameters must be supplied ('only when you have newer scouting intel'). It does not name a sibling alternative (e.g. suggest_siege_plan) for the planning case, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assess_loyalty_flipARead-only
忠诚翻转评估:敌方城市能不能不费一兵一卒翻过来。 city_population 从你的侦察读(城市横幅显示人口)。 ⚠️ 仅在本规则集有忠诚度机制时可用 —— 忠诚度是 Rise & Fall 的机制, 原版(RULESET_STANDARD)上不存在,此时本工具会明确拒答而不是给你 一个凭空算出来的数。 ⚠️ 敌方其他城市的支撑压力无法自动获取,估算偏乐观 —— 目标城离敌方 腹地越近,实际越难翻。
| Name | Required | Description | Default |
|---|---|---|---|
| city_x | Yes | ||
| city_y | Yes | ||
| city_name | No | ||
| city_population | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description adds real behavioral depth by disclosing two failure modes: an explicit refusal on RULESET_STANDARD rather than a fabricated number, and inherent estimation bias because support pressure from other enemy cities cannot be fetched. That is exactly the kind of context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, followed by the parameter hint and two clearly marked warnings. Every element earns its place, though the wording is slightly longer than necessary for the amount of information conveyed.
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?
An output schema exists, so return-value explanation is unnecessary, and the description covers the ruleset gate and accuracy limits well. The only remaining gap is coordinate/name parameter meaning for a tool with a 0%-documented schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it only explains one of four parameters — where city_population comes from (the city banner shown by your recon). city_x, city_y, and city_name get no semantic explanation, though coordinates and an optional name are largely self-evident.
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 opens with a specific verb and resource: whether an enemy city can be flipped by loyalty 'without spending a single unit'. That scope is unique among the siblings (assess_attack, suggest_siege_plan, get_power_balance), so an agent can route to it without comparing schemas.
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?
It states the prerequisite for use — the ruleset must have the loyalty mechanic (Rise & Fall) — and warns that the answer is optimistic when the target sits deep in enemy territory. It gives clear context for when to call, but does not name an alternative tool for the no-loyalty case beyond saying it will refuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assess_settle_locationARead-only
铺城位置六维深评(产出之外):战略资源/奢侈覆盖/防御地形/扼守/ 忠诚度/卡位。对 get_settle_advisor 给出的候选点逐个调用,再定最终落点。
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds useful context by specifying what is assessed (strategic resources, luxury coverage, defensive terrain, etc.) and that it is 'beyond yields'. It does not describe performance or output format, but the output schema covers 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?
Two compact sentences front-load the six dimensions and then the workflow. Every part earns its place, with no redundant 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?
Given a read-only assessment tool with an output schema, the description covers purpose, dimensions, and usage sufficiently. The only missing piece is parameter explanation, which is partially addressed by the workflow context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should explain the x and y parameters. It partially compensates by implying they are coordinates of a candidate point from get_settle_advisor, but it never states what coordinate system or format is expected, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: '六维深评' (six-dimensional deep assessment) of a settle location, and lists the six dimensions evaluated. It also distinguishes itself from get_settle_advisor by positioning itself as the evaluator of that tool's candidates.
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?
It explicitly says to call this for each candidate point returned by get_settle_advisor and then decide the final location, giving clear workflow context. It does not mention when not to use it or other alternatives like get_global_settle_advisor, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_governorA
Assign an appointed governor to a city.
Args:
governor_type: The governor type (from get_governors output)
city_id: The city ID (from get_cities output)
Governor must already be appointed. Takes several turns to establish.
| Name | Required | Description | Default |
|---|---|---|---|
| city_id | Yes | ||
| governor_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses precondition (governor must be appointed) and behavioral trait (takes several turns). Could also mention side effects or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences plus parameter list. All information is front-loaded and no unnecessary text. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters and no enums, the description covers preconditions and latency. An output schema exists (not shown) so return format is handled elsewhere. Could briefly mention error cases or success indicators.
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 0% (no descriptions in input schema). Description adds meaning by specifying sources: 'governor_type (from get_governors output)' and 'city_id (from get_cities output).' This helps the agent select correct values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Assign an appointed governor to a city,' using a specific verb and resource. It distinguishes from siblings like 'appoint_governor' and 'promote_governor' by implication but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: 'Governor must already be appointed' and 'Takes several turns to establish.' This guides the agent on when to use (after appointment) and what to expect (latency), though no explicit alternatives or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
change_governmentA
Switch to a different government type.
Args:
government_type: e.g. GOVERNMENT_CLASSICAL_REPUBLIC, GOVERNMENT_OLIGARCHY
Use get_policies to see current government. First switch after
unlocking a new tier is free (no anarchy).
| Name | Required | Description | Default |
|---|---|---|---|
| government_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavior. It mentions 'no anarchy' for first switch, implying penalties for subsequent ones, but does not detail side effects like anarchy duration or other consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with clear purpose front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple action and presence of output schema, description covers the essential: purpose, parameter hints, and a key behavioral note. Missing details about consequences of non-first switches, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter government_type has no schema description (0% coverage). Description gives examples but no full list of valid values, leaving ambiguity. Compensates partially but insufficiently.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Switch to a different government type' with specific verb and resource. Examples given, and it distinguishes from related tools like set_policies and choose_dedication.
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?
Tells when to use ('Use get_policies to see current government') and provides a behavioral tip about first switch being free. Does not explicitly mention alternatives or when not to use, but context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
choose_dedicationA
Choose a dedication/commemoration for the current era.
Args:
dedication_index: The index of the dedication (from get_dedications output)
Use get_dedications first to see available options and their bonuses.
| Name | Required | Description | Default |
|---|---|---|---|
| dedication_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description only says 'choose a dedication' without mentioning side effects, irreversibility, or costs. While the action is simple, additional transparency about the effect would improve it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with a clear title line and structured Args section, front-loading essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description fully explains how to use it and what prerequisite step is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the parameter by explaining that dedication_index comes from get_dedications output, which is not evident from the schema alone (0% coverage).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('choose') and the resource ('dedication/commemoration for the current era'), distinguishing it from sibling tools like get_dedications and choose_pantheon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use get_dedications first to see available options, providing clear prerequisite and usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
choose_pantheonA
Found a pantheon with the specified belief.
Args:
belief_type: e.g. BELIEF_GOD_OF_THE_FORGE, BELIEF_DIVINE_SPARK
Use get_pantheon_beliefs first to see options. Requires enough faith
and no existing pantheon.
| Name | Required | Description | Default |
|---|---|---|---|
| belief_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially compensates by stating requirements (faith, no existing pantheon) but does not disclose outcomes like faith consumption or irreversibility. More detail on side effects would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at three sentences plus an Args line, with no redundant information. It front-loads the core action and immediately follows with critical usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, clear preconditions) and the existence of an output schema, the description adequately covers the action, prerequisites, and related tool. Minor missing details like return behavior are acceptable for this scope.
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 provides concrete examples ('e.g. BELIEF_GOD_OF_THE_FORGE, BELIEF_DIVINE_SPARK') and directs the agent to 'get_pantheon_beliefs' for options, adding meaning beyond the bare schema definition of a string parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Found' (likely meaning 'choose') and specifies the resource 'pantheon with the specified belief.' It distinguishes from siblings like 'found_religion' and 'get_pantheon_beliefs' by focusing on the pantheon founding action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states prerequisites ('Requires enough faith and no existing pantheon') and suggests using 'get_pantheon_beliefs' first to see options, providing clear guidance on when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
city_actionA
Issue a command to a city.
Args:
city_id: City ID (from get_cities output)
action: Currently supported: 'attack' (city ranged attack)
target_x: Target X coordinate (required for attack)
target_y: Target Y coordinate (required for attack)
For attack: city must have walls and not have fired this turn.
Range is 2 tiles from city center.
For captured/disloyal city decisions (city_id is ignored, uses pending city):
- 'keep': Keep the city (works for both captured and loyalty-flipped cities)
- 'reject': Reject/free a disloyal city (loyalty flip only)
- 'raze': Raze a captured city (military conquest only)
- 'liberate_founder': Liberate to original founder
- 'liberate_previous': Liberate to previous owner
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| city_id | Yes | ||
| target_x | No | ||
| target_y | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses key behaviors: attack requires walls and not fired this turn, range 2; city_id is ignored for city decisions. Missing details on success/failure or irreversible effects, but generally good.
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?
Well-structured with sections for attack and city decisions. Somewhat verbose but all information is relevant. Front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers inputs and behavior thoroughly. Output schema exists, so return values need not be explained. No critical gaps identified.
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 0%, so description fully compensates. It explains each parameter: city_id source, action list, target coordinates required for attack. Adds meaning beyond the schema's type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Issue a command to a city' and lists specific actions (attack, keep, reject, raze, etc.), making the purpose clear. It does not explicitly differentiate from sibling tools, but the variety of actions makes it distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage guidance, such as requirements for attack and explanations for captured/disloyal city actions. 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.
dismiss_popupA
Dismiss any blocking popup in the game UI.
Call this if you suspect a popup (e.g. historic moment, boost notification) is blocking interaction.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description lacks details on side effects (e.g., what happens if no popup, safety of repeated calls). Only states the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-parameter action, description covers purpose and when to use; minor gap in behavioral guardrails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%; description adds no parameter info, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool dismisses blocking popups in the game UI with specific examples (historic moment, boost notification), and no sibling tool serves this function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit instruction to call when suspecting a popup is blocking interaction, but does not specify when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
end_turnADestructive
End the current turn.
Make sure you've moved all units, set production, and chosen research
before ending the turn.
All 5 reflection parameters are required and must be non-empty.
These form the per-turn diary — your persistent memory across sessions:
tactical: What happened this turn — combat, movements, improvements.
strategic: Current standing vs rivals — yields, city count, victory path.
tooling: Tool issues or observations. Write "No issues" if none.
planning: Concrete actions for the next 5-10 turns.
hypothesis: Predictions — enemy behavior, resource needs, timelines.
IMPORTANT: Reflections are recorded BEFORE the AI processes its turn.
Anything that surfaces after end_turn (diplomacy proposals, AI movements,
events reported in the turn result) belongs in the NEXT turn's diary.
If end_turn is blocked and you call it again after resolving the blocker,
the diary entry from the first call is kept — do not repeat reflections.
| Name | Required | Description | Default |
|---|---|---|---|
| tooling | No | ||
| planning | No | ||
| tactical | No | ||
| strategic | No | ||
| hypothesis | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true. Description adds context about reflection recording timing and diary handling across blocked calls, but does not significantly expand beyond what annotations imply.
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?
Well-structured with clear sections, but slightly verbose with redundant explanations. Could tighten without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, prerequisites, parameter semantics, and edge cases. Given 5 parameters and no output schema, description is thorough and sufficient for correct tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, description fully explains each parameter's purpose and content requirements, adding essential meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool ends the current turn, with a specific verb-resource pair. It distinguishes from siblings by being the turn-ending action, and no other sibling tool performs this function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it: after moving units, setting production, and choosing research. Also explains handling of blocked calls and diary persistence, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fill_idle_productionA
Give every idle city something to build, in one call.
Walks all your cities, finds the ones producing nothing, and starts the first
basic building each one can actually make (monument → granary → water mill →
sewer → builder as a fallback).
Why this exists: idle production is not banked, it evaporates that turn. At 20
cities that is an annoyance; at 90+ the end_turn gate names a dozen idle cities
per turn and the per-city set_city_production tool would need a dozen round
trips to clear it. The choice itself carries no strategic content — cities that
need a real decision (spaceport city, front-line production) are never idle in
the first place, so this never touches them.
Returns a per-city list of what was started, plus any city with nothing
buildable at all (those need manual handling).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and does so well: it explains the city-walking behavior, the exact fallback order of buildings, that idle production is not banked, and that the return includes cities with nothing buildable. It clearly implies a game-state mutation without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and remains well structured. It is somewhat longer than strictly necessary, but the rationale and return-value details are useful rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a zero-parameter mutation tool with no annotations and an existing output schema, the description provides everything an agent needs: purpose, usage context, alternative tool, fallback selection order, and the shape of the response including unbuildable cities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to explain; the baseline for zero-param tools is 4. The description appropriately focuses on behavior rather than inventing parameter details.
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 verb and resource: it walks all cities, identifies idle ones, and starts the first buildable basic building. It explicitly contrasts this with the per-city set_city_production tool, so an agent can distinguish the two without inspecting schemas.
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?
It says exactly when to use this tool (idle cities whose production is evaporating) and when not to worry about it (cities that need strategic decisions are never idle). It also names the alternative, set_city_production, and explains why this bulk tool exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
form_allianceA
Form an alliance with another civilization.
Args:
other_player_id: The player ID (from get_diplomacy output)
alliance_type: One of: MILITARY, RESEARCH, CULTURAL, ECONOMIC, RELIGIOUS
Requires declared friendship and Diplomatic Service civic.
Use get_trade_options to check alliance eligibility first.
| Name | Required | Description | Default |
|---|---|---|---|
| alliance_type | No | MILITARY | |
| other_player_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It mentions prerequisites but doesn't disclose what happens on success or failure (e.g., whether an alliance is formed immediately or a confirmation needed). It also doesn't describe side effects. Adequate but not thorough.
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, using five sentences to cover purpose, parameters, and prerequisites. It is front-loaded and every sentence contributes essential information without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description doesn't need to explain return values. It covers prerequisites, parameter sourcing, and eligibility check. Minor omission: it doesn't address what happens if conditions fail, but overall it is complete for tool invocation.
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 significant value beyond the schema, explaining each parameter: 'other_player_id: The player ID (from get_diplomacy output)' and 'alliance_type: One of: MILITARY, RESEARCH, CULTURAL, ECONOMIC, RELIGIOUS.' This compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Form an alliance with another civilization.' It specifies the verb and resource, and the arguments list distinguishes it from sibling tools like propose_peace or propose_trade.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit prerequisites: 'Requires declared friendship and Diplomatic Service civic.' It also directs the user to check eligibility via get_trade_options. While it doesn't explicitly state when not to use, the guidelines are clear and helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
found_religionB
Found a religion with a chosen name, follower belief, and founder belief.
Args:
religion_type: e.g. RELIGION_HINDUISM, RELIGION_BUDDHISM, RELIGION_ISLAM
follower_belief: e.g. BELIEF_WORK_ETHIC, BELIEF_CHORAL_MUSIC
founder_belief: e.g. BELIEF_STEWARDSHIP, BELIEF_CHURCH_PROPERTY
Requires your Great Prophet to have already activated on a Holy Site
(via UNITOPERATION_FOUND_RELIGION). Use get_religion_beliefs
first to see available options.
| Name | Required | Description | Default |
|---|---|---|---|
| religion_type | Yes | ||
| founder_belief | Yes | ||
| follower_belief | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the prerequisite but not other behavioral traits like irreversibility, effects of already founding a religion, or error conditions. For a mutation action, more transparency is needed.
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 succinct with three focused sentences: purpose, parameter listing, and prerequisite. It uses a clear bullet-like list for args. No filler, but the arg examples could be integrated more smoothly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are covered there. The description provides prerequisite context and suggests a related tool. Missing details on failure modes or state changes. Adequate but not comprehensive for a complex game action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% parameter descriptions. The description adds example values for each parameter (e.g., RELIGION_HINDUISM, BELIEF_WORK_ETHIC), which helps the agent understand the expected format. However, it does not enumerate all possible values or explain semantics fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Found a religion' with specific parameters. It distinguishes from sibling tools (e.g., get_religion_beliefs) by being the action to create a religion. However, it could be more explicit about the result or effect.
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 specifies the prerequisite: Great Prophet must have activated on a Holy Site. It also advises using get_religion_beliefs first to see options. This guides the agent on when to use the tool. No explicit when-not, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_builder_tasksARead-only
Get a prioritized task board for all your builders.
Scans your territory for tiles needing improvements and matches them
with idle builders. Like the builder lens in the UI — shows what to
build where and which builder is closest.
Priority tiers:
- URGENT: Pillaged improvements (yield loss), unimproved strategic resources
- HIGH: Unimproved luxury/bonus resources
- NORMAL: Empty tiles that could benefit from farms/mines/lumber mills
Call this before issuing builder orders each turn.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which is consistent. The description adds behavioral context: scanning tiles and idle builders, matching them, and defining priority tiers. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with four sentences, front-loading the purpose, and using bullet-like formatting for tiers. Every sentence is informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, existing output schema, and clear annotations, the description is complete. It covers what the tool does, when to use it, and what to expect (priority tiers).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (empty schema), so schema coverage is 100% by default. The description adds value by explaining the output (priority tiers) beyond what the empty schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a prioritized task board for all your builders,' specifying the action and resource. It distinguishes itself from siblings by likening it to the builder lens in the UI, which is unique among many get_* 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?
Explicitly says 'Call this before issuing builder orders each turn,' providing clear when-to-use guidance. No alternatives are mentioned, but the context implies it's the go-to for builder task prioritization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_citiesARead-only
List all your cities with yields, population, production, growth, and loyalty.
Each city shows its id (needed for production commands). Cities losing loyalty show warnings with flip timers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context beyond annotations: it notes cities show id for production commands and loyalty warnings with flip timers. Does not contradict readOnlyHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loading purpose and key details, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers return values (yields, population, etc.) and adds id and loyalty warnings. Output schema exists but is not shown; description is sufficient for understanding tool output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. Baseline score of 4 applies as description need not add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all cities with specific attributes (yields, population, etc.) and includes id and loyalty warnings, distinguishing it from sibling tools that focus on individual aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for getting an overview of all cities, but does not explicitly state when to use this tool versus more specific siblings (e.g., get_city_production) or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_city_productionARead-only
List what a city can produce right now.
Args:
city_id: City ID (from get_cities output)
Returns available units, buildings, and districts with production costs.
Call this when a city finishes building or to decide what to produce next.
| Name | Required | Description | Default |
|---|---|---|---|
| city_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description confirms a read-only operation (matching readOnlyHint=true) and details the return content: 'available units, buildings, and districts with production costs.' No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences and one argument list, no wasted words. Front-loads the core action and follows with a helpful usage note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 param), readOnly annotation, and presence of output schema, the description adequately covers purpose, usage, and return data. Could briefly mention cost details or constraints, but sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema lacks parameter descriptions (0% coverage), but the description adds 'city_id: City ID (from get_cities output),' providing source and type info beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'List' and specifies the resource 'what a city can produce right now.' This clearly distinguishes it from writing tools like set_city_production and listing tools like get_cities, which are 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?
Explicitly states when to call: 'when a city finishes building or to decide what to produce next.' It also links city_id to get_cities output. No exclusions or alternatives are mentioned, but the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_city_statesARead-only
List known city-states with envoy counts and types.
Shows envoy tokens available, each city-state's type (Scientific,
Industrial, etc.), how many envoys you've sent, and who is suzerain.
Use send_envoy to send an envoy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds detail on the specific data shown (envoy counts, types, sent, suzerain) but does not disclose additional behavioral traits beyond reading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, then specific details. No wasted words, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no parameters, annotations provide readOnlyHint, output schema exists, and description covers all necessary information about what the tool does and returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No input parameters, so description does not need to explain parameter usage. It adds value by describing the output fields, which is helpful given the tool's simplicity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'List' and resource 'city-states', with specific details on envoy counts, types, and suzerain status. Distinguishes from sibling tools like 'get_cities' and 'send_envoy'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use 'send_envoy' for sending an envoy, providing context for when to use this listing tool versus an action tool. No exclusions mentioned but 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_dedicationsA
Get current era age, available dedications, and active ones.
Shows era score thresholds, whether you're in a Golden/Dark/Normal age,
and lists available dedication choices with their bonuses.
Use choose_dedication to select one when required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes the output but does not explicitly state safety or side-effect behavior. Acceptable but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with main purpose, no fluff. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an existing output schema, the description sufficiently explains the tool's return information: era age, dedications, bonuses, and links to the sibling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so baseline is 4. Description adds value by detailing what the output contains (era age, dedications, bonuses), which helps the agent understand the return value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves current era age, dedications, and bonuses. It explicitly distinguishes from sibling choose_dedication by mentioning that tool for selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: use this to view dedications, and 'Use choose_dedication to select one when required.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diaryARead-only
Read diary entries for game memory.
Args:
last_n: Number of most recent entries to return (default 5, max 50).
Used when turn/from_turn/to_turn are not specified.
turn: Return the single entry for this turn number.
from_turn: Return entries from this turn onward (inclusive).
to_turn: Return entries up to this turn (inclusive).
Auto-detects the current game from the live connection. Each game has
its own diary file (keyed by civ + random seed).
Call this at the start of a session or after context compaction to
restore strategic memory from previous turns.
| Name | Required | Description | Default |
|---|---|---|---|
| turn | No | ||
| last_n | No | ||
| to_turn | No | ||
| from_turn | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description adds valuable context: auto-detects current game, each game has its own diary file keyed by civ and random seed. This explains state isolation and persistence beyond what annotations provide.
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 (about 10 lines) and well-structured: single-line purpose, bulleted args, then contextual notes. Every sentence adds value; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (so return values are documented separately) and annotations confirm read-only behavior, the description covers all needed aspects: purpose, parameter semantics, usage context, and behavioral scoping (auto-detection, per-game). No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries full burden. It thoroughly explains each parameter: last_n (default 5, max 50, used when turn/from_turn/to_turn not specified), turn, from_turn, to_turn. Defaults and usage conditions are clearly stated.
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 explicitly states 'Read diary entries for game memory', clearly identifying the verb (read) and resource (diary entries). This tool is unique among siblings; no other tool handles diary entries, so differentiation is inherent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides specific guidance: 'Call this at the start of a session or after context compaction to restore strategic memory from previous turns.' It also explains auto-detection and per-game scoping. However, it does not explicitly state when not to use this tool or compare it to alternatives, though none exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diplomacyARead-only
Get diplomatic status with all known civilizations.
Shows diplomatic state (Friendly/Neutral/Unfriendly), relationship modifiers with scores and reasons, grievances, delegations/embassies, and available diplomatic actions you can take. Also shows visible enemy city details (name, population, loyalty, walls).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, and description adds detail on returned data (modifiers, grievances, cities) and mentions 'visible enemy city details', implying constraints on what is shown. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with purpose, then specific details. Each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only data retrieval tool with no parameters and an output schema, the description thoroughly covers what the tool returns, including limitations (visible cities). No 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?
No parameters, so schema covers everything. Description adds value by explaining what the output contains, which is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'get' with specific resource 'diplomatic status with all known civilizations'. Lists what is shown (state, modifiers, grievances, etc.), distinguishing it from other get_* 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?
Describes what the tool does but no guidance on when to use over alternatives like get_pending_diplomacy or respond_to_diplomacy. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_district_advisorARead-only
Show best tiles to place a district with adjacency bonuses.
Args:
city_id: City ID (from get_cities)
district_type: e.g. DISTRICT_CAMPUS, DISTRICT_HOLY_SITE, DISTRICT_INDUSTRIAL_ZONE
Returns valid placement tiles ranked by adjacency bonus.
Use set_city_production with target_x/target_y to build the district.
| Name | Required | Description | Default |
|---|---|---|---|
| city_id | Yes | ||
| district_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the description doesn't need to address side effects. It adds that the tool 'Returns valid placement tiles ranked by adjacency bonus', which is additional behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of a single-sentence purpose followed by a clear Args section. No extraneous information, and the key action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately explains the return value (ranked valid placements) and how to use the result (with set_city_production). It also mentions prerequisites (city_id from get_cities), making it complete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by providing the source for city_id (from get_cities) and examples for district_type. This adds meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Show' and resource 'best tiles to place a district with adjacency bonuses'. It distinguishes from sibling tools like get_settle_advisor (cities) and get_wonder_advisor (wonders) by being specific to districts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to see best district placement) and what to do next (use set_city_production). It doesn't explicitly state when not to use it, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_empire_resourcesARead-only
Get a summary of all resources in and near your empire.
Shows owned resources (improved/unimproved) grouped by type, and unclaimed resources near your cities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true; description adds context about grouping by type and including unclaimed resources. No contradictions. Additional behavioral traits beyond annotations are disclosed.
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 succinct sentences that convey the tool's purpose and the structure of its output. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an existing output schema, the description adequately explains what the tool returns: owned resources grouped by type and unclaimed resources near cities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in the schema; baseline 4 applies. Description correctly provides no parameter details since none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool retrieves a summary of empire resources, specifying scope 'in and near your empire'. Distinct from sibling tools like get_cities or get_units.
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?
Describes what it does but provides no explicit guidance on when to use it versus alternative tools like get_strategic_map or get_settle_advisor. Use case is implied but not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_expert_playbookARead-only
查高玩知识库:人类社区共识的通用打法原理(文明无关)。
与 get_strategy_notes 互补:那边是本文明的套件与原理,这边是换任何
文明都成立的判断力 —— 扩张节奏基准/蛮族机制/宣战窗口/难度加成表/
胜利路线检查表。每条带置信度与来源(规则机制/社区共识/本机实证)。
无参调用返回目录;topic 按主题查;turn 传当前回合可过滤掉不在
适用窗口的条目。定线、开战、扩张这类重大决策前值得对一遍。| Name | Required | Description | Default |
|---|---|---|---|
| turn | No | ||
| topic | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds real context beyond that: each entry carries a confidence level and a source tag (rule mechanic / community consensus / local empirical), and a turn value filters out entries outside their applicable window. It does not, however, say anything about result volume, ordering, or what an empty result means.
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?
Dense but purposeful: the resource and its scope come first, the sibling differentiation second, the invocation modes third, and the decision trigger last. Every clause carries information; the only slight looseness is the long enumeration of covered topics.
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 an output schema present the description needn't explain return structure, and it still characterizes what entries contain (confidence + source). Combined with the mode explanation, an agent has enough to call it correctly; the missing piece is any hint about valid topic vocabulary for the one free-form string parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the two parameters (turn, topic) only have type/default in the schema, so the description must compensate. It does explain the semantics of each mode — no-arg returns the catalog, topic looks up by subject, turn filters by applicability window — but gives no example topic values or accepted formats, so an agent still has to guess what strings are valid.
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 and resource (查高玩知识库 — retrieve the expert playbook) and enumerates the actual content: expansion pacing baselines, barbarian mechanics, war-declaration windows, difficulty bonus tables, victory-route checklists. It explicitly contrasts itself with the sibling get_strategy_notes (civilization-specific vs. civilization-agnostic), so an agent can pick between them without opening either schema.
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?
Gives concrete when-to-use guidance ('worth reviewing before major decisions like settling, declaring war, expanding') and names the alternative (get_strategy_notes) with the condition that selects it. It also spells out the three invocation modes, so the agent knows how to call it in each situation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_game_overviewARead-only
Get a high-level summary of the current game state.
Returns turn number, civilization, yields (gold/science/culture/faith), current research and civic, and counts of cities and units. Call this first to orient yourself.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Read-only annotation is already provided; description reinforces this by describing a non-destructive summary. Adds value by detailing what information is returned, which annotations do not cover.
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?
Extremely concise: two sentences plus a bullet list. Every word adds value, no redundancy. Purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with no parameters and an output schema (implied), description is fully sufficient. It explains return values and usage timing without missing details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100% (empty). Baseline for zero parameters is 4, and description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it provides a 'high-level summary of the current game state' and lists specific elements (turn number, civilization, yields, etc.). This distinguishes it from other get_* tools that focus on specific aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Call this first to orient yourself,' providing clear context for when to use. Does not mention alternatives or when not to use, but the context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_global_settle_advisorARead-only
Find the best settle locations across the entire revealed map.
Unlike get_settle_advisor (which searches near a specific settler),
this scans all revealed land for the top 10 settle candidates.
Use this when deciding WHERE to send a settler, not just where to settle.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, indicating safe read operation. Description adds context: scans all revealed land for top 10 candidates, which is useful behavioral detail beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, no wasted words. Efficiently conveys core function and differentiator.
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?
Tool has zero parameters and output schema exists (not shown but indicated). Description fully covers what the tool does, when to use it, and how it differs from a sibling. Complete for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema (100% coverage), so description doesn't need parameter details. Baseline 4 is appropriate as description adds no parameter-specific info but is not required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Find' and resource 'best settle locations across the entire revealed map'. Clearly distinguishes from sibling get_settle_advisor by contrasting scope (global vs. near a settler).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'when deciding WHERE to send a settler, not just where to settle'. Names alternative tool and explains their difference, providing clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_governorsARead-only
Get governor status, appointed governors, and available types.
Shows governor points, currently appointed governors with assignments,
and governors available to appoint. Use appoint_governor to appoint one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. Description adds context about what information is returned but does not disclose additional behavioral traits (e.g., no state changes, no auth needs).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no wasted words. Front-loaded with main action, then details, then reference to sibling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists and description adequately describes return content (governor points, appointments, available types). No prerequisites or error conditions mentioned, but sufficient for a simple read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. The description adds value by explaining what the output includes, but no parameter details are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verbs ('Get governor status') and resource ('governors'), clearly listing what is shown (points, appointed governors, available types). It distinguishes from sibling tools like appoint_governor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies when to use this tool (to view governors) and references appoint_governor as an alternative for appointing. However, it does not explicitly state when not to use it or other exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gp_advisorA
Show best cities to activate a Great Person, ranked by suitability.
Args:
unit_index: The Great Person unit's index (from get_units output).
Lists all cities with the matching district (e.g., campuses for Great Scientists),
showing which ones the GP can activate on, distance, city yield, and great work
slot availability for cultural GPs.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries burden. It discloses output details (matching district, distance, yield, great work slots) but does not mention preconditions (e.g., unit existence), side effects (none expected), or whether it's read-only. Adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus an Args line, front-loaded with purpose. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with one parameter and an output schema. Description covers input source and output details. Could mention edge cases (no available cities) but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no schema descriptions), but the tool description explicitly explains the parameter: 'unit_index: The Great Person unit's index (from get_units output).' This adds meaning beyond the schema's type-only info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Show best cities' and resource 'Great Person activation', with ranking by suitability. Distinguishes from siblings like get_great_people (lists GPs) and get_settle_advisor (for settling cities).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage by explaining the tool's function: listing cities with matching district and details. It provides context (e.g., campuses for scientists) but does not explicitly state when to use vs alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_great_peopleARead-only
See available Great People and recruitment progress.
Shows which Great People are available, their recruitment cost, and which civilization (if any) is recruiting them.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. The description adds value by detailing what information is shown (availability, recruitment cost, recruiting civilization), which is beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the main purpose and then provide details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and existing output schema, the description is complete. It covers the key aspects of the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Baseline score of 4 is appropriate as there is no need for additional parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows available Great People and recruitment progress. It distinguishes from sibling action tools like recruit_great_person, patronize_great_person, and reject_great_person.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for reading state before acting, but does not explicitly state when to use vs alternatives. Context from sibling tools makes it clear, but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_learningsARead-only
查看跨局学习库:往局结果/教训/致命问题 + 跨局恒真规则。
开局定策略、或怀疑自己在重蹈往局覆辙时调。简报只注入最近 3 局的
一句话版本,这里是完整视图。| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safety profile, yet the description still adds real context: the always-on briefing only carries one-line summaries of the last 3 games, so this call is required to see the full record. That explains why an agent would pay a call here rather than rely on injected context. Size, volume, or paging of the returned library is not mentioned, but the output schema covers return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences ordered by value: what is in the library, when to call it, then how it differs from the briefing. Front-loaded and free of repetition; every clause adds information the agent did not already have.
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 read tool with annotations and an output schema, everything needed to decide to call it is present, including the relationship to the auto-injected briefing. The one missing link is how entries get into the library, i.e. no pointer to the record_learning sibling, so the description is nearly but not fully self-contained.
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 and the schema-coverage rule sets a baseline of 4. No argument formats or filters are implied anywhere in the text, which is consistent with the empty input 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 (查看 cross-game learning library) and enumerates the contents it holds: past-game results, lessons, fatal mistakes, plus invariant rules. That content profile is distinctive enough to separate it from get_diary or get_strategy_notes in practice. It never names a sibling though, so the differentiation is by implication rather than explicit statement.
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?
Gives two specific triggering situations: setting strategy at game start, or suspecting you are repeating a past game's mistake. That is clear usage context. It offers no exclusion guidance against the cluster of similar knowledge tools (get_diary, read_strategic_summary, get_strategy_notes, get_expert_playbook), which is what keeps it out of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_map_areaARead-only
Get terrain info for tiles around a point.
Args:
center_x: X coordinate of center tile
center_y: Y coordinate of center tile
radius: How many tiles out from center (default 2, max 4)
| Name | Required | Description | Default |
|---|---|---|---|
| radius | No | ||
| center_x | Yes | ||
| center_y | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds parameter details (e.g., default radius, max) but no other behavioral traits like side effects or rate limits. It is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one purpose line followed by a list of parameter descriptions. Every sentence adds value without redundancy. Excellent structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool and existence of an output schema, the description covers the input parameters well. However, it does not hint at the output structure beyond 'terrain info', leaving a minor gap for an agent to understand what exactly is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides detailed explanations for each parameter: 'X coordinate of center tile', 'Y coordinate', 'How many tiles out from center (default 2, max 4)'. This fully compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get terrain info for tiles around a point.' It uses a specific verb and resource, distinguishing it from other get_* tools that target different game data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when terrain info around a point is needed, but it does not provide explicit guidance on when to use this tool versus alternatives or any exclusions. No sibling differentiation is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notificationsARead-only
Get all active game notifications.
Shows action-required items (need your decision) and informational notifications. Action-required items include which MCP tool to use to resolve them. Call this to check what needs attention without ending the turn.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds valuable context: notifications include action-required items that specify which MCP tool to resolve them. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with purpose, no wasted words. Efficiently communicates purpose, content, and usage.
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 parameters and an output schema present, the description fully covers what the tool does, what it returns (two notification types), and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (0 params, 100% coverage), so baseline is 4. Description adds no parameter info because none needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Get all active game notifications' and distinguishes two types: action-required and informational. This provides a specific verb+resource and differentiates from numerous sibling get_* 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?
States 'Call this to check what needs attention without ending the turn', giving clear context for when to use. Does not explicitly exclude alternatives, but the purpose is specific enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_opening_assessmentARead-only
开局四维评估:文明能力利用率 × 地图地理 × 邻居威胁 → 推荐路线 (含备选与不推荐,带置信度)。T1-T5 必调一次;之后想复审路线也可再调。 未收录进策略库的文明会得到诚实的降级评估,不会编造能力。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes the safety profile, and the description adds real context beyond it: a mandatory-once invocation window, confidence-tagged output including rejected options, and the important disclosure that civilizations missing from the strategy library get an honest degraded assessment rather than fabricated abilities. That last point is a genuinely valuable expectation-setter about output quality that no structured field carries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short lines, front-loaded with the core purpose and dimensions, then timing, then the caveat about unlisted civilizations — each sentence earns its place. Minor redundancy: '含备选与不推荐,带置信度' partly restates what the output schema already declares.
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 an output schema present and no input parameters, the description only needs to establish purpose, timing, and trust characteristics — all of which it covers. The remaining gap is relational: in a sibling set dense with advisors, it never positions itself relative to get_strategic_map, get_power_balance, or get_settle_advisor.
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 no per-parameter meaning to convey and the baseline of 4 applies. The description does not need to compensate for any schema gap here.
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?
Names a specific deliverable (opening four-dimension assessment) and spells out the dimensions it composes (civilization ability utilization × map geography × neighbor threat) plus the output shape (recommended route with alternatives, non-recommended options, confidence). It does not name or contrast itself with overlapping advisor siblings such as get_strategic_map, get_power_balance, or get_settle_advisor, so an agent cannot fully rule out overlap from the text alone.
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?
Gives a concrete timing rule — call once during turns T1–T5, and re-call later if a route review is wanted — which is unusually explicit guidance for a tool of this type. However, it offers no exclusions or named alternatives (e.g., when to prefer get_strategic_map or get_expert_playbook instead), so the 'vs alternatives' half of the dimension is unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pantheon_beliefsARead-only
Get pantheon status and available beliefs for selection.
Shows current pantheon (if any), faith balance, and all available
pantheon beliefs with their bonuses. Use choose_pantheon to found one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description reinforces this by stating it shows information, and adds detail on what is displayed (status, faith, beliefs with bonuses), going beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Purpose is front-loaded, and the second sentence adds critical context and directs to sibling.
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 zero parameters and an output schema (implied), the description fully explains the tool's return values. It is complete for a read-only information tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (schema coverage 100%), so description adds meaning by explaining the output. Baseline 4 is exceeded because it clearly describes what the tool returns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves pantheon status and available beliefs, naming specific outputs (current pantheon, faith balance, beliefs with bonuses). It also distinguishes from sibling choose_pantheon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use this tool before choosing a pantheon and directs to choose_pantheon for founding, providing clear when-to-use and alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pathing_estimateARead-only
Estimate how many turns a unit needs to reach a destination.
Args:
unit_id: The unit's composite ID (from get_units output)
target_x: Destination X coordinate
target_y: Destination Y coordinate
Returns estimated turns, path length, and reachable tiles this turn.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | ||
| target_x | Yes | ||
| target_y | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the readOnlyHint annotation by stating what the tool returns (estimated turns, path length, reachable tiles). This helps the agent understand the output scope without relying solely on annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a one-line purpose and bullet-like argument list. Every sentence adds value, and the structure front-loads the core function efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (as indicated by context), the description need not fully detail return values, but it mentions key outputs. The 3 required parameters are fully described, making the tool adequately complete for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining the meaning of each parameter: unit_id comes from get_units, target_x/y are coordinates. This adds semantic value beyond the schema's type and title 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 uses the specific verb 'estimate' and clearly identifies the resource as unit pathing to a destination. It distinguishes itself from sibling tools that perform actions or retrieve different data, making the tool's purpose 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 implies when to use (when needing path estimates for a unit), but does not explicitly state when not to use or provide alternatives among siblings. No exclusions or context beyond the basic purpose is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pending_diplomacyARead-only
Check for pending diplomacy encounters (e.g. first meeting with a civ).
Diplomacy encounters block turn progression. Call this if end_turn
reports the turn didn't advance. Returns any open sessions with their
dialogue text, visible buttons, and response guidance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true (safe read). The description adds that returns open sessions with dialogue text, visible buttons, and response guidance, and notes that diplomacy encounters block turn progression. This provides useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with purpose and a concrete example. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and presence of an output schema, the description covers purpose, usage condition, and return value. It is fully adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; baseline score of 4 applies since the description adds no parameter info but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks for pending diplomacy encounters that block turn progression, with an example (first meeting with a civ). It distinguishes from sibling tools like get_diplomacy and respond_to_diplomacy by specifying 'pending' and the blocking behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use: 'Call this if end_turn reports the turn didn't advance.' It implies not to use if turn advances normally, but does not list alternatives or explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pending_tradesARead-only
Check for pending trade deal offers from other civilizations.
Shows what each civ is offering and what they want in return.
Use respond_to_trade to accept or reject.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's 'Check' is consistent. It adds no additional behavioral insights beyond what annotations provide, such as potential side effects or authorization needs. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, starting with the core purpose, then detailing what it shows, and finally directing to a sibling tool. Every sentence is essential and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema (stated in context), the description adequately covers the tool's function without needing return value details. It explains the displayed information, making it complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema description coverage is 100% (vacuously). The description does not need to add parameter details. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Check' and resource 'pending trade deal offers from other civilizations,' distinguishing it from sibling tools like 'get_trade_options' or 'respond_to_trade.' It specifies the content shown (offers and demands).
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 instructs to use 'respond_to_trade' to accept or reject, providing a direct next step. However, it doesn't explicitly exclude alternatives or clarify when to use this over other trade-related tools like 'propose_trade' or 'get_trade_routes.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pillage_adviceARead-only
掠夺经济:对指定区域内的敌方改良/区域估价排序,给掠夺路线。 战争期间对敌方腹地调用;矿山/区域优先,已掠夺过的格子自动排除。
| Name | Required | Description | Default |
|---|---|---|---|
| radius | No | ||
| center_x | Yes | ||
| center_y | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint=true, the description discloses useful behavior: mines/districts are prioritized, already-pillaged tiles are automatically excluded, and results are ranked. It does not mention scope limits, but the key output-shaping rules are given, which an agent could not infer from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with zero redundancy: what the tool does first, then the usage condition and filtering rules. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and readOnlyHint covers safety. The description supplies the wartime/enemy-territory context and ranking behavior; only the coordinate/radius semantics are under-specified.
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 0%, so the description carries the burden. The phrase 'specified area' conveys that center_x/center_y/radius define a scan region, but it does not clarify that the coordinates are tile positions or what units radius uses, leaving gaps an agent must guess for a 3-parameter call.
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 and resource: evaluates and ranks enemy improvements/districts in a specified area and outputs a pillage route. This is clearly distinguishable from siblings like get_map_area or the various advisor tools, and no other listed tool covers pillage targeting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the context for use: during wartime, in enemy heartland territory. It does not name alternatives or state when not to use it (e.g., peacetime scouting), but the intended trigger is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_policiesARead-only
Get current government, policy slots, and available policies.
Shows current government type, each policy slot with its type and current policy (if any), and all unlocked policies grouped by compatible slot type. Wildcard slots accept any policy type.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, and the description adds behavioral context about what is shown (government type, policy slots, wildcard slots). It doesn't mention auth, rate limits, or side effects, but the addition of specific content details is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences: a clear overview followed by a detailed elaboration. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown) and zero parameters, the description adequately explains the tool's output in general terms. It covers the key aspects of what the tool returns without needing to detail structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description does not need to add parameter semantics, and it handles this absence appropriately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves current government, policy slots, and available policies, with details on what is shown. However, it does not explicitly differentiate from sibling tools like get_governors or set_policies, though the name and context make it clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Among siblings like set_policies or change_government, there is no indication that this is a read-only retrieval tool or when to prefer it over other get_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_post_war_adviceARead-only
占领城市后的处理建议:保留/挽救/夷平,基于忠诚度计算。占城当回合调用。
⚠️ 敌方城市的人口数据无法自动获取 —— 忠诚估算只计入我方压力,结果
偏乐观;若周边敌城密集,把建议降一档理解(保留→挽救,挽救→夷平)。
| Name | Required | Description | Default |
|---|---|---|---|
| city_x | Yes | ||
| city_y | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=true; the description adds a substantive caveat that enemy city population is unavailable, that loyalty estimates only count our own pressure and are therefore optimistic, and tells the agent to downgrade the recommendation one notch when surrounded by enemy cities. This is exactly the kind of output-reliability context an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences: purpose, timing, then warning. Front-loaded and free of padding; the long caveat is justified because it changes how results should be read, though it could be tightened slightly.
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?
An output schema exists so return values need not be explained, and the description covers purpose, invocation timing, and a critical interpretation caveat. The only real gap is that the two required coordinates are never described in words.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% — only bare titles 'City X' / 'City Y' — so the description must compensate. '占城当回合调用' implies the coordinates identify the newly captured city, but no format, units, or coordinate-system detail is given beyond that implication.
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: advice on what to do with a captured city (keep/save/raze) with loyalty-based computation. It is clearly distinguishable from advisory siblings like get_settle_advisor, get_pillage_advice or assess_loyalty_flip, though it never names those alternatives 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?
'占城当回合调用' gives an explicit timing trigger (call on the turn of capture), which is the key usage condition for this tool. It lacks explicit when-not guidance or named alternatives, but the context is clear enough to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_power_balanceARead-only
实测我方与对手的差距,给出五档局势判定(被碾压/落后/势均力敌/领先/统治级)。
不看难度名 —— 难度加成表在导出数据里是空的,而且难度可能随机。
判据是各维度「我 / 该维最强对手」的实测比值。这是决定整套打法的分档:
劣势档要停扩张求生,领先档要主动兑现优势。每 10 回合简报里会自动带一行,
本工具用于随时重测。| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only readOnlyHint given, the description adds real behavioral context: it explicitly does not key off difficulty names because the difficulty bonus table is empty and difficulty may be random, and it discloses the underlying criterion (measured ratio per dimension). That methodology disclosure is valuable beyond the annotations, though return-shape detail is left to the output 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?
Front-loads what it returns (five tiers), then the criterion, then strategic meaning, then the re-measurement use case. The difficulty-table remark earns its place by pre-empting a wrong inference, but the text is slightly longer than strictly necessary.
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?
An output schema covers the return values, annotations cover safety, and there are no parameters. The description supplies everything else an agent needs: the tier semantics, the measurement basis, and the decision it drives.
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?
Zero parameters, so there is nothing to document and the baseline is 4. The description correctly implies a no-argument full re-evaluation rather than a filtered query.
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+resource (measure our side vs. opponents' power gap) and a concrete output (five-tier judgment with named tiers). It does not explicitly contrast itself with adjacent siblings like get_victory_progress or get_game_overview, so it falls short of full sibling differentiation.
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?
Gives clear use context: the 10-turn briefing already carries a line, and this tool exists for ad-hoc re-measurement at any time. It also explains what the result implies (stop expanding in a disadvantage tier, cash in advantages when leading). It stops short of naming alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_purchasable_tilesARead-only
List tiles a city can purchase with gold.
Args:
city_id: City ID (from get_cities)
Shows cost, terrain, and resources for each purchasable tile.
Tiles with luxury/strategic resources are listed first.
| Name | Required | Description | Default |
|---|---|---|---|
| city_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds value by disclosing that tiles with luxury/strategic resources are listed first, and that it shows cost, terrain, and resources. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (6 lines) with a clear purpose statement followed by an Args section. Every sentence adds necessary information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, no nested objects) and presence of an output schema, the description adequately covers purpose, parameter, and output details (cost, terrain, resources, ordering). Minor gap: no mention of potential empty results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'city_id' is described with 'City ID (from get_cities)', adding source context. Schema coverage is 0%, so the description compensates well by explaining the parameter's purpose and output characteristics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List tiles a city can purchase with gold.' This is a specific verb-resource combination that distinguishes it from siblings like 'purchase_tile' and 'get_cities'.
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 (to see purchasable tiles for a city) but does not explicitly state when to use this tool versus 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.
get_religion_beliefsA
Get religion founding status, available religions, and available beliefs.
Shows whether you've founded a religion, available religion types to choose,
and beliefs grouped by class (Follower, Founder, Enhancer, Worship).
Use found_religion to found a religion after your Great Prophet activates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the tool's output: status, religions, and beliefs grouped by class. It implies no destructive side effects, which is adequate for a read-only data retrieval 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?
Two concise sentences with a usage tip; every word adds value. Front-loaded with core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an output schema, the description fully explains the tool's behavior and output structure, including belief classification and connection to found_religion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; baseline 4 applies. Description adds meaning by detailing what is returned, compensating for the lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves religion founding status, available religions, and beliefs grouped by class. Distinguishes from sibling tools like found_religion and get_pantheon_beliefs by focusing on status and availability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly suggests using found_religion after Great Prophet activates, providing a clear use case. Does not exclude other scenarios but gives enough context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_religion_spreadARead-only
Get per-city religion breakdown across all visible cities.
Shows which religion is majority in each city, follower counts, and which religions are closest to religious victory.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, and the description adds no contradictory or additional behavioral traits (e.g., side effects, permissions). The description is consistent but does not go beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. First sentence states the action and scope, second sentence details key outputs. Structure is optimal for an AI agent's quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema exists), the description fully covers purpose and key outputs. No additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (schema coverage 100%), so baseline is 4. The description does not need to add parameter information and appropriately focuses on output details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Get' and clearly defines the resource 'per-city religion breakdown across all visible cities'. It details the output: majority religion, follower counts, and religious victory proximity, distinguishing it from siblings like get_religion_beliefs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing religion spread but does not explicitly state when to use this tool versus alternatives (e.g., get_religion_beliefs, get_victory_progress). No exclusions or recommendations are provided, leaving usage inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_settle_advisorARead-only
List best settle locations near a settler unit.
Args:
unit_id: The settler's composite ID (from get_units output)
Scores locations by yields, water, defense, and resource value.
Returns top 5 candidates sorted by score.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so no safety ambiguity. Description adds behavioral details: scores by yields, water, defense, and resource value; returns top 5 sorted. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, front-loaded with the main purpose. Four sentences total, each adding value: purpose, argument, scoring criteria, and return format. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and existing output schema, the description covers parameter and return format adequately. Could mention edge cases like no valid locations, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It explains unit_id as 'The settler's composite ID (from get_units output)', giving clear semantic meaning beyond the schema's type declaration.
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?
Clearly states the tool lists best settle locations near a settler unit. The verb 'list' and resource 'settle locations' are specific. It distinguishes from sibling get_global_settle_advisor by implying per-unit scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: use when you have a specific settler unit and need local settle advice. It tells how to obtain the unit_id from get_units output. Does not explicitly exclude alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spiesARead-only
List all your spy units with position, rank, city, and available missions.
Shows each spy's composite id (needed for spy_action), current location,
rank (Recruit/Agent/Special Agent/Senior Agent), XP, and which operations
are available at their current position.
Note: offensive missions only become available once the spy has physically
arrived in the target city. Use spy_action with action='travel' first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond readOnlyHint annotation: describes output fields and the condition for offensive missions being available. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs with front-loaded purpose and clear structure. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully explains what the tool returns and includes a key usage note. Given zero parameters and existence of output schema, description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so schema coverage is 100%. Baseline of 4 applies; description does not need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists spy units with specific attributes (position, rank, city, missions). It distinguishes from sibling tool spy_action by mentioning the composite id is needed for actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use this tool vs spy_action, including a prerequisite note that offensive missions require prior travel via spy_action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_strategic_mapARead-only
Get fog-of-war boundaries and unclaimed resources across the map.
Shows how far explored territory extends from each city (in 6 directions), highlighting directions that need exploration. Also lists unclaimed luxury and strategic resources on revealed but unowned land.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
ReadOnlyHint annotation already signals safety; description adds specific behavioral details about what is shown (boundaries in 6 directions, unclaimed resources) beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with key information, no redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema provided, the description sufficiently explains what is returned for a simple query tool with no parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage is 100%, description adds no param info (unnecessary). Baseline 4 for 0 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves fog-of-war boundaries and unclaimed resources, distinguishing it from other get_ tools by specifying the exact information provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use when exploring or needing map coverage info, but does not explicitly differentiate from siblings like get_map_area or get_settle_advisor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_strategy_notesARead-only
查本文明套件:特色单位/战力代差/窗口开关时代 + 策略库原理(若收录)。 civ_or_leader 留空 = 查自己的文明。也可查对手文明来理解他会怎么打。
主路径是【运行时从 gamedata 推导】,所以任意随机文明都有输出;
手写策略库(3 个文明)只作为覆盖层追加。| Name | Required | Description | Default |
|---|---|---|---|
| map_type | No | ||
| civ_or_leader | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint=true, it discloses important behavioral context: the primary path is derived at runtime from gamedata, so any random civ produces output, while the handwritten strategy library covers only 3 civs and is an overlay. This coverage caveat is exactly the kind of context annotations do not carry, and it is consistent with readOnlyHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the resource being queried, then parameter usage, then the data-source caveat, with no filler. It is dense but organized, and every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description needn't explain return values, and it adequately covers purpose and data-source reliability. However, with zero schema coverage and a sibling set full of strategy/advisory tools, leaving map_type and sibling differentiation unaddressed is a meaningful completeness 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?
Schema description coverage is 0%, so the description must compensate. It clarifies civ_or_leader (blank = own civ, or an opponent civ), but says nothing about map_type, leaving one of two parameters undocumented everywhere.
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 specific verb and resource: retrieve this civilization's kit (unique units, combat-strength differential, timing windows) plus strategy-library principles. It is clear what the tool returns, but it never differentiates itself from advisory siblings such as get_expert_playbook or get_opening_assessment, which likely overlap.
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?
It explains parameter usage well: civ_or_leader blank means your own civ, and you may query an opponent to understand their likely play. It stops short of saying when to use this tool versus alternatives — no exclusions, no routing to get_expert_playbook or get_power_balance — so usage is implied rather than fully guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tech_civicsARead-only
Get technology and civic research status.
Shows current research, current civic, turns remaining, and lists of available technologies and civics to choose from.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the readOnlyHint annotation by detailing what information is returned (current research, civic, turns, lists). No side effects or restrictions are noted, but none are expected for a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences. The first sentence provides the tool's purpose, and the second elaborates on the output. No extraneous information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema present), the description fully covers what the tool does. It explains the output content, which is sufficient for an agent to understand the tool's utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the schema coverage is 100%. The description does not need to add parameter details, achieving a baseline of 4 as per the rubric for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves technology and civic research status, including current research/civic, turns remaining, and available options. It effectively distinguishes from sibling tools like set_research or get_policies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use (to view tech/civic status). However, it does not explicitly state when not to use or mention alternative tools, though the absence of parameters makes it straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_destinationsARead-only
List valid trade route destinations for a trader unit.
Args:
unit_id: The trader's composite ID (from get_units output)
Shows domestic and international destinations. Use unit_action
with action='trade_route' and target_x/target_y to start a route.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and description confirms read-only nature. Adds context that unit_id comes from get_units output, aiding usage.
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?
Five concise sentences with no fluff, front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity, one parameter, and existing output schema, the description sufficiently covers input, functionality, and next steps.
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 single parameter unit_id is explained as the trader's composite ID from get_units output, fully compensating for zero schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists valid trade destinations for a trader unit, distinguishing from siblings like get_trade_routes and unit_action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context that this is a preparatory step before using unit_action to start a route, and clarifies that destinations include both domestic and international. Lacks explicit comparison to other trade-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_optionsARead-only
See what both sides can trade — like opening the trade screen.
Args:
other_player_id: The player ID (from get_diplomacy output)
Shows gold, resources, favor, open borders status, and alliance eligibility
for both you and the other civilization. Use before propose_trade to see
what's available.
| Name | Required | Description | Default |
|---|---|---|---|
| other_player_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the readOnlyHint annotation by listing what is shown (gold, resources, favor, open borders status, alliance eligibility). There is no contradiction with annotations, and it clearly indicates a safe read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, front-loading the core purpose in the first sentence, then efficiently covering the argument and usage. Every sentence is necessary and adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one simple parameter, a readOnly annotation, and an explicit output schema, the description fully covers what the agent needs to know: what it does, what it requires, and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter with no description (0% coverage), but the description compensates fully by explaining the parameter's origin ('The player ID (from get_diplomacy output)'), adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('See what both sides can trade') and analogizes to 'like opening the trade screen.' It distinguishes from the sibling tool 'propose_trade' by mentioning it should be used before that.
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?
It provides explicit guidance on when to use the tool ('Use before propose_trade') and where to get the required argument ('from get_diplomacy output'). However, it does not specify when not to use it or mention alternatives beyond the single sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_routesARead-only
Get trade route capacity, active routes, and trader status.
Shows how many routes are active vs capacity, and lists all trader units with their positions and whether they're idle or on a route.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so description carries less burden. The description adds valuable context: it shows capacity, active routes, and lists trader units with positions and idle status. This goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the purpose and then details the output. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an output schema exists (not shown), the description fully explains the return content: capacity, active routes, and trader list with status. No 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?
No parameters exist (schema has no properties, coverage 100%). The description does not need to add parameter info. It appropriately focuses on what the tool returns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states what the tool does: 'Get trade route capacity, active routes, and trader status.' It uses a specific verb ('Get') and resource ('trade routes'), and distinguishes itself from siblings like get_trade_destinations and get_trade_options which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving trade route information but provides no explicit guidance on when to use this tool versus alternatives or when not to use it. No exclusions or context are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_unit_promotionsARead-only
List available promotions for a unit.
Args:
unit_id: The unit's composite ID (from get_units output)
Shows promotions filtered by the unit's promotion class.
Only units with enough XP will have promotions available.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds behavioral info about filtering by promotion class and XP requirement, going beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus an Args line, all essential information front-loaded (purpose in first sentence). No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, parameter origin, filtering conditions, and prerequisites (XP). With an output schema provided, return values are covered externally. The description is fully sufficient for an agent to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the single parameter unit_id as 'The unit's composite ID (from get_units output)', adding essential context beyond the schema's type and title, especially with 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List available promotions for a unit' with a specific verb ('List') and resource ('available promotions for a unit'), distinguishing it from sibling tools like promote_unit which applies a promotion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: it lists promotions filtered by promotion class and only for units with enough XP. However, it does not explicitly contrast with sibling tools like promote_unit or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_unitsARead-only
List all your units with position, type, movement, and health.
Each unit shows its id and idx (needed for action commands). Consumed units (e.g. settlers that founded cities) are excluded.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the readOnlyHint annotation by specifying that consumed units are excluded from the list. It does not contradict annotations and provides useful detail about the output scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences. The first sentence states the purpose and included fields, and the second adds critical detail about excluded units and the importance of id/idx. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters) and the existence of an output schema, the description is complete. It explains what fields are shown and what is excluded, which is sufficient for an agent to understand the tool's return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and schema coverage 100%, the baseline score is 4. The description adds no parameter-specific meaning because there are none, but it provides context about the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list all your units' and specifies the resource (units) along with what information is included (position, type, movement, health) and excluded (consumed units). It distinguishes itself from sibling tools by focusing on general unit listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing units but does not provide explicit guidance on when to use this tool versus alternatives like get_builder_tasks or unit_action. No 'when not to use' or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_victory_progressARead-only
Get victory condition progress for all civilizations.
Shows progress toward Science, Domination, Culture, Religious, Diplomatic, and Score victories. Includes space race VP, diplomatic VP, tourism vs domestic tourists, religion spread, capital ownership, and military strength. Call every 20-30 turns to track the race.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true. Description adds valuable behavioral context by listing specific data points included (space race VP, diplomatic VP, etc.), which goes beyond the annotation. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each clearly front-loaded: purpose in first, details in second, usage frequency in third. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, read-only annotation, and output schema expected, the description covers all necessary information: what data is included and how often to use. Complete for a simple polling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (0), so description cannot add meaning beyond schema. Baseline 4 applies per guidelines since there's nothing to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get victory condition progress for all civilizations' with specific verb and resource. Lists included victory types, distinguishing it from other 'get_*' sibling tools that focus on different aspects of the game.
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?
Explicit guidance to 'Call every 20-30 turns to track the race.' While no alternatives or when-not-to-use are mentioned, the simple nature and specific timing advice provide clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wonder_advisorARead-only
Show best tiles to place a wonder with displacement cost analysis.
Args:
city_id: City ID (from get_cities output)
wonder_name: Wonder building type, e.g. BUILDING_CHICHEN_ITZA, BUILDING_ORSZAGHAZ
Returns valid placement tiles ranked by displacement cost (lowest = best):
tiles with no improvements or resources are preferred over productive tiles.
Also shows terrain, feature, river/coastal status, and any resources/improvements
that would be removed by placing the wonder there.
Use set_city_production with target_x/target_y to build the wonder.
| Name | Required | Description | Default |
|---|---|---|---|
| city_id | Yes | ||
| wonder_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses beyond the readOnlyHint annotation by explaining the output includes ranked tiles, displacement cost, terrain, and resources to be removed. It accurately reflects the read-only nature and provides meaningful behavioral detail.
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 well-structured with a summary, Args section, Returns section, and a usage tip. It's somewhat lengthy but every sentence adds value, and the structure aids readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 parameters, detailed output) and the existence of an output schema, the description is very complete. It explains inputs, output contents, and usage context, leaving no ambiguity about what the tool does and how to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema parameter descriptions, the tool's description adds significant meaning: it specifies that city_id comes from get_cities output, and gives example values for wonder_name (e.g., BUILDING_CHICHEN_ITZA). This compensates well for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Show best tiles to place a wonder with displacement cost analysis.' It uses specific verbs and resources, and distinguishes itself from sibling tools like get_settle_advisor and get_district_advisor by focusing specifically on wonder placement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (when placing a wonder) and even advises the next step: 'Use set_city_production with target_x/target_y to build the wonder.' While it doesn't explicitly state alternatives or when not to use, 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_world_congressARead-only
Get World Congress status, active resolutions, and voting options.
Shows whether congress is in session, resolutions to vote on (with options A/B
and possible targets), turns until next session, and your diplomatic favor.
When in session, use queue_wc_votes to register votes before end_turn.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully aligns with the readOnlyHint annotation, confirming a no-side-effect read operation. It adds specific details on what data is returned, enhancing understanding beyond the annotation.
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 concise sentences front-load the main purpose and add relevant usage context. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description sufficiently covers key return fields. It provides all necessary context for a status-check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description naturally adds no param info. With zero parameters, baseline is 4; no improvement needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves World Congress status, active resolutions, and voting options, and lists specific fields like session state, resolutions with options, turns until next session, and diplomatic favor. This distinguishes it from sibling tools, which focus on other game aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using 'queue_wc_votes' when congress is in session to register votes, providing clear when-to-use and when-not-to-use guidance. No exclusions needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kill_gameADestructive
Kill the Civ 6 game process and wait for Steam to deregister.
Only kills Civ 6 processes. Waits ~10 seconds for Steam to deregister
so the game can be relaunched cleanly.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint=true. Description adds that it waits for Steam deregister, which is useful behavioral context. Does not mention potential side effects like losing unsaved progress.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded, no unnecessary words. Efficiently communicates purpose and key behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and an output schema present, the description covers the essential action and waiting behavior. Could mention idempotency or safety but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so description does not need to add parameter info. Baseline 4 for zero-parameter tools.
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?
Clearly states the action (kill) and specific resource (Civ 6 game process) with additional behavior (wait for Steam deregister). Distinct from sibling tools which are in-game actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage as a process termination tool but provides no explicit when-to-use or alternatives. The constraint 'Only kills Civ 6 processes' is a restriction but not a guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
launch_gameADestructive
Launch Civ 6 via Steam.
Starts the game and waits for the process to appear (~15-30 seconds).
The game will be at the main menu after launch — use load_save or
restart_and_load to load a specific save.
NOTE: FireTuner connection is NOT available at the main menu.
Only in-game MCP tools work after a save is loaded.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description adds valuable behavioral details: the startup wait period, the fact that the game ends at the main menu, and the limitation that FireTuner (and thus in-game tools) only work after a save is loaded. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences and a note. Every sentence provides critical information (action, behavior, limitations). Front-loaded with the main purpose. No redundant or extraneous content.
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 tool with an output schema (implied but not shown), the description covers all necessary context: what it does, how it behaves (wait time), what state the game is in after launch, and what tools work afterwards. Sibling tools are hinted at, providing sufficient completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the schema is fully described (100% coverage). The description adds no parameter info, which is acceptable; baseline for 0 params is 4. No additional semantic explanation needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool launches Civ 6 via Steam. It uses a specific verb ('Launch') and resource ('Civ 6'), distinguishing it from sibling tools like load_save and restart_and_load, which are mentioned as after-launch actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear when-to-use context (launching the game) and explicitly states that FireTuner is not available at the main menu, directing users to use load_save or restart_and_load instead. Also mentions expected wait time (~15-30 seconds), guiding agent expectations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_lua_statesBRead-only
List ALL available Lua state indices and their names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safety profile, so the description need only add context. It contributes the 'ALL' scope hint, implying a complete unfiltered enumeration with no pagination, but says nothing about ordering, whether indices are stable across calls, or how states come into existence.
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 with the scope qualifier front-loaded and no filler. Nothing could be removed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema already describes return values and the tool is parameter-free, so little is required. Still, the description never explains what a 'Lua state' is in this context or why an agent would want to enumerate them, which leaves a conceptual gap for a niche tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing for the description to explain beyond the schema; the empty schema says everything. Baseline 4 applies to parameter-free tools.
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?
Specific verb 'List' plus resource 'Lua state indices and their names', so the agent knows exactly what is returned. It does not reference the closely related run_lua sibling, which would have sharpened the distinction, but the operation itself 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?
No statement of when to call this versus alternatives. The obvious pairing, discovering a state index before invoking run_lua, is never mentioned despite run_lua being a sibling. Usage is only inferable from the wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_savesARead-only
List available save files (normal, autosave).
Returns indexed list of saves. Use load_save(save_index=N) to load one.
Call this before load_save to see what's available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, which the description reinforces. The description adds that it returns an indexed list, which is helpful. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each providing essential information: what it does, what it returns, and how to use it. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no parameters, an output schema exists, and the description fully conveys its purpose and usage. It is complete for the agent's needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description does not need to explain them. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists save files (normal, autosave) and returns an indexed list. It distinguishes itself from the sibling 'load_save' by indicating that after listing, one should use load_save with an index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to call this before load_save to see available saves. However, it does not mention conditions where listing might not be needed or alternative tools for different save operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_game_saveADestructive
Load a save file by name. No need to call list_saves first.
Args:
save_name: Save name without extension (e.g. "0_MCP_0079",
"0A_GROUND_CONTROL", "AutoSave_0221", "quicksave").
Tries Lua-based loading first (fast, ~5s). If the save isn't found
via Lua (common for autosaves/quicksaves), falls back to OCR menu
navigation (~90s) after verifying the file exists on disk.
| Name | Required | Description | Default |
|---|---|---|---|
| save_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant behavioral information beyond the destructiveHint annotation: details on Lua vs OCR loading, time estimates, and file existence check. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: three short sentences and a bulleted example. Every piece is informative with no fluff. Structure is front-loaded with purpose and usage note.
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?
Missing explicit differentiation from load_save and load_save_from_menu siblings, but output schema exists covering return values. For a simple load tool with one parameter, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the parameter, but the description provides examples of valid save names and explains that the extension should be omitted. This adds critical meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Load a save file by name' with specific verb and resource. It distinguishes from siblings like list_saves and implicitly from other load variants by explaining behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance that list_saves is not required first, and explains fallback behavior. Does not explicitly state when to avoid this tool or compare to other load tools like load_save_from_menu, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_saveADestructive
Load a save file by index from the most recent list_saves() result.
Args:
save_index: Index number from list_saves output (1-based)
The game will reload entirely. Wait ~10 seconds after calling this,
then use get_game_overview to verify the loaded state.
| Name | Required | Description | Default |
|---|---|---|---|
| save_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint=true. Description adds valuable behavioral context: 'The game will reload entirely' and a warning about waiting 10 seconds, which goes beyond the annotation to inform the agent of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short paragraphs, each sentence adds essential information. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is destructive (load game), has one parameter, and output schema exists (assumed to document returns), the description covers input semantics, side effects, and recommended follow-up action. Complete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the single parameter 'save_index'. The description fully compensates by explaining it is 'Index number from list_saves output (1-based)', giving clear meaning and source.
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 explicitly states 'Load a save file by index from the most recent list_saves() result.' It uses a specific verb and resource, and distinguishes from sibling tools like load_game_save and load_save_from_menu by specifying the source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use (after list_saves) and post-usage guidance ('wait ~10 seconds, then use get_game_overview to verify'). It also explains the parameter format (1-based index).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patronize_great_personA
Buy a Great Person instantly with gold or faith.
Args:
individual_id: The individual's ID (from get_great_people output)
yield_type: YIELD_GOLD (default) or YIELD_FAITH
currency: alias for yield_type — accepts "gold"/"faith" (overrides
yield_type when set)
Costs shown in get_great_people output under "Patronize:".
Requires enough gold/faith to cover the cost.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | ||
| yield_type | No | YIELD_GOLD | |
| individual_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It explains that this spends gold/faith and requires sufficient currency, but it does not say whether the action is reversible, what happens on insufficient funds, or how confirmation/failure is represented.
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 the first sentence, followed by compact parameter notes and two useful operational constraints. There is no filler or repetition.
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-parameter purchase action with an output schema and no annotations, the description covers the essential invocation details: IDs, currency choice, cost source, and funding requirement. It is slightly incomplete on decision guidance against siblings and failure behavior, but sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it explains individual_id as coming from get_great_people output, documents yield_type defaults, and clarifies that currency is an alias that overrides yield_type. The parameter meanings are clear, though the integer ID format could be slightly more explicit.
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 specific verb and resource: buying a Great Person instantly with gold or faith. That is clear enough to distinguish it from generic Great Person actions, though it does not explicitly contrast it with sibling tools like recruit_great_person or reject_great_person.
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?
It gives useful context by saying costs appear in get_great_people output and that enough gold/faith is required. However, it does not explicitly state when to patronize versus recruit or reject a Great Person, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_addA
Add a step to the plan chain. Steps auto-activate when their prerequisite completes — you don't need to remember what comes next; the briefing shows it every turn.
Completion is judged by SERVER-SIDE facts, not by your say-so:
cond="cities_at_least" args="2" (city count reaches 2)
cond="military_at_least" args="3" (military unit count)
cond="camp_destroyed" args="9,33" (that camp confirmed gone)
cond="exploration_at_least" args="0.15" (map revealed fraction)
cond="tech_completed" args="TECH_ARCHERY"
cond="manual" (you mark it via plan_done)
Args:
goal: Short Chinese description, e.g. "拆除营地(9,33)"
cond: Completion condition type (see above)
args: Condition argument
after: Plan id that must complete first (-1 = starts active now)
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| cond | No | manual | |
| goal | Yes | ||
| after | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses auto-activation, server-side completion judgment, the supported condition types, and the manual precondition for plan_done. It does not discuss failure modes, invalid plan ids, or side effects beyond plan-chain mutation.
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 front-loaded and structured with a behavior summary followed by an Args section. It is appropriately sized for a tool with several condition types, though a few phrases (e.g., briefing behavior) could be tighter.
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?
An output schema exists, so return values need not be described. For a plan-creation tool with 4 parameters, the description covers the essential mechanics and parameter meanings; the main omission is how to discover existing plan ids for the 'after' parameter (e.g., via plan_list).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: all four parameters are explained, including the Chinese goal format, cond values with examples, args semantics, and after semantics (-1 = starts active now). This adds substantial meaning beyond the bare schema titles and 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?
The opening sentence gives a specific verb and resource: 'Add a step to the plan chain.' It also explains the plan-chain model (auto-activation, prerequisites) and explicitly distinguishes manual completion via plan_done, so the agent can tell this apart from completion or listing 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 clearly implies when to use it: when creating a new step in a multi-step plan, with prerequisites handled by 'after'. It names plan_done for the manual case, but does not explicitly cover when to prefer plan_add over plan_list/plan_drop 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.
plan_doneA
Mark a manual-condition plan as completed. Plans with server-checked conditions complete automatically — this is only for cond="manual".
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the important manual-only scope, but does not mention what happens if called on a non-manual plan, whether completion is reversible, or any side effects—leaving significant behavioral gaps 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?
Two tightly scoped sentences with zero waste, leading with the primary purpose and immediately following with the key condition. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation with an output schema, the description gives the essential usage constraint. It could be more complete about error behavior or plan_id semantics, but it covers the core need adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single plan_id parameter, and the description adds no meaning beyond the self-explanatory name. Per rules, low coverage requires the description to compensate, which it does not.
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 (mark as completed) and resource (a plan), and distinguishes it from plans that complete automatically. However, it does not explicitly differentiate from sibling tools like plan_add or plan_drop, leaving a small gap in routing clarity.
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?
Clearly states when to use (manual-condition plans) and when not to use (server-checked conditions complete automatically). It does not name explicit alternatives, but the exclusion is precise enough to guide correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_dropB
Remove a plan that no longer makes sense (situation changed).
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It says 'remove,' implying mutation, but does not disclose whether removal is irreversible, what happens to the plan's associated data, or any permission/error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with the action front-loaded. It is efficient, though the parenthetical rationale is slightly vague rather than informative.
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 simple one-parameter mutation tool, and the output schema exists to cover return values. Still, with no annotations and no parameter explanation, the definition leaves an agent without guidance on plan_id semantics or how this differs from plan_done.
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 single required parameter plan_id has 0% schema description coverage, and the description never mentions it or explains how to obtain a valid plan ID. The parameter name is somewhat self-explanatory, but the description does not compensate for the missing schema documentation.
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 verb and resource: removing a plan. It adds a rationale ('no longer makes sense'), but it does not distinguish this from sibling tools such as plan_done or plan_add, so an agent must infer the difference from names alone.
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 phrase 'no longer makes sense (situation changed)' implies when to use this tool, providing basic context. However, it gives no explicit when-not guidance and does not name plan_done or any alternative for handling obsolete plans.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_listA
List the full plan chain with status (active / pending / done).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. 'List' establishes a non-mutating read, and the presence of an output schema means return structure needn't be described. However, nothing is said about ordering, whether the chain is scoped to the current game/turn, or how pending plans become active.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The verb and resource appear first, followed by the useful status enumeration.
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 read tool with an output schema, the description covers the essentials of what is returned. It falls short of complete by not situating the call inside the plan_add/plan_done/plan_drop workflow that the sibling list makes obvious.
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, which is the baseline-4 case. Schema coverage is 100% and there is nothing to document, so the description loses no ground here.
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?
Names a specific verb (List) and resource (the full plan chain) and adds the status values it surfaces (active/pending/done). An agent can tell it is a read of plans, but the description never contrasts it with the sibling mutation tools plan_add, plan_done and plan_drop that share the same object.
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?
Reading the plan chain is implied by 'List', so an agent can infer this is the inspection step before calling plan_done or plan_drop. There is no explicit statement of when to use it versus plan_add/plan_done, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
promote_governorB
Promote a governor with a new ability.
Args:
governor_type: The governor type (from get_governors output)
promotion_type: The promotion type (from get_governors output, shown under each governor)
Requires available governor points. Use get_governors to see available promotions.
| Name | Required | Description | Default |
|---|---|---|---|
| governor_type | Yes | ||
| promotion_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions requiring governor points but does not explain whether the promotion modifies the governor state, is reversible, or has other side effects. This is a significant gap 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 description is brief (3 sentences) and front-loaded with the purpose. Every sentence adds value, though the 'Args' section could be integrated more naturally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and an output schema, the description covers purpose, parameter sources, and a prerequisite. However, it lacks behavioral details and return value explanation, making it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains that both parameters (governor_type and promotion_type) come from get_governors output, adding meaning beyond the bare schema names. With 0% schema description coverage, this guidance is helpful but could be more detailed (e.g., format or examples).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Promote a governor with a new ability'), specifying the resource (governor) and the operation (promotion). It distinguishes from sibling tools like promote_unit or appoint_governor, though it could explicitly differentiate from other governor-related 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 provides context on when to use the tool: after checking available promotions via get_governors, and notes the requirement of governor points. However, it does not explicitly mention when not to use this tool or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
promote_unitA
Apply a promotion to a unit.
Args:
unit_id: The unit's composite ID (from get_units output)
promotion_type: e.g. PROMOTION_BATTLECRY, PROMOTION_TORTOISE
Use get_unit_promotions first to see available options.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | ||
| promotion_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states the action 'Apply' without describing side effects, reversibility, permissions, or other behavioral traits. This lack of context beyond the action itself leaves the agent unaware of potential consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using a single sentence for the purpose and a short list for arguments. Every sentence provides value: the first states the action, the second explains parameters, and the third gives usage guidance. No redundant words or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only two parameters, no nested objects, and an output schema (which reduces the need to describe return values), the description is largely complete. It covers the purpose, parameter details, and prerequisite tool. However, it could mention that this is a mutation (state-changing) operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides zero description for parameters (0% coverage), but the description explicitly explains that 'unit_id' is a composite ID from 'get_units' output and provides two examples for 'promotion_type' (e.g., PROMOTION_BATTLECRY, PROMOTION_TORTOISE). This adds essential meaning beyond the schema, compensating well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Apply a promotion to a unit.' Using a specific verb ('Apply') and resource ('promotion to a unit'), it precisely defines the tool's action. It distinguishes from siblings like 'promote_governor' by the context of units and references the prerequisite 'get_unit_promotions'.
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 instruction 'Use get_unit_promotions first to see available options' provides clear guidance on the prerequisite step for using this tool. This tells the agent when to use it (after checking options) but does not explicitly state when not to use it or list alternatives beyond the implied get_unit_promotions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
propose_peaceA
Propose white peace to a civilization you're at war with.
Args:
other_player_id: The player ID (from get_diplomacy output)
Requires being at war and past the 10-turn war cooldown.
The AI may accept or reject based on war score and relationship.
| Name | Required | Description | Default |
|---|---|---|---|
| other_player_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the AI may accept or reject based on war score and relationship. However, it does not detail what happens on success (e.g., immediate peace) or failure, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with only 3 sentences plus an Args line. It is front-loaded with the main purpose. Minor improvement could be more structured formatting, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown), the description covers preconditions and the uncertain outcome. It lacks details on the exact response format or error cases, but for a simple diplomacy action it is adequate.
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 explains the parameter `other_player_id` and where to obtain it (from get_diplomacy output), adding value beyond the schema which lacks a description. Schema description coverage is 0%, but the description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'propose' and the resource 'white peace' to a specific target (civilization at war). It distinguishes itself from sibling tools like form_alliance and respond_to_diplomacy by specifying the exact diplomatic action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the prerequisites: being at war and past the 10-turn war cooldown. It does not mention alternatives or when not to use, but the context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
propose_tradeA
Propose a trade deal to another civilization.
Args:
other_player_id: The player ID (from get_diplomacy output)
offer_gold: Lump sum gold to give them
offer_gold_per_turn: Gold per turn to give them (30-turn duration)
offer_resources: Comma-separated resource types to offer, e.g. "RESOURCE_SILK,RESOURCE_TEA"
offer_favor: Diplomatic favor to offer
offer_open_borders: True to offer our open borders
request_gold: Lump sum gold to request from them
request_gold_per_turn: Gold per turn to request (30-turn duration)
request_resources: Comma-separated resource types to request
request_favor: Diplomatic favor to request from them
request_open_borders: True to request their open borders
request_cities: Comma-separated city IDs to demand from them (get them from
get_diplomacy / run_lua; a losing AI will cede cities to end a war)
offer_cities: Comma-separated city IDs of ours to hand over
make_peace: True to include a peace treaty. Required when at war — the
ceasefire is what you are paying with, and demanding cities for it is
the whole point of a war-ending deal.
joint_war_target: Player ID of a third civ to declare joint war against
mode: "send" to commit the deal, "test" to preview AI's counter-offer without committing
force: Override the pre-war gate for joint wars (NO_SIEGE_VS_WALLS —
force_reason: One sentence on WHY you are overriding. Recorded to
data/force_log.jsonl. Without it a post-game review cannot tell
a wrong gate from a wrong call — write it even when in a hurry.
same rule as send_diplomatic_action war declarations)
Examples: Gift 100 gold: offer_gold=100. Trade silk for 3 gpt: offer_resources="RESOURCE_SILK", request_gold_per_turn=3.
Mutual open borders: offer_open_borders=True, request_open_borders=True.
Test a deal first: mode="test" to see what the AI thinks is fair, then mode="send" to commit.
Ending a war on your terms: make_peace=True plus request_cities/request_resources.
Always run mode="test" first — the AI's willingness to cede a city swings hard with
war score, and the test call shows what it considers fair without committing.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | send | |
| force | No | ||
| make_peace | No | ||
| offer_gold | No | ||
| offer_favor | No | ||
| force_reason | No | ||
| offer_cities | No | ||
| request_gold | No | ||
| request_favor | No | ||
| request_cities | No | ||
| offer_resources | No | ||
| other_player_id | Yes | ||
| joint_war_target | No | ||
| request_resources | No | ||
| offer_open_borders | No | ||
| offer_gold_per_turn | No | ||
| request_open_borders | No | ||
| request_gold_per_turn | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does disclose meaningful traits: test mode previews without committing, gold-per-turn deals run 30 turns, make_peace is mandatory at war, and force overrides a pre-war siege gate while being logged to data/force_log.jsonl. Gaps remain — nothing about whether rejected proposals have a cost, per-turn proposal limits, or whether the AI counter-offers in send mode.
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 arg list is front-loaded and useful, but the force/force_reason entries are garbled — 'force: Override the pre-war gate for joint wars (NO_SIEGE_VS_WALLS —' is cut off mid-parenthetical and bleeds into the next entry with stray indentation. The 'always test first' advice is also stated twice (in Examples and again in the closing paragraph), which is wasted space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained, and parameter documentation is essentially complete for an 18-param tool. What's missing is failure behavior (what a rejected offer returns) and a pointer to the sibling that handles incoming offers (respond_to_trade) or standalone peace (propose_peace).
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 0%, so the description must compensate and it does: all 18 parameters get meaning, including units (lump sum vs. per-turn with a 30-turn duration), string formats with a concrete example ("RESOURCE_SILK,RESOURCE_TEA"), sources for IDs (get_diplomacy / run_lua), and the non-obvious send/test semantics of mode that the schema leaves as a bare string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb and resource: 'Propose a trade deal to another civilization.' An agent immediately knows this constructs and sends a diplomatic offer. It does not, however, distinguish itself from siblings that also affect diplomacy (propose_peace, respond_to_trade, send_diplomatic_action, get_trade_options) — the reader must infer that this is the general-purpose deal constructor.
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?
Gives concrete workflow guidance: run mode="test" first to see the AI's fairness assessment, then mode="send" to commit; and make_peace=True is required when at war. It also frames war-ending deals ('request_cities ... the whole point of a war-ending deal'). No explicit statement of when to prefer propose_peace or respond_to_trade, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purchase_itemA
Purchase a unit or building instantly with gold or faith.
Args:
city_id: City ID (from get_cities output)
item_type: UNIT or BUILDING
item_name: e.g. UNIT_WARRIOR, BUILDING_MONUMENT
yield_type: YIELD_GOLD (default) or YIELD_FAITH
force: Override the upkeep gate (UPKEEP_CEILING). Buying a unit is
force_reason: One sentence on WHY you are overriding. Recorded to
data/force_log.jsonl. Without it a post-game review cannot tell
a wrong gate from a wrong call — write it even when in a hurry.
blocked when it would push military upkeep past 60% of gross
income — the purchase feels free, the bill arrives next turn.
Costs gold/faith immediately. Use get_city_production to see what's available.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | ||
| city_id | Yes | ||
| item_name | Yes | ||
| item_type | Yes | ||
| yield_type | No | YIELD_GOLD | |
| force_reason | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description carries the full load well: it discloses immediate cost, the hidden UPKEEP_CEILING gate that silently blocks unit purchases, why the purchase 'feels free but the bill arrives next turn,' and the force_log.jsonl side effect of overriding. This is exactly the non-obvious behavioral context an agent needs before a spend.
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 purpose sentence is front-loaded and every fact earns its place, but the Args block is mangled: the 'force' explanation, the upkeep-gate rule, and the force_reason rationale are interleaved mid-sentence, forcing the reader to reassemble three paragraphs. The content is high-value but the structure fights comprehension.
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?
An output schema exists so return values need no explanation, and the description covers all six parameters, the gating rule, the cost timing, the logging side effect, and the discovery path to valid item names. Nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it names every one of the six parameters, gives concrete enum examples (UNIT_WARRIOR, BUILDING_MONUMENT, YIELD_GOLD/YIELD_FAITH), states the default, and traces city_id back to get_cities output. enum values and defaults appear nowhere in 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 specific verb (purchase), resource (unit or building), and payment currency (gold or faith), and the word 'instantly' distinguishes it from queued production via set_city_production. An agent can tell this apart from purchase_tile and the set_*_production siblings without opening any schema.
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?
Points the agent to get_city_production to see what's available and explains the force-override path with its condition (military upkeep past 60% of gross income). It gives clear context but never states when not to purchase at all, e.g. low treasury behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purchase_tileA
Buy a tile for a city with gold.
Args:
city_id: City ID
x: Tile X coordinate (target_x also accepted — unit_action 系工具用
target_x/target_y,这里收编别名免得同族参数名不一致再咬人)
y: Tile Y coordinate (target_y also accepted)
Use get_purchasable_tiles first to see costs and options.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| city_id | Yes | ||
| target_x | No | ||
| target_y | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It does disclose the currency consumed (gold) and clarifies alias handling, but it omits failure conditions (insufficient gold, tile already owned, whether the tile must be adjacent to or within city borders) and turn/timing constraints for a mutation.
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 purpose line is front-loaded and the usage note is well placed, but the Chinese parenthetical about `unit_action` tooling and parameter-name consistency is leaked internal authoring rationale that doesn't help an agent using the 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?
An output schema exists, so return values needn't be explained, and the gold-cost aspect is mentioned. However, for a five-parameter mutation with zero annotations and zero schema descriptions, the description leaves out what constitutes a legal target tile and what the defaulted coordinate properties mean when omitted.
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 0%, so the description must compensate, and it largely does: all five parameters are addressed, and critically it explains that `target_x`/`target_y` are accepted aliases for `x`/`y`, which the schema presents as four separate defaulted properties with no linkage. The odd `-9999` defaults remain unexplained.
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 and resource combination ("Buy a tile for a city with gold"), which is unambiguous and clearly distinct from the sibling `purchase_item`. It doesn't explicitly name `purchase_item` as the contrasting alternative, so it falls short of full sibling differentiation.
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?
"Use get_purchasable_tiles first to see costs and options" gives an explicit prerequisite step that tells the agent how to sequence this call. It stops short of stating when NOT to use this tool or how it differs in use-case from `purchase_item`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queue_wc_votesA
Pre-configure World Congress votes for the upcoming session.
Args:
votes: JSON array of vote objects, e.g.
'[{"hash": -513644209, "option": 1, "target": 2, "votes": 5}]'
hash = resolution type hash (from get_world_congress)
option = 1 for A, 2 for B
target = player ID for PlayerType resolutions (from get_world_congress
target list, e.g. [target=2] Portugal), or target value for
non-player resolutions. The handler resolves to the correct
0-based index at runtime.
votes = max votes to allocate (will use as many as favor allows)
Call this BEFORE end_turn when get_world_congress shows 0 turns until next
session. Registers an event handler that fires during WC processing and
casts your votes with the specified preferences.
If you don't call this, end_turn will pause at the World Congress session
and return control to you for interactive voting.
| Name | Required | Description | Default |
|---|---|---|---|
| votes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it registers an event handler that fires during WC processing and casts votes. With no annotations, description fully covers behavioral traits including when to call and effect on end_turn.
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?
Well-structured with clear purpose, argument explanation, usage instruction, and consequence of not calling. Each sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a single-parameter tool. Covers what, when, how, and alternative behavior. Output schema exists but description adds necessary usage context.
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?
Provides detailed explanation of the votes parameter with example JSON and breakdown of each field (hash, option, target, votes). Schema description coverage is 0%, so description fully compensates.
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?
Clearly states 'Pre-configure World Congress votes for the upcoming session' with specific verb and resource. Distinguishes from sibling tools like get_world_congress and end_turn by focusing on vote configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Call this BEFORE end_turn when get_world_congress shows 0 turns until next session' and explains alternative behavior: 'If you don't call this, end_turn will pause... for interactive voting.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_strategic_summaryARead-only
Read the current strategic summary from long-term memory.
Call this at the start of each turn cycle to re-establish strategic context that may have been lost from the conversation window. Returns goals, threats, opportunities, recent decisions, and a compressed history of key moments. Summaries are stored per game — a new game starts with a clean slate (no cross-game contamination).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint already covering the safety profile, the description adds genuine behavioral context beyond annotations: what the summary contains (goals, threats, opportunities, recent decisions, compressed history) and that storage is per-game with a clean slate and no cross-game contamination. It does not say what a first read before any write returns, though the 'clean slate' note implies emptiness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, then the call-timing rule, then the payload and scoping notes in descending priority. Four short sentences with no filler, though the per-game scoping sentence could be tightened without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description needn't detail return values, and it still summarizes them for orientation. Safety is covered by annotations, scoping is covered by the description, and timing is explicit — an agent has everything needed to call this correctly at the right moment.
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 no parameter semantics to explain and the baseline of 4 applies. The description correctly stays silent about arguments rather than inventing them.
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 and resource ('Read the current strategic summary') and adds the storage location ('from long-term memory'), which tells an agent this is a persisted-state read rather than a live game query. It never names its write-side sibling write_strategic_summary, so the read/write pairing has to be inferred from the name alone.
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?
Gives an explicit trigger: 'Call this at the start of each turn cycle to re-establish strategic context that may have been lost from the conversation window.' That is a clear condition for use, but no exclusion or alternative is offered (e.g., whether get_strategy_notes or get_diary should be preferred for a narrower question).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_learningA
把本局教训写进跨局学习库(下局 T1-T3 简报自动注入)。
局末必调:lesson 写「这局最该被记住的一件事」(一句话,可操作);
result 写结果,如「失败(T384 美国文化胜利)」。事实字段(损失/探索率/
红警回合)由服务端从复盘日志自动提取,不用你报。
standing_insight 单独一层:跨局恒真的规则性教训(如「原版规则集下
法典完成前不能排政策卡」),不随局淘汰 —— 只在确认是规则而非局势时用。
局中也可以调(比如刚被教训过),重调同一局会覆盖而非重复。| Name | Required | Description | Default |
|---|---|---|---|
| lesson | No | ||
| result | No | ||
| standing_insight | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Only readOnlyHint=false is given, so the description carries the burden and does so well: it discloses overwrite-instead-of-duplicate semantics on repeat calls, that fact fields are auto-extracted server-side so the agent should not report them, and that standing_insight persists across games rather than being retired per game. These are exactly the behaviors an agent cannot infer from the annotation.
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?
Purpose and injection effect are front-loaded, then call timing, then per-field meaning. Dense but every sentence adds information; the only cost is slightly packed multi-clause lines that take a second read.
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 mutation tool with minimal annotations and zero schema description coverage, the description covers when to call, what each field means, what the server fills in, and overwrite/persistence behavior; an output schema exists so return values need no explanation.
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 0% — the schema is bare titles — and the description compensates for all three parameters: lesson is the single most memorable thing in one actionable sentence, result is the outcome with a concrete format example, and standing_insight is scoped to invariant rules-level lessons with a worked example.
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 and resource — writing this game's lessons into a cross-game learning library — and adds the downstream effect (auto-injection into the next game's T1-T3 briefing). That effect alone distinguishes it from every read/side-effect sibling in the list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says it is mandatory at end of game ('局末必调') and also permitted mid-game, and gives a clear decision rule for when to use standing_insight versus lesson ('只在确认是规则而非局势时用'). It does not name get_learnings as the read-side counterpart, so the sibling routing is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recruit_great_personA
Recruit a Great Person using accumulated GP points.
Args:
individual_id: The individual's ID (from get_great_people output, shown after ability)
Requires enough Great Person points for that class.
The GP spawns in your capital. Use get_great_people to check [CAN RECRUIT] status.
| Name | Required | Description | Default |
|---|---|---|---|
| individual_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description states GP spawns in capital and requires enough points. Could mention error behavior or other side effects, but basic constraints are covered.
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?
Four lines, front-loaded, clear structure with Args section. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one param and output schema available. Description covers prerequisites, location, and data source. Adequate but could mention result format briefly.
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?
Single integer parameter is fully explained: source from get_great_people output, shown after ability. Completely compensates for 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes recruiting a Great Person with GP points, clear verb and resource. Does not explicitly differentiate from sibling tools like patronize_great_person or reject_great_person, but context implies 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?
Explicitly directs user to check get_great_people for [CAN RECRUIT] status before using. Lacks explicit when-not-to-use, but provides clear prerequisite guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_great_personA
Pass on a Great Person (skip to the next one in that class).
Args:
individual_id: The individual's ID (from get_great_people output)
Costs faith. The next Great Person in that class becomes available.
Use when you don't want the current GP and want to save points for a better one.
| Name | Required | Description | Default |
|---|---|---|---|
| individual_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that faith is consumed and that the next Great Person becomes available. This covers the key behavioral traits for a simple reject action. A higher score would require additional details like reversibility or confirmation, which are not critical here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences plus an arg line, all front-loaded with the main action. Every sentence adds value, and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, clear action) and the presence of an output schema, the description is complete. It covers what the tool does, its cost, its effect, and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'individual_id' is fully explained: 'The individual's ID (from get_great_people output).' This adds essential context beyond the schema's type definition, compensating for zero schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose clearly: 'Pass on a Great Person (skip to the next one in that class).' The verb 'reject' matches this, and it distinguishes itself from siblings like 'recruit_great_person' and 'patronize_great_person' by indicating it skips rather than acquires or funds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use when you don't want the current GP and want to save points for a better one.' It also mentions that it costs faith and advances to the next GP. However, it does not explicitly state when not to use it or compare with alternatives, though context with sibling tools implies the alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
respond_to_diplomacyA
Respond to a pending diplomacy encounter.
Args:
other_player_id: The player ID of the other civilization (from get_pending_diplomacy)
response: "POSITIVE" (friendly) or "NEGATIVE" (dismissive)
First meetings typically have 2-3 rounds. The tool automatically detects
and closes goodbye-phase sessions (where dialogue text stops changing).
If SESSION_CONTINUES is returned, send another response for the next round.
| Name | Required | Description | Default |
|---|---|---|---|
| response | Yes | ||
| other_player_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses that the tool automatically closes goodbye-phase sessions and returns SESSION_CONTINUES to indicate more rounds. This reveals stateful behavior beyond 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?
Description is concise with a clear first line, structured Args section, and additional behavioral notes. Every sentence provides value; no redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential details: usage, parameters, multi-round behavior, and auto-detection. Minor gap: does not explain what happens with invalid input or other possible return values beyond SESSION_CONTINUES. Otherwise complete for a two-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has no descriptions (0% coverage). Description adds full meaning: 'other_player_id' is the player ID from get_pending_diplomacy, 'response' is 'POSITIVE' or 'NEGATIVE' with friendly/dismissive mapping. Completely compensates for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool responds to a pending diplomacy encounter. Provides specific verb ('respond') and resource ('diplomacy encounter'). Distinguishes from siblings like 'get_diplomacy' and 'propose_peace' by focusing on active response.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (pending encounter from get_pending_diplomacy) and how to interpret response values ('POSITIVE' or 'NEGATIVE'). Describes multi-round behavior and auto-detection of goodbye sessions, giving clear context for iterative use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
respond_to_tradeA
Accept or reject a pending trade deal.
Args:
other_player_id: The player ID of the civilization (from get_pending_trades)
accept: True to accept the deal, False to reject it
force: Override the pre-war gate when accepting a joint-war invitation
force_reason: One sentence on WHY you are overriding. Recorded to
data/force_log.jsonl. Without it a post-game review cannot tell
a wrong gate from a wrong call — write it even when in a hurry.
(NO_SIEGE_VS_WALLS — accepting joint war = declaring war on the
target immediately)
Use get_pending_trades first to see what's being offered.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | ||
| accept | Yes | ||
| force_reason | No | ||
| other_player_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does well: it discloses that force bypasses a pre-war gate, that force_reason is persisted to data/force_log.jsonl, and that accepting a joint war immediately declares war on the target. Reversibility and failure modes are not covered, but the major consequence is surfaced.
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 first line is crisply front-loaded, but the force_reason entry sprawls into an admonition about writing it 'even when in a hurry' plus a NO_SIEGE_VS_WALLS parenthetical that actually describes force, not force_reason — misplaced content that muddies which parameter it applies to.
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?
An output schema exists so return values need not be explained, and the description supplies the prerequisite (get_pending_trades), the consequence of acceptance (war declaration), and the logging side effect. For a state-mutating diplomatic action with no annotations, that is nearly complete, missing only failure/error 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?
Schema description coverage is 0%, so the description must carry all four parameters, and it does: other_player_id is sourced from get_pending_trades, accept is defined as True/False, force is tied to the pre-war gate case, and force_reason has both format (one sentence) and destination (force_log.jsonl). This fully compensates for the empty 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 specific verb pair (accept/reject) on a specific resource (pending trade deal), which clearly separates it from propose_trade, propose_peace and respond_to_diplomacy in the sibling list. It does not explicitly name those siblings, so differentiation is inferable 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?
'Use get_pending_trades first to see what's being offered' gives an explicit prerequisite and names the discovery tool, and the force parameter is scoped to one condition (overriding the pre-war gate on a joint-war invitation). No explicit when-not guidance or mention of respond_to_diplomacy as an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restart_and_loadADestructive
Full game recovery: kill, relaunch, and load a save.
Args:
save_name: Autosave name (e.g. "AutoSave_0221"). If not provided,
loads the most recent autosave.
This is the recommended tool for recovering from game hangs (e.g. AI turn
processing stuck in infinite loop). Takes 60-120 seconds total:
1. Kills the game process
2. Waits for Steam to deregister (~10s)
3. Relaunches via Steam (~15-30s for process start + main menu)
4. Navigates menus via OCR to load the save (~30-60s)
After completion, wait ~10 seconds then call get_game_overview to verify.
| Name | Required | Description | Default |
|---|---|---|---|
| save_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides rich behavioral details beyond the annotations (destructiveHint: true), including the full sequence of steps, estimated timing (60-120 seconds), and side effects like killing the process and OCR navigation. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a summary, an Args section, and numbered steps. Every sentence is informative and necessary, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-step destructive recovery), the description covers purpose, usage, parameters, timing, and post-action verification (calling get_game_overview). The presence of an output schema reduces the need to detail return values.
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?
Despite 0% schema description coverage, the description explains the sole parameter save_name: its format (e.g., 'AutoSave_0221') and default behavior (loads most recent autosave if not provided). This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Full game recovery: kill, relaunch, and load a save.' It uses specific verbs and resources, and the combined action distinguishes it from sibling tools like kill_game, launch_game, and load_save.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends this tool for recovering from game hangs, e.g., 'AI turn processing stuck in infinite loop.' It does not explicitly exclude alternatives, but the context makes it clear when to use this tool over individual steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_luaADestructive
Run arbitrary Lua code in the game. Advanced escape hatch — prefer built-in tools.
Args:
code: Lua code to execute. Use print() for output, end with print("---END---").
context: "gamecore" (default) for read-only state queries.
"ingame" for commands and UI-dependent queries.
Context differences:
gamecore: Players[], GameInfo.*, Map.*, Game.* — safe read-only access.
CANNOT use: UI.*, UnitManager.*, CityManager.*, notifications.
ingame: All APIs including UI.*, UnitManager.*, CityManager.*.
Use for: moving units, setting research, diplomacy actions.
Always use print() for output (not return).
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| context | No | gamecore |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description expands beyond destructiveHint annotation by detailing safety profiles (gamecore read-only, ingame mutable), output via print() convention, and limitations of each context. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (Args, Context differences, Always use). Concise yet comprehensive; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive for an arbitrary code execution tool: purpose, usage, parameters, constraints, output conventions, and safety considerations. Output schema exists but description still provides necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% coverage but description explains both parameters: code (with print() usage) and context (with allowed values and behavioral differences). Fully compensates for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear purpose: 'Run arbitrary Lua code in the game. Advanced escape hatch — prefer built-in tools.' Distinguishes from siblings by noting it's an escape hatch.
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?
Explicit when to use ('prefer built-in tools'), context differences (gamecore vs ingame) with detailed allowed APIs and use cases. Provides clear guidance on selecting context based on safety needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_diplomatic_actionA
Send a proactive diplomatic action to another civilization.
Args:
other_player_id: The player ID (from get_diplomacy output)
action: One of: DIPLOMATIC_DELEGATION, DECLARE_FRIENDSHIP, DENOUNCE,
RESIDENT_EMBASSY, OPEN_BORDERS,
DECLARE_SURPRISE_WAR, DECLARE_FORMAL_WAR, DECLARE_HOLY_WAR,
DECLARE_LIBERATION_WAR, DECLARE_RECONQUEST_WAR,
DECLARE_PROTECTORATE_WAR, DECLARE_COLONIAL_WAR,
DECLARE_TERRITORIAL_WAR
force: Override the pre-war gate (NO_SIEGE_VS_WALLS). War declarations
force_reason: One sentence on WHY you are overriding. Recorded to
data/force_log.jsonl. Without it a post-game review cannot tell
a wrong gate from a wrong call — write it even when in a hurry.
against a civ with visible walled cities are blocked while you
have no wall-breaker units (siege class, battering ram/siege
tower, or ranged strength >= 60).
Delegations cost 25 gold and can be rejected if the civ dislikes you.
Embassies require Writing tech. Use get_diplomacy to see available actions.
Surprise war is always available if not allied/friends. Other war types
(casus belli) require specific civics and conditions.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | ||
| action | Yes | ||
| force_reason | No | ||
| other_player_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 and does supply real behavior: delegation cost of 25 gold, rejection risk, Writing tech requirement for embassies, surprise-war availability, and the pre-war gate plus force_log recording. The pre-war gate paragraph is garbled and out of order ('against a civ with visible walled cities are blocked while you have no wall-breaker units' appears after the force_reason note), which obscures the key rule. Solid content, damaged by scrambled structure.
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 force/force_reason block is visibly mangled: the gate explanation is split and spliced after the force_reason sentence with misplaced indentation, so sentences run together out of logical order. Elsewhere the prose is dense and useful, but the ordering failure actively hurts comprehension of the most safety-relevant parameter.
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?
An output schema exists, so return values need not be explained. For a 4-param, zero-schema-coverage mutation tool, the description covers parameter meanings, costs, tech prerequisites, and the war-gate exception — nearly everything an agent needs, short of sibling routing.
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 0%, so the description must compensate and does: it explains other_player_id's provenance ('from get_diplomacy output'), enumerates all 13 action values (the schema has no enum at all), and explains both force (overriding the NO_SIEGE_VS_WALLS gate) and force_reason (recorded to data/force_log.jsonl). This is well beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Send a proactive diplomatic action to another civilization') and the word 'proactive' distinguishes it from respond_to_diplomacy. It never names a sibling explicitly, so an agent must infer the boundary itself.
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?
'Use get_diplomacy to see available actions' gives a discovery path, and the war-type rules hint at when certain actions are legal. However, there is no guidance on when NOT to use this versus respond_to_diplomacy or get_pending_diplomacy, which are the obvious confusable siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_envoyA
Send an envoy to a city-state.
Args:
player_id: The city-state's player ID (from get_city_states)
Requires available envoy tokens. Use get_city_states to see options.
| Name | Required | Description | Default |
|---|---|---|---|
| player_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action and prerequisite but does not describe side effects (e.g., consumption of envoy tokens), irreversibility, required game phase, or what the tool returns despite the presence of an output 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?
The description is three short sentences with the core action first, followed by parameter definition and prerequisite. Every sentence adds value without redundancy, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers the main purpose, parameter source, and a key prerequisite. It does not describe the return value, but the output schema likely provides that. Overall, it is mostly complete for the agent's needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no description in schema), but the description adds meaning by explaining the player_id parameter as 'The city-state's player ID (from get_city_states),' sourcing it from a sibling tool. This compensates well for the lack of schema documentation.
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 starts with 'Send an envoy to a city-state,' which is a specific verb-resource-target combination. It clearly distinguishes from sibling tools like 'send_diplomatic_action' or 'form_alliance' by focusing on envoys and city-states.
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?
It states the prerequisite 'Requires available envoy tokens' and directs the agent to 'Use get_city_states to see options,' providing clear guidance on when and how to use the tool. It does not explicitly mention when not to use, but the requirement and reference to sibling tool are helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_city_focusA
Set a city's citizen yield priority.
Args:
city_id: City ID
focus: One of: food, production, gold, science, culture, faith, default
'default' clears all focus settings.
Cities automatically assign citizens to tiles. This biases the AI
toward the chosen yield type when assigning new citizens.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | Yes | ||
| city_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses it biases AI assignment, not direct control, but lacks prerequisites, side effects, or reversibility details.
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?
Concise with front-loaded purpose, though the 'Args' section is slightly redundant with the schema.
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?
Adequately covers key details for a simple tool; output schema exists but description doesn't reference return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, description adds meaning by listing focus options and explaining 'default' clears settings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Set a city's citizen yield priority.' Distinct from sibling tools like set_city_production.
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?
Explains AI biasing and valid foci, but no explicit when-not-to-use or comparison to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_city_productionA
Set what a city should produce.
Args:
city_id: City ID (from get_cities output)
item_type: UNIT, BUILDING, DISTRICT, or PROJECT
item_name: e.g. UNIT_WARRIOR, BUILDING_MONUMENT, DISTRICT_CAMPUS, PROJECT_LAUNCH_EARTH_SATELLITE
target_x: X coordinate for district/wonder placement (required for districts — use get_district_advisor to find best tile)
target_y: Y coordinate for district/wonder placement
force: Override a RED-alert block on civilian production. Only use
after reading the block's explanation — it fires when producing
a settler/builder while hostiles are at the gates.
force_reason: One sentence on WHY you are overriding. Recorded to
data/force_log.jsonl. Without it a post-game review cannot tell
a wrong gate from a wrong call — write it even when in a hurry.
Tip: call get_cities first to see your cities and their IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | ||
| city_id | Yes | ||
| target_x | No | ||
| target_y | No | ||
| item_name | Yes | ||
| item_type | Yes | ||
| force_reason | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does well: it explains the RED-alert gate (settler/builder while hostiles are near), that force overrides it, and that force_reason is persisted to data/force_log.jsonl for post-game review. It omits what happens to the city's existing production item and any cost/turn implications of switching.
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?
Purpose is front-loaded in one line and the Args block is scannable. The force_reason guidance is slightly editorial ('write it even when in a hurry') but that redundancy reinforces a genuinely error-prone parameter rather than padding.
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 7-param mutation tool with no annotations, the description covers the risky path thoroughly, and an output schema exists so return values need no explanation. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it does: every one of the 7 params is explained, item_type's four allowed values are enumerated (the schema has no enum), item_name gets concrete examples, target_x/target_y are scoped to districts/wonders, and force vs force_reason roles are separated.
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 opening line gives a specific verb and resource ('Set what a city should produce'), and the Args list makes the item_type scope (UNIT/BUILDING/DISTRICT/PROJECT) concrete. It does not, however, distinguish itself from close siblings like set_production_queue or fill_idle_production, so an agent must infer the boundary.
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?
Clear prerequisites are stated: call get_cities first for IDs, use get_district_advisor to pick a tile when item_type is DISTRICT, and only pass force after reading the RED-alert explanation. It lacks any explicit statement of when to prefer this over set_production_queue, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_policiesA
Set policy cards in government slots.
Args:
assignments: Comma-separated slot assignments, e.g.
"0=POLICY_AGOGE,1=POLICY_URBAN_PLANNING"
Slots not listed keep their current policy. Use NONE to
explicitly clear a slot (e.g. "2=NONE"). Use get_policies to
see available policies and slot indices.
Wildcard slots can accept any policy type. Military slots accept
military policies, economic slots accept economic policies, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| assignments | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses slot behavior: unlisted slots retain current policy, and NONE clears slots. It also explains slot type restrictions (wildcard, military, economic). Missing are potential side effects like cost or turn limitations, but overall transparency is good.
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, front-loading the purpose, then detailing the argument format with examples. Every sentence adds value, and the structure with bullet points aids readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description need not explain returns. It covers argument format, slot interaction, and references get_policies for discovery. Minor omission: it might assume the user knows government slots are active, but this is implied.
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 single parameter 'assignments' has no schema description (0% coverage), but the description fully compensates with a clear format, examples, and slot-specific semantics, making the parameter meaning completely clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets policy cards in government slots, with a specific verb and resource. It distinguishes itself from the read-only sibling tool get_policies and explains the assignment format, making the purpose 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 provides clear usage context by referencing get_policies for policy discovery and explaining how to keep or clear slots. However, it does not explicitly state when to use this tool versus alternatives, though no other sibling directly conflicts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_production_queueA
Plan a city's build order once — end_turn auto-advances it when the city's production slot is empty (defect 65: cities idling on "Building: nothing" for turns after every completion).
Args:
city_id: City ID (from get_cities output)
items: Comma-separated item names in order. item_type is inferred
from the prefix (BUILDING_/UNIT_/DISTRICT_/PROJECT_).
Districts MUST carry placement coords inline:
"DISTRICT_CAMPUS@69,47" (use get_district_advisor first).
**Wonders need coords too** — they are BUILDING_ items but
are placed on a tile like districts:
"BUILDING_FORBIDDEN_CITY@67,49" (use get_wonder_advisor).
A wonder queued without coords cannot be rejected here (the
prefix doesn't say which buildings are wonders) and fails at
consumption time instead — 2026-08-11 T269 cost Ostia a whole
idle turn that way.
Example: "BUILDING_MARKET,UNIT_TRADER,DISTRICT_CAMPUS@69,47"
Empty string shows this city's current queue.
"clear" empties this city's queue.
The queue is a fallback, not a lock: a manual set_city_production always
wins; consumption happens only when the slot is empty at end_turn time.
A rejected item pauses the queue with a visible event — this includes
the RED-alert civilian-production gate, which still applies at
consumption time. Persisted per game — survives restarts.
| Name | Required | Description | Default |
|---|---|---|---|
| items | No | ||
| city_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does so: it discloses consumption timing, that a rejected item pauses the queue with a visible event, that the RED-alert civilian-production gate still applies at consumption time, and that state is persisted per game and survives restarts. It even flags a silent failure mode (a wonder queued without coords cannot be rejected up front and fails at consumption) with a concrete incident, which is unusually high-value behavioral disclosure.
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?
Core purpose and the fallback semantics are front-loaded, and the arg block is scannable. A few passages drift into narrative (defect 65, the 2026-08-11 T269 Ostia anecdote) that could be tightened, though each does encode a real failure mode rather than pure filler.
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-parameter mutation tool with no annotations, the description covers purpose, argument encoding, precedence versus manual production, rejection/pause behavior, and persistence. An output schema exists, so return values need not be explained, and nothing an agent needs in order to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate entirely, and it does: city_id is sourced to get_cities output, and items is fully specified with comma-separated ordering, prefix-based item_type inference, the 'DISTRICT_X@x,y' and 'BUILDING_X@x,y' coord syntax, a worked example, and the empty-string/'clear' special values. Nothing about either parameter is left to inference.
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 and resource ('Plan a city's build order') and immediately clarifies the mechanism ('end_turn auto-advances it when the city's production slot is empty'). It also implicitly separates itself from the sibling set_city_production by declaring the queue a fallback rather than a lock, so an agent can distinguish the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the competing tool and the precedence rule ('a manual set_city_production always wins; consumption happens only when the slot is empty at end_turn time'), which is exactly the when-to-use-vs-alternative guidance needed. It also gives precondition routing ('use get_district_advisor first', 'use get_wonder_advisor') and documents the two special modes (empty string = show current queue, 'clear' = empty it).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_researchA
Choose a technology or civic to research.
Args:
tech_or_civic: The type name, e.g. TECH_POTTERY or CIVIC_CRAFTSMANSHIP
category: "tech" or "civic" (default: tech)
Tip: call get_tech_civics first to see available options.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | tech | |
| tech_or_civic | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It explains the arguments but does not mention that setting research overrides the current research, or any safety implications. The mutation aspect is not highlighted.
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 well-structured: purpose first, then argument details, with a helpful tip at the end. It is efficient and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the tool is simple, the description is fairly complete. It mentions a prerequisite (get_tech_civics) and explains the parameters. However, it lacks details on side effects or constraints (e.g., whether the tool can be called multiple times).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds value by providing examples (e.g., TECH_POTTERY) and clarifying that category defaults to 'tech'. It explains the meaning of both parameters beyond the schema's type-only definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to choose a technology or civic to research. The examples (TECH_POTTERY, CIVIC_CRAFTSMANSHIP) clarify the input format. However, it does not explicitly distinguish from sibling tools beyond the tip.
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 tip 'call get_tech_civics first' provides clear guidance on when to use this tool. It implies that the tool should be used after obtaining available options, but it does not state when not to use it or provide explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_research_queueA
Plan a research route once — end_turn auto-advances it on completion.
Args:
items: Comma-separated type names in order, e.g.
"TECH_NUCLEAR_FISSION,TECH_LASERS,TECH_NUCLEAR_FUSION".
Empty string shows the current queues without changing them.
"clear" empties the queue for the given category.
category: "tech" or "civic" (default: tech)
The queue is a fallback, not a lock: it is only consumed when the
current research/civic slot is EMPTY at end_turn time, so a manual
set_research always wins. A queue item the engine rejects pauses the
queue with a visible event. Persisted per game — survives restarts.
| Name | Required | Description | Default |
|---|---|---|---|
| items | No | ||
| category | No | tech |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses fallback semantics, that rejected items pause the queue with a visible event, that state is persisted per game across restarts, and what 'clear' destroys. This is unusually complete behavioral context 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 first line front-loads the core concept and auto-advance behavior, then the Args block documents parameters efficiently. Every sentence adds an operational detail; nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, return values need not be explained. For a two-parameter queue mutation with no annotations, the description covers purpose, parameter formats, precedence rules, failure behavior, and persistence, leaving no critical gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: items is documented as comma-separated type names with an example, plus special values '' and 'clear'; category is documented as "tech" or "civic" with a default of tech. This fully compensates for the bare 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 specific verb and resource: planning a research route via a persisted queue that end_turn auto-advances. It explicitly distinguishes itself from manual set_research by noting that a manual set_research always wins, so an agent can tell the two apart without opening schemas.
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?
Explains exactly when the queue is consumed (only when the research/civic slot is EMPTY at end_turn), names the competing tool set_research and asserts its precedence, and documents special item values ('' to inspect, 'clear' to empty).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_victory_goalA
Lock in the victory path for this game. Do this once, early.
After locking, every turn's briefing shows the goal, and deterministic
deviation checks will call out actions that drift from it (e.g. building
armies while pursuing a science victory with no threats around).
Args:
victory_type: SCIENCE, CULTURE, RELIGION, or DOMINATION
reason: Why this path fits this civ/map (shown in briefings)
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| victory_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses meaningful behavior: the goal becomes locked, appears in every turn briefing, and triggers deterministic deviation checks, with a concrete example. It stops short of stating whether the goal can later be changed or cleared, or what errors/permissions apply.
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 front-loaded with the action, then timing, then downstream effects. The parameter section is compact, and the parenthetical example earns its place by illustrating what deviation checks flag.
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?
An output schema exists, so return values need not be explained, and the description covers persistence, briefings, and deviation checks. It could better connect to get_victory_progress or explicitly state whether re-calling changes the locked goal, but it is adequate for correct invocation.
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 0%, so the description must define both parameters, and it does: victory_type is constrained to SCIENCE, CULTURE, RELIGION, or DOMINATION, and reason is explained as being shown in briefings. It does not mention exact casing, length constraints, or validation rules, but the core semantics are covered.
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 specific verb and resource: locking in the game's victory path. It clearly frames this as goal commitment rather than progress inspection, though it does not explicitly name a sibling such as get_victory_progress for contrast.
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?
It states clear timing: 'Do this once, early.' That tells the agent when to invoke it, and the downstream effects explain why early use matters. It does not name alternatives or explicit when-not conditions, keeping it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skip_remaining_unitsA
Skip all units that still have moves remaining.
Useful after diplomacy encounters invalidate all standing orders. Uses GameCore FinishMoves on each unit — fast, reliable, no async issues.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes implementation using GameCore FinishMoves and asserts reliability, but does not disclose side effects (e.g., whether moves are consumed, undoability) beyond the action itself. With no annotations, more detail would be beneficial.
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?
Extremely concise: three short sentences, no filler. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema likely documents return values, the description covers purpose, usage context, and implementation notes thoroughly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters defined; schema coverage is 100%. Description does not explicitly state 'no arguments needed,' but baseline for 0 parameters is 4, and the schema implies it.
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?
Clearly states the tool skips all units with moves remaining, which is a specific verb+resource. Distinguishes from sibling tools like unit_action and end_turn by its global scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage context: 'useful after diplomacy encounters invalidate all standing orders.' Does not explicitly exclude alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spy_actionA
Send a spy to a city or launch a spy mission.
Args:
unit_id: The spy's composite ID (from get_spies output)
action: 'travel' to move spy to a city, or a mission type to launch a mission.
Mission types: COUNTERSPY, GAIN_SOURCES, SIPHON_FUNDS, STEAL_TECH_BOOST,
SABOTAGE_PRODUCTION, GREAT_WORK_HEIST, RECRUIT_PARTISANS,
NEUTRALIZE_GOVERNOR, FABRICATE_SCANDAL
target_x: X coordinate of the target city tile
target_y: Y coordinate of the target city tile
Travel notes:
- Valid targets: your own cities and city-states only.
- Allied civ cities are NOT valid travel targets.
- Travel is queued end-of-turn; spy position updates after turn ends.
Mission notes:
- Spy must be physically IN the target city to launch any offensive mission.
- Use 'travel' first, then end the turn, then launch the mission.
- COUNTERSPY defends your own city (spy must be in your city).
- get_spies shows which ops are available at the spy's current location.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| unit_id | Yes | ||
| target_x | Yes | ||
| target_y | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure. It explains that travel is queued end-of-turn, spy position updates after turn ends, and missions require the spy to be physically in the target city. It does not mention potential side effects like diplomatic repercussions or cooldowns, but covers the essential behavior well.
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 well-structured with sections (Args, Travel notes, Mission notes) and is front-loaded with the main action. It is relatively concise given the complexity, but could be slightly tighter by removing redundant phrases like 'Valid targets: your own cities and city-states only' which is clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no annotations, the description is complete enough for an AI agent to use the tool correctly. It explains the workflow (travel then mission), valid targets, sequencing, and references get_spies for available ops. The presence of an output schema supplants the need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no property descriptions (0% coverage), but the description fully explains each parameter: unit_id is the spy's composite ID from get_spies, action includes 'travel' and enumerated mission types, target_x and target_y are coordinates. This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Send a spy to a city or launch a spy mission.' It distinguishes between two actions (travel and mission) and provides specific mission types, making it distinct from sibling tools like unit_action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use each action: valid travel targets (own cities and city-states, not allied civ cities), the need to travel first before missions, and the sequencing ('Use 'travel' first, then end the turn, then launch the mission'). It also mentions checking get_spies for available ops.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_siege_planARead-only
攻城计划:3-5 步战术模板(站位→削墙→收尾→占领)。仅当战前评估为 可打/需准备时给计划;不推荐/会全灭时会拒绝并说明先补什么条件。
| Name | Required | Description | Default |
|---|---|---|---|
| city_x | Yes | ||
| city_y | Yes | ||
| wall_hp | No | ||
| wall_max_hp | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true is consistent with a pure advisory/planning tool, and the description adds real behavior beyond that: the output shape (3-5 steps), the refusal branch, and the fact that a refusal still returns actionable advice on what conditions to fix first. It does not state what happens if the required wall data is absent, which keeps it from a 5.
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 tightly packed sentences with no filler; the capability and the phase list come first, then the gating and refusal logic. Sizing is well matched to a low-complexity advisory 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?
Since an output schema exists, the return payload needn't be spelled out, and the description covers purpose, gating, and refusal behavior adequately. The gap is parameter context: for a four-parameter tool with 0% schema coverage, an agent gets no guidance on what wall_hp/wall_max_hp mean or how -1 is interpreted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for all four parameters, and it says nothing about any of them. In particular, the sentinel default of -1 for wall_hp/wall_max_hp (presumably 'unknown, fetch it yourself') is never explained, and nothing indicates whether the coordinates must be an already-scouted city.
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 specific output (a 3-5 step siege tactical template with an explicit phase breakdown: positioning → wall breaking → finishing → capture), so the agent knows exactly what it gets back. It does not explicitly name assess_attack as the prerequisite tool, but the mention of '战前评估' (pre-battle assessment) makes the relationship inferable.
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?
It clearly sets both the positive and negative gating conditions: produce a plan only when the assessment is 'attackable/needs preparation', and refuse with remediation advice when the odds are bad or a wipe is certain. What's missing is a pointer to which sibling tool performs that assessment, so the agent must infer the call ordering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unit_actionA
Issue a command to a unit.
Args:
unit_id: The unit's composite ID (from get_units output)
force: Override a safety block. Only set this after reading the
block's explanation and deciding the risk is worth it — the
safety checks exist because these mistakes cost whole games
(civilians walking into barbarians, ranged units moving before
they shoot). Leave it False by default.
force_reason: One sentence on WHY you are overriding. Recorded to
data/force_log.jsonl. Without it a post-game review cannot tell
a wrong gate from a wrong call — write it even when in a hurry.
action: One of: move, attack, fortify, skip, found_city, improve, repair, remove_improvement, remove_feature, build_route, automate, heal, alert, sleep, delete, trade_route, activate, sacrifice_charges, hurry_production, hurry_wonder, hurry_district, teleport, spread_religion, excavate, form_corps, form_army, rebase
target_x: Target X coordinate (required for move/attack/trade_route/teleport/rebase)
target_y: Target Y coordinate (required for move/attack/trade_route/teleport/rebase)
improvement: Improvement type for builders (required for improve), e.g.
IMPROVEMENT_FARM, IMPROVEMENT_MINE, IMPROVEMENT_QUARRY,
IMPROVEMENT_PLANTATION, IMPROVEMENT_CAMP, IMPROVEMENT_PASTURE,
IMPROVEMENT_FISHING_BOATS, IMPROVEMENT_LUMBER_MILL
For move/attack: provide target_x and target_y.
For trade_route: provide target_x and target_y of destination city.
For teleport: provide target_x and target_y of destination city. Traders only, must be idle (not on active route).
For rebase: provide target_x/target_y of a friendly aerodrome or carrier. Air units only —
they never use move (they don't walk the map), and anything past their 15-tile strike
range can only be reached by rebasing. Long hops may be refused; go via an intermediate
aerodrome (measured: 44 tiles rejected, 20 accepted).
For improve: provide improvement name. Builder must be on the tile.
For repair: repairs a pillaged improvement on the builder's current tile. No improvement name needed.
For remove_improvement: demolishes an intact improvement on the builder's current tile (e.g. to replace a farm with a mine). Costs one charge.
For activate: activates a Great Person on their matching district.
For sacrifice_charges: Royal Society builder sacrifice — spends ALL builder charges to boost a district project (2% of cost per charge). Builder must be on the district tile. Expansion-only; absent in RULESET_STANDARD.
For hurry_production: spends builder charges to hurry construction on the builder's current tile, auto-detecting which variant this civ has. hurry_wonder forces the wonder variant (Qin Shi Huang / FIRST_EMPEROR_TRAIT, early eras only), hurry_district forces the district variant (Aztec). Move the builder onto the in-progress wonder/district tile first. If your leader lacks the ability the error says so explicitly — it is a ruleset limit, not a tool failure.
For form_corps / form_army: merges the SAME-TYPE unit at target_x/target_y into this
one. Corps (+10 combat strength) needs Nationalism; Army (+17) needs Mobilization —
these are the two free power spikes on the civics tree, and the same standing army
gains roughly an era's worth of strength by merging. Both units must be the same
unit type; move them together first.
For spread_religion: spreads religion at current tile. Missionaries/Apostles only.
For build_route: builds road/railroad on current tile. Military Engineers only. No charges used; costs 1 Iron + 1 Coal per railroad tile.
For fortify/skip/found_city/automate/heal/alert/sleep/delete: no target needed.
heal = fortify until healed (auto-wake at full HP).
alert = sleep but auto-wake when enemy enters sight range.
delete = permanently disband the unit.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | ||
| action | Yes | ||
| unit_id | Yes | ||
| target_x | No | ||
| target_y | No | ||
| improvement | No | ||
| force_reason | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does: it names irreversible operations ('delete = permanently disband'), resource costs (1 Iron + 1 Coal per railroad tile, one charge for remove_improvement, ALL charges for sacrifice_charges), the force-override safety gate, and the side effect of writing to data/force_log.jsonl. Error behavior is also characterized ('Long hops may be refused... 44 tiles rejected, 20 accepted'), which is unusually concrete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then structured as an args block plus per-action rules, which is easy to scan. Some passages are padded with motivational prose ('these mistakes cost whole games (civilians walking into barbarians, ranged units moving before they shoot)'), but the density of actionable content remains high for a 27-action 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 7-parameter, 27-action mutation tool with no annotations, the description covers every action's requirements, prerequisites, costs, and common failure modes, and an output schema exists so return values need no explanation. Nothing an agent needs in order to call this correctly appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must supply all parameter meaning and it does: unit_id provenance ('composite ID from get_units output'), the full 27-value action enum that the schema leaves as a bare string, conditional coordinate requirements, and concrete improvement identifiers (IMPROVEMENT_FARM, IMPROVEMENT_LUMBER_MILL) where the schema has only a nullable string. It fully compensates for the empty 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?
Opens with a specific verb+resource: 'Issue a command to a unit.' Combined with the exhaustive action list, an agent can immediately tell this is the mutation entry point for units versus sibling reads like get_units or get_unit_promotions. It stops short of naming a sibling to differentiate against, so 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes each action: 'For move/attack: provide target_x and target_y', 'Air units only — they never use move', 'go via an intermediate aerodrome'. Prerequisites (techs, unit types, tiles occupied, idle status) and failure conditions (ruleset limits, long-hop refusal) are stated per action, so the agent knows both when to invoke each action and when an action is not applicable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upgrade_unitA
Upgrade a unit to its next type (e.g. Slinger -> Archer).
Args:
unit_id: The unit's composite ID (from get_units output)
Requires the right technology, enough gold, and the unit must have
moves remaining. The unit's movement is consumed by upgrading.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that upgrading consumes movement and requires specific conditions, but lacks details on failure modes or additional effects beyond movement consumption.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct: one sentence for purpose, then clear bullet-point-like style for arguments and requirements. No unnecessary words, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no annotations, and an output schema (not detailed but exists), the description covers key aspects (purpose, prerequisites, side effects). It omits return value details, but the output schema compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, unit_id, is described as 'The unit's composite ID (from get_units output)', providing crucial context beyond the schema's type integer. This helps the agent understand where to obtain the value, though a format example would be helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Upgrade a unit to its next type') with an example ('Slinger -> Archer'), distinguishing it from sibling tools like promote_unit which have different functions.
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 specifies prerequisites (right technology, enough gold, moves remaining) and side effects (movement consumed), guiding the agent on when to use the tool. However, it does not explicitly mention when not to use or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_strategic_summaryA
Write a strategic summary for long-term memory.
Call this every 5-10 turns to compress recent history into a compact
strategic context. This persists to disk and survives session restarts.
Args:
turn: Current turn number.
summary: 2-3 sentences summarizing your empire state and situation.
goals: Current long-term goals (victory target, expansion plans).
threats: Major threats (hostile neighbors, barbarians, resource gaps).
opportunities: Current opportunities (weak neighbors, settle spots).
key_decisions: Important recent decisions and their rationale.
Returns:
Confirmation string.
| Name | Required | Description | Default |
|---|---|---|---|
| turn | Yes | ||
| goals | No | ||
| summary | Yes | ||
| threats | No | ||
| key_decisions | No | ||
| opportunities | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the readOnlyHint=false annotation: it persists to disk, survives session restarts, and returns a confirmation string. It does not discuss whether repeated writes overwrite previous summaries, but the key mutating behavior is disclosed.
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 front-loaded with purpose and cadence, then uses a compact Args and Returns structure. Every sentence and field explanation earns its place, with no redundant restatement of the name.
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 six-parameter write tool with 0% schema description coverage, the description fully compensates by explaining all arguments and the return value. The annotations are minimal but the description supplies the behavioral details an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It documents all six parameters with meaningful semantics, including what each field should contain and which are required versus optional under the Args section.
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 verb and resource: write a strategic summary for long-term memory. It clearly distinguishes this from ordinary turn actions by explaining that it compresses recent history into persistent strategic context, though it does not explicitly mention the sibling read_strategic_summary.
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 cadence is explicit: 'Call this every 5-10 turns' and it says to use it to compress recent history. It gives clear usage context but does not name alternatives or conditions where calling it would be inappropriate.
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.
99 tool updates
v0.1.0- First observed
appoint_governor - First observed
assess_attack - First observed
assess_loyalty_flip - First observed
assess_settle_location - First observed
assign_governor - First observed
change_government - First observed
choose_dedication - First observed
choose_pantheon - First observed
city_action - First observed
dismiss_popup - First observed
end_turn - First observed
fill_idle_production - First observed
form_alliance - First observed
found_religion - First observed
get_builder_tasks - First observed
get_cities - First observed
get_city_production - First observed
get_city_states - First observed
get_dedications - First observed
get_diary - First observed
get_diplomacy - First observed
get_district_advisor - First observed
get_empire_resources - First observed
get_expert_playbook - First observed
get_game_overview - First observed
get_global_settle_advisor - First observed
get_governors - First observed
get_gp_advisor - First observed
get_great_people - First observed
get_learnings - First observed
get_map_area - First observed
get_notifications - First observed
get_opening_assessment - First observed
get_pantheon_beliefs - First observed
get_pathing_estimate - First observed
get_pending_diplomacy - First observed
get_pending_trades - First observed
get_pillage_advice - First observed
get_policies - First observed
get_post_war_advice - First observed
get_power_balance - First observed
get_purchasable_tiles - First observed
get_religion_beliefs - First observed
get_religion_spread - First observed
get_settle_advisor - First observed
get_spies - First observed
get_strategic_map - First observed
get_strategy_notes - First observed
get_tech_civics - First observed
get_trade_destinations - First observed
get_trade_options - First observed
get_trade_routes - First observed
get_unit_promotions - First observed
get_units - First observed
get_victory_progress - First observed
get_wonder_advisor - First observed
get_world_congress - First observed
kill_game - First observed
launch_game - First observed
list_lua_states - First observed
list_saves - First observed
load_game_save - First observed
load_save - First observed
load_save_from_menu - First observed
patronize_great_person - First observed
plan_add - First observed
plan_done - First observed
plan_drop - First observed
plan_list - First observed
promote_governor - First observed
promote_unit - First observed
propose_peace - First observed
propose_trade - First observed
purchase_item - First observed
purchase_tile - First observed
queue_wc_votes - First observed
read_strategic_summary - First observed
record_learning - First observed
recruit_great_person - First observed
reject_great_person - First observed
respond_to_diplomacy - First observed
respond_to_trade - First observed
restart_and_load - First observed
run_lua - First observed
send_diplomatic_action - First observed
send_envoy - First observed
set_city_focus - First observed
set_city_production - First observed
set_policies - First observed
set_production_queue - First observed
set_research - First observed
set_research_queue - First observed
set_victory_goal - First observed
skip_remaining_units - First observed
spy_action - First observed
suggest_siege_plan - First observed
unit_action - First observed
upgrade_unit - First observed
write_strategic_summary
TDQS
Scored across 99 tools
Most tools map to a single engine action, but several clusters overlap: five save/recovery tools (load_save, load_game_save, load_save_from_menu, restart_and_load, list_saves) and a dense advisory layer (get_settle_advisor vs get_global_settle_advisor vs assess_settle_location; get_strategy_notes vs get_expert_playbook; assess_attack vs suggest_siege_plan) force the agent to parse long descriptions to pick correctly. The descriptions do carry disambiguating guidance in most cases, which keeps this above a 2.
Nearly everything is snake_case with a verb prefix (get_/set_/choose_/propose_/assess_/promote_), including the paired get_x / do_x pattern for advisors. Minor deviations are noun-first names like plan_list/plan_add/plan_done/plan_drop and action-dispatchers city_action/unit_action/spy_action, but the scheme stays readable and predictable.
99 tools is far past the point where an agent can hold the surface in context; the dispatcher tools (unit_action, spy_action, city_action, propose_trade, run_lua) already absorb many variants, so the remaining count is inflated. The domain (a full 4X game) explains some breadth, but sub-tool proliferation in advice, memory, and save/load makes it heavy rather than well-scoped.
Coverage is unusually broad: map/units/cities/production/queues, tech+civics, religion, governors, great people, spies, trade routes, World Congress, victory tracking, save/load recovery, and persistent memory all have tools. Minor gaps exist (no great-work/tourism management, limited city-state quest handling, tile-level map queries capped by radius), but nothing that would dead-end a core workflow.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
- FensoryOAuthcom.fensory
Trading MCP server for AI agents, with live market data, account reads and controlled execution.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server that acts as a local stdio adapter for Civarium agent HTTP APIs, enabling interaction with game agents through tools like get_active_round, get_visible_state, submit_command, list_my_commands, and wait_next_round.15MIT
- AlicenseAqualityFmaintenanceAn MCP server that lets LLM agents play full games of Civilization VI. It connects to a running game and provides tools for unit movement, city management, diplomacy, and more, all through the game's rule-enforcing APIs.76227MIT
- AlicenseAqualityCmaintenanceEnables any local AI agent to play turn-based games over MCP by exposing reset, observe, and act verbs with structured observations and validated legal actions.6MIT
- FlicenseAqualityBmaintenanceEnables an AI coach to inspect Civilization VI game state, check game connectivity, and query detailed rules for techs, civics, units, districts, and more through MCP tools.8-