Skip to main content
Glama

search_resource_nodes

Find resource nodes in Satisfactory by yield, distance, or region to plan mining. Filter by resource, purity, and origin to locate suitable deposits.

Instructions

Resource nodes, in one of three views.

  • fields (default) clusters nodes within 200 m and ranks by yield -- "where is there a lot of iron".

  • nodes lists one row per node, ranked by yield, with ids reusable as selectors.

  • nearest lists one row per node ranked by DISTANCE from near, with the distance shown -- "what is closest". Requires near.

sources is a list of selectors; locations union, filters intersect::

["north"]                          northern half of the map
["region:Northern Forest"]         one named region
["near:0,-2000@800"]               within 800 m of (0, -2000) metres
["grid:X3Y4"]                      one 1.024 km grid cell
["node:BP_ResourceNode26_99"]      one specific node
["north", "resource:Crude Oil"]    crude oil in the north
["bbox:-500,-2500,600,-1800"]      a rectangle, metres

near accepts a coordinate in metres, me for the player, or the name of a labelled factory -- "the nearest free coal to the coal powerplant" needs no coordinates. Giving near in any view adds a distance column.

All three views page with offset=; the ranking is stable, so the tail of 127 iron nodes is reachable 25 at a time.

Water is the exception to everything above. Open water carries no node, so asking for it returns only the fracking satellites; the bodies already being pumped, the pumps on each and the measured sea level are printed beside them instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNonode | well_sat | geyser | all
modeNoretired -- write show= instead
nearNoorigin for show=nearest: 'x,y' in metres, 'me', or a factory name
saveNo
showNofields | nodes | nearestfields
as_ofNopin to one world state: a sav:… token from an earlier answer
groupNoretired -- write show= instead
limitNomax rows (hard cap 25)
worldNo
offsetNo
purityNopure | normal | impure | all
sourcesNo
resourceNo
only_freeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 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"
      +}
    • changedInput schema / properties / group / description
      Previous value: -"deprecated alias for mode"New value: +"retired -- write show= instead"
    • addedInput schema / properties / kind / description
      Added value: +"node | well_sat | geyser | all"
    • addedInput schema / properties / mode / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / mode / default
      Previous value: -"fields"New value: +null
    • changedInput schema / properties / mode / description
      Previous value: -"fields | nodes | nearest"New value: +"retired -- write show= instead"
    • removedInput schema / properties / mode / type
      Removed value: -"string"
    • changedInput schema / properties / near / description
      Previous value: -"origin for mode=nearest: 'x,y' in metres, 'me', or a factory name"New value: +"origin for show=nearest: 'x,y' in metres, 'me', or a factory name"
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "title": "Offset",
      +  "type": "integer"
      +}
    • addedInput schema / properties / purity / description
      Added value: +"pure | normal | impure | all"
    • addedInput schema / properties / show
      Added value: +{
      +  "default": "fields",
      +  "description": "fields | nodes | nearest",
      +  "title": "Show",
      +  "type": "string"
      +}
  2. First observedv0.1.0

TDQS

A3.9/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 burden, and it discloses real behavior: stable ranking, offset paging, a hard 25-row cap, that `near` adds a distance column in any view, and the water exception where non-node fracking satellites plus sea level are returned instead. It does not state read-only-ness or auth/side-effect profile, which keeps it from a 5.

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 three-view framing, then groups selector syntax and paging compactly. It is long but nearly every block (selector grammar, near semantics, water exception) earns its place; only the water aside feels slightly tacked on.

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 14-param, no-annotation tool with no output schema, the description covers query construction, mode selection, paging, and notable return quirks (distance column, printed sea level). It stops short of describing the shape of a `fields` cluster row or several lesser parameters, leaving some gaps.

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?

It adds substantial meaning for `sources` (union of locations, intersection of filters) with syntax examples, and clarifies `near` and `offset`. But at 57% schema coverage across 14 parameters, several (save, world, as_of, purity, only_free, resource, kind) are left entirely to the schema, so the description only partially compensates.

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 description states a specific resource (resource nodes) and lays out its three modes precisely, including the question each answers ("where is there a lot of iron", "what is closest"). An agent knows exactly what it retrieves. It never names a sibling tool or draws an explicit boundary against search_items/search_conduits, so it stays 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 Guidelines4/5

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

It gives clear in-tool routing: fields for abundance, nodes for reusable ids, nearest for proximity, with the requirement that nearest needs `near`. It also gives worked query examples ("the nearest free coal to the coal powerplant"). It does not state when NOT to use this tool versus the many other search_* siblings.

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