Skip to main content
Glama
ty-meador

civ-v-llm-harness

by ty-meador

wait_for_my_turn

Blocks until it is your turn in Civilization V, handling hand-off screens and AI turns, then returns turn_status; on timeout, call again.

Instructions

Block until it is my turn (hotseat: dismisses the hand-off screen; LAN/solo: waits for the AIs to finish), then return turn_status. On timeout it returns the current status with my_turn=false -- call it again. A progress notification goes out every few seconds while waiting, so with a client that honours progress timeout_seconds can be as long as an AI round needs (600-1800); otherwise keep it under the client's tool-call limit. Also sweeps informational popups. finish_turn does end_turn + this + turn_digest in one call.

Returns early with discussion_pending=true when an AI leader wants an answer mid-turn: discussion() shows what they said and the buttons, respond_discussion(button_id) answers; for a trade offer on the table incoming_deal() reads the terms and accept_deal()/refuse_deal() resolve it; dismiss_discussion() leaves without agreeing. Then call this again. Returns early with tech_popup_pending=true when a technology must be chosen (research still unset). Every answer carries gate (as turn_status): null when you may act, else what still stands in the way and the tool that clears it. A timeout answer carries seat (the player this server waits for) and active_player; in hotseat a different active_player is the other player's turn -- call again.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
timeout_secondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.11.0

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does: it discloses blocking behavior, timeout semantics, periodic progress notifications, popup sweeping, hotseat vs LAN/solo differences, and the meaning of the `gate`, `seat`, and `active_player` return fields. This is unusually rich behavioral disclosure for a state-machine-like tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core blocking behavior and its timeout fallback are front-loaded in the first two sentences, and the dense remainder each conveys distinct branch handling. It is long but nearly every sentence earns its place, though the density could be trimmed slightly for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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

For a complex blocking tool with no output schema and no annotations, the description covers returns (turn_status, gate, seat, active_player), all early-return branches, timeout behavior, and follow-up tools. An agent has everything needed to call it and react to its output correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate for the single timeout_seconds parameter, which it largely does with actionable value guidance (600-1800 when the client honours progress, else under the tool-call limit). It does not reconcile this with the schema default of 90, leaving a small ambiguity, but adds clear meaning beyond the bare type/default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description opens with a specific verb+resource ('Block until it is my turn') and immediately distinguishes itself from siblings like turn_status and finish_turn by describing the blocking wait and its early-return states. An agent can tell exactly what this tool does 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance (blocking on turn transitions, sweeping popups), what to do on each early return (discussion_pending -> discussion()/respond_discussion(); tech_popup_pending -> choose research), and names alternatives (finish_turn = end_turn + this + turn_digest). The 'call it again' loops are laid out for each branch.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools