Skip to main content
Glama
ty-meador

civ-v-llm-harness

by ty-meador

set_seat

Change or re-detect the server's active player seat to resolve 'seat not active' errors when the game waits for a human. Omit player_id to auto-detect; lists available human seats.

Instructions

Change which player this server plays, or re-detect it (player_id omitted). Needed when every tool answers "this seat is not active" although the game is waiting for a human: the server was started with --seat auto before the game was up, or a hotseat save was loaded and auto's default (seat 1) is not the seat on screen. Only a seat the engine considers human can be chosen; the answer lists human_seats. With no player_id: solo and network games re-run detection; hotseat takes the seat on screen when it is human. The notebook follows the seat (one notebook per game and seat). Usable while it is not my turn.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
player_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.11.0

TDQS

A4.7/5.0
Behavior5/5

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 so: it discloses the constraint (only an engine-recognized human seat can be chosen), the answer field human_seats, mode-dependent no-arg behavior (solo/network re-detect vs hotseat uses on-screen seat), the notebook side effect, and that it is usable out of turn.

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

Conciseness4/5

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

Front-loads the core action, then layers conditions and side effects, with every sentence carrying information. It is dense and somewhat long, but no sentence is filler.

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

Completeness4/5

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

For a no-annotation, no-output-schema tool in a complex game domain, it covers purpose, trigger, constraints, and the relevant return hint. Minor gaps remain about failure modes (e.g. what happens if an invalid or non-human id is passed).

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 define player_id, and it does: omitted means re-detect, present means choose a seat the engine considers human. It stops short of stating where valid ids come from beyond referencing the human_seats answer field, leaving a small gap.

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

Purpose5/5

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

States a specific verb and resource ('Change which player this server plays') plus the re-detection variant, which is a distinct operation rather than a vague restatement. An agent can tell exactly what the tool mutates in the game session.

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?

Gives an explicit triggering condition ('Needed when every tool answers "this seat is not active" although the game is waiting for a human') and names the concrete causes (--seat auto started too early, hotseat save with wrong default seat). This is unusually actionable when-to-use guidance.

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