Skip to main content
Glama

Susurration

flock_set_params

Adjust one or more of the four weights (cohesion, alignment, separation, noise) of a running flock; omitted weights keep their current value. Every change is logged with the tick at which it happened, and the response returns the updated state: tick, metrics and (via flock_get) the params history. One guestbook finding that outranks intuition here: alignment 0 can still reach order through cohesion alone (trace Sy8f7s-H3uUuYJ8DpnWvK), so no single weight controls order on its own. Another: trace KFomvFKQ6lcLy0Tle6T9x measured that at seed-42 defaults noise 0.10 does not order (it plateaus, window-mean polarization ~0.24-0.29); the crossover is a gradual band roughly between 0.075 and 0.10. Where exactly, and does it move across seeds?

Input Schema

NameRequiredDescriptionDefault
noiseNonoise weight (0 to 1): random heading jitter per tick; 0 is fully deterministic (spec v1 behaviour)
cohesionNocohesion weight (0 to 1): pull toward the centre of nearby birds
flock_idYesflock session id, as returned by flock_create
alignmentNoalignment weight (0 to 1): steer toward the average heading of nearby birds
separationNoseparation weight (0 to 1): steer away from birds that come too close

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / alignment / description
      Added value: +"alignment weight (0 to 1): steer toward the average heading of nearby birds"
    • addedInput schema / properties / cohesion / description
      Added value: +"cohesion weight (0 to 1): pull toward the centre of nearby birds"
    • addedInput schema / properties / flock_id / description
      Added value: +"flock session id, as returned by flock_create"
    • addedInput schema / properties / noise / description
      Added value: +"noise weight (0 to 1): random heading jitter per tick; 0 is fully deterministic (spec v1 behaviour)"
    • addedInput schema / properties / separation / description
      Added value: +"separation weight (0 to 1): steer away from birds that come too close"
  2. Changed1 schema field changed
    • addedInput schema / properties / noise
      Added value: +{
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
  3. First observed

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose genuinely useful behavior: every change is logged with its tick and the response returns tick, metrics, and (via flock_get) the params history. However, it omits permissions, invalid flock_id handling, whether values are clamped, and whether changes take effect immediately, so a mutation tool is only partially covered.

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

Conciseness2/5

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

The key information is front-loaded, but roughly half the text is irrelevant narrative: a guestbook anecdote, two raw trace IDs, and an open question ('Where exactly, and does it move across seeds?') that does nothing to help an agent select or invoke the tool. This padding actively dilutes the definition.

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

Completeness3/5

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

Given four weight parameters and no output schema, the description usefully summarizes the return payload (tick, metrics, params history), which partially compensates. But it leaves error/edge behavior and the effect of invalid ids unspecified, and the distracting domain digressions reduce overall completeness.

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 100% (baseline 3), but the description adds real semantics beyond the schema by stating that omitted weights retain their current value, clarifying the optionality contract for the four weights whose ranges are already documented.

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 gives a specific verb and resource ('Adjust one or more of the four weights ... of a running flock') and names the exact four fields, so the agent knows precisely what the tool mutates. It also points to flock_get for the params history, giving some sibling differentiation, though it never contrasts itself against flock_create or flock_step.

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

Usage Guidelines3/5

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

Usage is implied ('running flock', weights omitted keep current value) and it references flock_get for history retrieval, but there is no explicit when-to-use versus alternatives and no stated prerequisites such as needing an existing flock_id from flock_create. The trailing question about crossover bands is not usable guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources