Skip to main content
Glama
Pyrogenesis Fair Player MCP

Pyrogenesis Fair Player MCP

by yunqinglt

set_rally_point

Assigns or appends rally tasks—move, attack, gather, repair, and more—to owned entities with rally points, directing newly trained units to intended positions or targets.

Instructions

Set 1..100 rally tasks on 1..200 completed owned entities with a rally point.

Positions: move, attack_move, patrol with x/z. Targets: gather, repair (including foundations), garrison, occupy_turret, attack (damage), capture, trade, collect_treasure. Support/trade targets must be owned; other targets must be currently visible. queued=false replaces, true appends (total at most 100). No existing unit is redirected. Units use the current rally queue at birth, not at training enqueue time; incompatible unit capabilities, target loss, capacity and native AI may change the outcome. Some holders also use rally points when unloading. Read properties.rally_point and observe newborn units to verify. No raw commands or formations.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "entity_ids": "<entity_ids>",
      "orders": "<orders>"
    },
    "name": "set_rally_point"
  }
}

Input Schema

NameRequiredDescriptionDefault
ordersYes
queuedNo
entity_idsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full behavioral load and does so well: queued=false replaces versus queued=true appends, no existing unit is redirected, units consume the queue at birth rather than at enqueue time, and outcomes may drift due to unit capability, target loss, capacity, and native AI. It even tells the agent how to verify (read properties.rally_point, observe newborn units) and warns that some holders use rally points when unloading. It does not describe error or partial-failure responses, which keeps it below the top mark.

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 action and limits are front-loaded, and the 'Positions:'/'Targets:' labels give useful internal structure without lists or fluff. The register is telegraphic and some lines are cryptic fragments (for example 'Some holders also use rally points when unloading'), which costs a little readability, but almost every sentence carries operational information.

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 three-parameter mutation with no annotations and no output schema, the definition covers what is needed to call it correctly: valid entity state, target visibility rules, queue semantics, caps, and how to verify results. The remaining gap is failure reporting — it says outcome may be altered by external factors but never states whether invalid orders are rejected, silently dropped, or partially applied.

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

Parameters5/5

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: orders is decomposed into the three position types with x/z and the eight target types with target semantics (repair includes foundations, attack causes damage, support/trade must be owned), queued is explained as replace-versus-append with the 100 cap, and entity_ids is bounded to 1..200 completed owned entities holding a rally point. Each of the three parameters gains meaning the schema does not supply.

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

Purpose4/5

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

The first sentence states a specific verb and resource plus its scope: 'Set 1..100 rally tasks on 1..200 completed owned entities with a rally point.' That is far more precise than a bare 'set rally point' and an agent can tell it apart from clear_rally_point or order_units by the rally-queue framing. It stops short of naming those siblings explicitly, so sibling differentiation is implicit rather than stated.

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

Usage Guidelines4/5

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

The description gives real eligibility conditions for use: entities must be completed and owned and must have a rally point, support/trade targets must be owned, other targets must be currently visible, and totals are capped at 100. It also sets a boundary with 'No raw commands or formations,' steering the agent away from this tool for arbitrary orders. What is missing is any explicit routing statement such as when to prefer this over order_units or clear_rally_point.

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