Skip to main content
Glama

search_conduits

Read-onlyIdempotent

Find belt and pipe runs near a location or between two areas, with endpoints, length, elevation, and connections; list fluid networks or their pipes.

Instructions

Belt and pipe runs near a place or between two areas: both ends, length, elevation, what each end connects to.

A run is one belt chain (split at splitters, mergers and machines) or one placed pipe; longest first; its id (chain:, pipe:) is a place every tool takes. Proximity is measured against the drawn line, so a run crossing mid-span counts. show=networks lists each fluid network instead (fluid, pipe length, centre, what it ends on), distance from near=; network=N lists its pipes.

Input Schema

NameRequiredDescriptionDefault
toNosecond area: only runs passing near BOTH; same forms as near
nearYescentre: 'x,y' in metres, 'me', a factory name, or a run id from this tool ('chain:7', 'pipe:333')
saveNo
showNoruns | networksruns
as_ofNopin to one save: the sav:… token an earlier answer printed
limitNo
worldNo
offsetNo
networkNolist every pipe of this fluid network (ids from show=networks)
radius_mNo
to_radius_mNoradius around `to`; defaults to radius_m
conduit_kindNobelt | pipe | all

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed35 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 / conduit_kind / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / conduit_kind / title
      Removed value: -"Conduit Kind"
    • addedInput schema / properties / conduit_kind / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / kind
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "retired -- write conduit_kind= instead",
      -  "title": "Kind"
      -}
    • removedInput schema / properties / limit / description
      Removed value: -"max rows (hard cap 25)"
    • removedInput schema / properties / limit / title
      Removed value: -"Limit"
    • changedInput schema / properties / near / description
      Previous value: -"centre: 'x,y' in metres, 'me', a named factory, or a run id from this tool ('chain:7', 'pipe:333')"New value: +"centre: 'x,y' in metres, 'me', a factory name, or a run id from this tool ('chain:7', 'pipe:333')"
    • removedInput schema / properties / near / title
      Removed value: -"Near"
    • removedInput schema / properties / network / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • changedInput schema / properties / network / description
      Previous value: -"list every pipe of this fluid network (show=networks ids)"New value: +"list every pipe of this fluid network (ids from show=networks)"
    • removedInput schema / properties / network / title
      Removed value: -"Network"
    • addedInput schema / properties / network / type
      Added value: +[
      +  "integer",
      +  "null"
      +]
    • addedInput schema / properties / offset / minimum
      Added value: +0
    • removedInput schema / properties / offset / title
      Removed value: -"Offset"
    • removedInput schema / properties / radius_m / title
      Removed value: -"Radius M"
    • 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 / show / title
      Removed value: -"Show"
    • removedInput schema / properties / to / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • changedInput schema / properties / to / description
      Previous value: -"second area: list only runs passing near BOTH, same forms as near"New value: +"second area: only runs passing near BOTH; same forms as near"
    • removedInput schema / properties / to / title
      Removed value: -"To"
    • addedInput schema / properties / to / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / to_radius_m / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • changedInput schema / properties / to_radius_m / description
      Previous value: -"radius around `to`, defaults to radius_m"New value: +"radius around `to`; defaults to radius_m"
    • removedInput schema / properties / to_radius_m / title
      Removed value: -"To Radius M"
    • addedInput schema / properties / to_radius_m / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • 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: -"search_conduitsArguments"
  2. Changed1 schema field changedv0.2.0
    • addedInput schema / properties / network
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "list every pipe of this fluid network (show=networks ids)",
      +  "title": "Network"
      +}
  3. Added

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive. Beyond that, the description adds meaningful behavior: results are sorted longest first, proximity is measured against the drawn line so mid-span crossings count, and the show/network mode switches the returned entity type. Missing detail on pagination/limit behavior and default radius handling.

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 description is front-loaded with the core purpose, then layers in entity definition, sort order, and alternate modes. Dense but each sentence earns its place; only mildly jargon-heavy for an unfamiliar reader.

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?

For a 12-parameter tool with no output schema, the description covers the conceptual model and main modes well but leaves several parameters (radius defaults, save/world, limit/offset) undocumented. An agent can call the core path but lacks guidance on pagination and scoping parameters.

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?

With only 58% schema coverage, the description compensates for the key semantic params: near (centre forms incl. run ids), to (second area, both-proximity), show modes, network=N, and conduit_kind via 'belt and pipe'. However several params (radius_m which defaults to 250, save, world, limit, offset) are unexplained in both schema and description, leaving gaps.

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 names a specific verb and resource ('Belt and pipe runs near a place or between two areas') and enumerates the exact fields returned (both ends, length, elevation, what each end connects to). It defines what a 'run' is (one belt chain or one placed pipe) and its id format, so an agent understands the entity precisely. No sibling offers conduit search, so it is naturally distinguished.

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 use contexts: 'near a place or between two areas', and explains the alternate modes ('show=networks' lists fluid networks, 'network=N' lists its pipes). It also clarifies the 'between two areas' semantics for the to parameter. No explicit when-not or comparison to other search tools, but usage is well conveyed.

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