Skip to main content
Glama
ty-meador

civ-v-llm-harness

by ty-meador

generic_popup

Reads the open yes/no confirmation popup in Civilization V, returning its text and numbered buttons so you can decide which option to select.

Instructions

Read the open yes/no confirmation (the game's generic popup): its text and numbered buttons. These are BUTTONPOPUP_RETURN_CIVILIAN (keep a captured civilian or return it: returning to a city-state gives +30 influence, to an AI a diplomatic bonus), ANNEX_CITY / PUPPET_CITY after a conquest, BARBARIAN_RANSOM, MINOR_CIV_ENTER_TERRITORY, CONFIRM_COMMAND and the like. Nothing else moves while one is open ("popup needs a decision"). Answer with answer_popup(button).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.11.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full load and does it well: it discloses that this is a read-only inspection, that the game blocks all other action while a popup is open, and it explains the semantic consequences of the enumerated choices (returning a civilian to a city-state gives +30 influence). It stops short of describing error cases (e.g., behavior when no popup is open).

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

Conciseness4/5

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

Front-loaded with the core action, followed by the popup-type enumeration that establishes scope, then the blocking constraint, then the handoff to answer_popup. The middle enumeration is lengthy but each item earns its place by clarifying what 'generic popup' means; no redundant sentences.

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?

No output schema exists, so the description correctly describes the return content (popup text and numbered buttons). It covers purpose, blocking behavior, and the follow-up call, leaving only edge cases like 'no popup open' unspecified. Adequate for a zero-parameter read tool.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The description does not invent parameter semantics, and it correctly points the agent to answer_popup(button) for the write side, keeping the two tools' parameter roles distinct.

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 states a specific verb and resource: read the currently open generic popup, returning its text and numbered buttons. It also names the concrete popup variants (BUTTONPOPUP_RETURN_CIVILIAN, ANNEX_CITY, BARBARIAN_RANSOM, etc.) and contrasts cleanly with the sibling answer_popup, which is the tool that responds rather than reads.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Usage context is clear: call it when a popup is open, and it tells the agent to answer via answer_popup(button). It also specifies the gating condition that no other action can proceed while a popup is open. It lacks an explicit 'do not use when no popup is open' caveat, but the enumeration of triggers makes the intended context unambiguous.

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