Skip to main content
Glama

List an Atlas Node's Relationships

atlas_links
Read-onlyIdempotent

List where one Atlas Node references other entries (outbound) and where they reference it (inbound), outbound first. Use to find related entries or what points at this one. Each occurrence gives direction, class, source Section, and the far end's Hook (one-line summary), plus its id and title unless the class is 'undisclosed' (unpublished and unannounced). Results are paged: follow the cursor to the end before concluding nothing points here. An unknown or Roadmap-only (unpublished) subject is refused as invalid_argument.

Input Schema

NameRequiredDescriptionDefault
boundNoHow many relationship occurrences this call returns; continue with cursor until the page is no longer truncated.
cursorNoscope.next_cursor from a prior atlas_links page; repeat the same other arguments.
subjectYesA bare Node id (no '#section'), e.g. an atlas_orient candidate id or a Card id.
expected_revisionNoPins this call to the Release (published edition) a prior payload named in 'coherence'; refused as 'revision_changed' if the active Release has changed. Omit for the active Release.

Output Schema

NameRequiredDescriptionDefault
dataYeslinks: per occurrence, class ('in-slice', 'roadmap-disclosed', 'undisclosed'), direction, occurrence (section slug, ordinal), the far end's target id and title unless undisclosed, and its hook.
scopeYes
coherenceYes
projectionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / projection / const
      Previous value: -"agent-projection/v7"New value: +"agent-projection/v8"
  2. Changed3 schema fields changed
    • removedOutput schema / properties / payload_class
      Removed value: -{
      -  "enum": [
      -    "links"
      -  ],
      -  "type": "string"
      -}
    • changedOutput schema / properties / projection / const
      Previous value: -"agent-projection/v6"New value: +"agent-projection/v7"
    • changedOutput schema / required
      Previous value: -[
      -  "projection",
      -  "coherence",
      -  "payload_class",
      -  "scope",
      -  "data"
      -]New value: +[
      +  "projection",
      +  "coherence",
      +  "scope",
      +  "data"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / bound / description
      Previous value: -"Occurrences per page; the rest continue through cursor."New value: +"How many relationship occurrences this call returns; continue with cursor until the page is no longer truncated."
  4. Changed6 schema fields changed
    • changedInput schema / properties / bound / description
      Previous value: -"How many occurrences one page returns, 1-50; the rest continue through cursor."New value: +"Occurrences per page; the rest continue through cursor."
    • addedInput schema / properties / bound / maximum
      Added value: +50
    • addedInput schema / properties / bound / minimum
      Added value: +1
    • changedInput schema / properties / expected_revision / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^v\\d+\\.\\d+\\.\\d+$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / expected_revision / description
      Previous value: -"The Release version a prior payload returned as 'coherence', pinning this call to it; 'revision_changed' refuses a moved Release. Omit to read the active Release."New value: +"Pins this call to the Release (published edition) a prior payload named in 'coherence'; refused as 'revision_changed' if the active Release has changed. Omit for the active Release."
    • changedInput schema / properties / subject / description
      Previous value: -"The bare canonical node id whose relationship occurrences are paged (no '#section' suffix), e.g. an atlas_orient candidate id or a Card id."New value: +"A bare Node id (no '#section'), e.g. an atlas_orient candidate id or a Card id."
  5. Changed4 schema fields changed
    • changedInput schema / properties / bound / description
      Previous value: -"Occurrences per page, 1-50."New value: +"How many occurrences one page returns, 1-50; the rest continue through cursor."
    • changedInput schema / properties / expected_revision / description
      Previous value: -"A prior payload's 'coherence'; 'revision_changed' refuses a moved Release."New value: +"The Release version a prior payload returned as 'coherence', pinning this call to it; 'revision_changed' refuses a moved Release. Omit to read the active Release."
    • changedInput schema / properties / subject / description
      Previous value: -"The node id whose occurrences are paged."New value: +"The bare canonical node id whose relationship occurrences are paged (no '#section' suffix), e.g. an atlas_orient candidate id or a Card id."
    • addedOutput schema / properties / data / description
      Added value: +"links: per occurrence, class ('in-slice', 'roadmap-disclosed', 'undisclosed'), direction, occurrence (section slug, ordinal), the far end's target id and title unless undisclosed, and its hook."
  6. Changed1 schema field changed
    • changedOutput schema / properties / projection / const
      Previous value: -"agent-projection/v5"New value: +"agent-projection/v6"
  7. Changed1 schema field changed
    • changedOutput schema / properties / projection / const
      Previous value: -"agent-projection/v4"New value: +"agent-projection/v5"
  8. Changed1 schema field changed
    • changedOutput schema / properties / projection / const
      Previous value: -"agent-projection/v3"New value: +"agent-projection/v4"
  9. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "coherence": {
      +      "type": "string"
      +    },
      +    "data": {
      +      "type": "object"
      +    },
      +    "payload_class": {
      +      "enum": [
      +        "links"
      +      ],
      +      "type": "string"
      +    },
      +    "projection": {
      +      "const": "agent-projection/v3"
      +    },
      +    "scope": {
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "projection",
      +    "coherence",
      +    "payload_class",
      +    "scope",
      +    "data"
      +  ],
      +  "type": "object"
      +}
  10. Changed4 schema fields changed
    • changedInput schema / properties / bound / description
      Previous value: -"Maximum occurrences per page, 1-50 (default 12)."New value: +"Occurrences per page, 1-50."
    • changedInput schema / properties / cursor / description
      Previous value: -"Opaque continuation token from a previous atlas_links payload's 'scope.next_cursor'. Repeat the same arguments alongside it; a cursor minted for a different request or a different Release is refused with 'invalid_argument'."New value: +"scope.next_cursor from a prior atlas_links page; repeat the same other arguments."
    • changedInput schema / properties / expected_revision / description
      Previous value: -"Optional coherence marker: the Release version (for example 'v1.0.2') read off any previous payload's 'coherence' field. Omit on a first call. When carried, a promotion that has moved the active Release off this marker is refused with the 'revision_changed' error rather than silently answered from a different Release."New value: +"A prior payload's 'coherence'; 'revision_changed' refuses a moved Release."
    • changedInput schema / properties / subject / description
      Previous value: -"The one canonical node id whose relationship occurrences are paged."New value: +"The node id whose occurrences are paged."
  11. Changed4 schema fields changed
    • addedInput schema / properties / bound / description
      Added value: +"Maximum occurrences per page, 1-50 (default 12)."
    • addedInput schema / properties / cursor / description
      Added value: +"Opaque continuation token from a previous atlas_links payload's 'scope.next_cursor'. Repeat the same arguments alongside it; a cursor minted for a different request or a different Release is refused with 'invalid_argument'."
    • addedInput schema / properties / expected_revision / description
      Added value: +"Optional coherence marker: the Release version (for example 'v1.0.2') read off any previous payload's 'coherence' field. Omit on a first call. When carried, a promotion that has moved the active Release off this marker is refused with the 'revision_changed' error rather than silently answered from a different Release."
    • addedInput schema / properties / subject / description
      Added value: +"The one canonical node id whose relationship occurrences are paged."
  12. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds substantial context: paging must be followed to completion, the 'undisclosed' class omits id/title, and unknown or unpublished subjects are refused as invalid_argument. This is exactly the beyond-annotations behavior an agent needs.

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

Conciseness5/5

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

Front-loaded with the core action and direction ordering, then use case, return shape, paging caution, and error case in tight succession. Every sentence carries distinct information with no filler.

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

Completeness5/5

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

Given four parameters, an output schema, and non-trivial paging/error semantics, the description covers direction, returned fields, conditional omissions, pagination discipline, and the invalid_argument case. Nothing an agent needs to invoke it correctly is missing.

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 100%, so bound, cursor, subject, and expected_revision are already documented in the input schema, establishing the baseline of 3. The description reinforces paging ('follow the cursor to the end') but adds no new syntax or format meaning beyond the schema.

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?

States a specific verb and resource ('List where one Atlas Node references other entries') and immediately partitions the result into outbound/inbound with an ordering rule. An agent can tell this apart from atlas_read or atlas_navigate without opening a schema.

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?

Provides a clear use case ('Use to find related entries or what points at this one') and even a refusal condition for unknown/Roadmap-only subjects. It lacks explicit when-not guidance or named alternatives among the sibling tools (atlas_read, atlas_orient), so it stops short of a 5.

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