Skip to main content
Glama

propose_factories

Read-onlyIdempotent

Proposes factory groupings from a Satisfactory save, clustering built structures by slabs, proximity, belts, and shared products or supply; use it to identify built and unnamed factories.

Instructions

Proposed factories: what is built, clustered by slabs, proximity, belts, shared products and supply.

Errs toward splitting: never merges two factories, may return one in pieces. The # column is the proposal: selector other tools take, numbered over all proposals so paging does not shift it. Name one with edit_factory. unnamed_only=true answers 'what have I built and not named'.

Input Schema

NameRequiredDescriptionDefault
saveNo
as_ofNopin to one save: the sav:… token an earlier answer printed
limitNo
worldNo
offsetNo
max_span_mNocap on a proposal's diameter, metres
unnamed_onlyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed17 schema fields changedv0.3.0
    • removedInput schema / properties / as_of / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • changedInput schema / properties / as_of / description
      Previous value: -"pin to one world state: a sav:… token from an earlier answer"New value: +"pin to one save: the sav:… token an earlier answer printed"
    • removedInput schema / properties / as_of / title
      Removed value: -"As Of"
    • addedInput schema / properties / as_of / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / limit / description
      Removed value: -"max rows (hard cap 25)"
    • removedInput schema / properties / limit / title
      Removed value: -"Limit"
    • removedInput schema / properties / max_span_m / title
      Removed value: -"Max Span M"
    • addedInput schema / properties / offset / minimum
      Added value: +0
    • removedInput schema / properties / offset / title
      Removed value: -"Offset"
    • removedInput schema / properties / save / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / save / title
      Removed value: -"Save"
    • addedInput schema / properties / save / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / unnamed_only / title
      Removed value: -"Unnamed Only"
    • removedInput schema / properties / world / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / world / title
      Removed value: -"World"
    • addedInput schema / properties / world / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / title
      Removed value: -"propose_factoriesArguments"
  2. Changed2 schema fields changed
    • addedInput schema / properties / as_of
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "pin to one world state: a sav:… token from an earlier answer",
      +  "title": "As Of"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "title": "Offset",
      +  "type": "integer"
      +}
  3. First observedv0.1.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent safety, so credit goes to genuine extras: it discloses that results err toward splitting, never merge, and may return one factory in pieces. It also explains that the proposal selector is numbered across all proposals so paging does not shift it — a real behavioral caveat. No info on ordering or total counts.

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?

Compact and front-loaded: what it returns first, then behavioral caveats, then selector mechanics and usage hooks. A few phrases ('clustered by slabs, proximity, belts, shared products and supply') are dense jargon but each sentence carries information.

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?

With no output schema, the description carries the burden of explaining returns; it covers the # selector column and the clustering concept but not the other fields an agent will see. Paging stability is addressed, but the overall return shape remains only partially characterized.

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

Parameters3/5

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

Schema coverage is only 29% across 7 params; the description adds meaning for unnamed_only and ties the proposal:<n> selector to results, and as_of/max_span_m are described in-schema. But save vs. world vs. as_of distinctions and limit/offset behavior are left to the schema, so it only partly compensates for the coverage gap.

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?

States a specific verb+resource ('Proposed factories: what is built') and characterizes the clustering basis (slabs, proximity, belts, shared products/supply), which lets an agent distinguish it from list_factories. It is jargon-heavy ('slabs') and never plainly says 'infers factories from built structures', keeping it short of a 5.

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?

Gives two concrete usage hooks: name a proposal with edit_factory, and unnamed_only=true for 'what have I built and not named'. It never contrasts with the obvious sibling list_factories, nor states when not to call it, so usage is implied rather than fully routed.

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